我有一列想要获取经度和纬度。 我对网络进行了研究,并讨论了有关使用geopy和Nominatim的问题。 我也尝试了这段代码:
def lat(x):
try:
gn = geocoders.GeoNames(username='yadavk')
lat=gn.geocode(x)[1]
return(lat)
except TypeError:
return(0)
latitude['lat']=latitude.place.apply(lat)
其中place是我的数据框中的列名称,由大约10万个城市,州和国家/地区组成。 这段代码可以正常工作,但是由于我要求访问许多城市,服务器超时。 任何人都可以帮助我获得所有10万个城市的经度和纬度,而无需购买订阅,并且不需要花费很长时间即可得出结果。 非常感谢您的帮助。
答案 0 :(得分:0)
我能够自己弄清楚。我采取了两个步骤来追踪经纬度:
从this place下载国家,城市及其经纬度的列表。 下载后,我通过将国家和城市连接在一起来创建密钥,并在excel / merge中使用python进行了vlookup查找相关的纬度和经度。我缺少第二步的经纬度。
在geonames.org上创建一个帐户,并使用以下代码查找经度和纬度:
def lat(x):
try:
gn = geocoders.GeoNames(username='demo')
lat=gn.geocode(x)[1]
return(lat)
except TypeError:
return(0)
latitude['lat']=latitude.place.apply(lat)
其中纬度是由城市和国家/地区名称组成的数据框。
结合这两种方法,我能够获得所有的纬度和经度。希望这会有所帮助。