[英]How batch reverse lat/long on OSM
我有一個經緯度坐標列表,需要獲取每個坐標的狀態。 這可以通過代碼完成:
df = pd.read_csv('SOL_A.dsv', delimiter = '|', low_memory=False)
for index, row in df.iterrows():
lat = row['LAT']
lon = row['LONG']
g = geocoder.osm([lat,lon], method='reverse')
st = '_UN'
if g.state != None:
st = g.state
geom_states.append(st)
df['STATE'] = geom_states
但是對於我的 ~5k 記錄,它最終開始Status code 429 from https://nominatim.openstreetmap.org/search: ERROR - 429 Client Error: Too Many Requests for URL: tps://nominatim.openstreetmap.org/search?q=0.0%2C+0.0&format=jsonv2&addressdetails=1&limit=1
產生Status code 429 from https://nominatim.openstreetmap.org/search: ERROR - 429 Client Error: Too Many Requests for URL: tps://nominatim.openstreetmap.org/search?q=0.0%2C+0.0&format=jsonv2&addressdetails=1&limit=1
這是預期的。
我只需要處理一次,不介意是否需要一整天。 我通讀了 OSM可接受使用政策,內容如下:
所以..應該是可能的(?)
我嘗試添加我的 API 密鑰( geocoder.osm([lat,lon], method='reverse', key=API_KEY)
)並在每次調用之前添加一個time.sleep(1.1)
以確保,但並沒有真正幫助。
想法?
提名使用政策明確規定:
看起來您沒有將請求限制為每秒最多 1 個。 另外,我不確定您是否傳遞了有效的 HTTP 引用程序(又名用戶代理)。
請注意,此使用策略僅適用於 OSM 的公共 Nominatim 實例。 您始終可以安裝自己的 Nominatim 服務或切換到替代/商業 Nominatim 實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.