我有一个超过250,000个地址的列表,我需要转换为经度,纬度对。我在网上找到了两个解决方案:
import requests
from geopy.geocoders import Nominatim
geolocator = Nominatim()
def lonlat(address):
address = address.replace(' ', '+')
response = requests.get('https://maps.googleapis.com/maps/api/geocode/json?address=%s' % address)
resp_json_payload = response.json()
return resp_json_payload['results'][0]['geometry']['location']
def lonlat2(address):
location = geolocator.geocode(address)
try:
return (location.longitude, location.latitude)
except:
return address
这些方法都不能扩展到超过250,000个地址;我甚至不确定API限制是什么。什么是合适的解决方法?
答案 0 :(得分:1)
您可以使用Google的地理编码API,每天最多可获得10万次请求,费用为50美元。企业合同允许甚至更多(并且显然会花费更多)。
因此,在三天内,您可以将所有地址转换为大约125美元。如果您每秒使用最多允许的50次查询,您将在每天约34分钟内达到速率限制。
参考:https://developers.google.com/maps/documentation/geocoding/usage-limits