如何在OSM上批量倒转纬度

问题描述 投票:0回答:1

我有一个经/纬度坐标列表,需要获取每个坐标的状态。可以用以下代码完成:

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

我只需要处理一次,就算需要一整天也不介意。我通读了OSM Acceptable Use Policy,结果如下:

  • 没有大量使用(绝对最大值为每秒1个请求)。提供标识应用程序的有效HTTP引荐来源网址或用户代理(股票)>
  • HTTP库设置的User-Agent将不起作用。清晰显示适用于您的媒介的归因。数据在[]下提供
  • ODbL许可证,要求共享相同的内容(尽管很小提取可能会被合理使用/公平交易所涵盖。
  • 所以..应该有可能(?)

    我尝试添加我的API密钥(geocoder.osm([lat,lon], method='reverse', key=API_KEY)),并在每次调用前也添加了一个time.sleep(1.1),但确实没有帮助。

想法?

我有一个经/纬度坐标列表,需要获取每个坐标的状态。可以使用以下代码完成:df = pd.read_csv('SOL_A.dsv',定界符='|',low_memory = False)用于索引,df中的行...。

python openstreetmap reverse-lookup
1个回答
0
投票

没有大量使用(绝对
    每秒最多1个请求
© www.soinside.com 2019 - 2024. All rights reserved.