当前位置: 代码迷 >> python >> 将大量地址映射到(经度、纬度)坐标
  详细解决方案

将大量地址映射到(经度、纬度)坐标

热度:101   发布时间:2023-07-16 10:34:58.0

我有一个包含超过 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 限制是什么。 什么是合适的变通方法?

您可以使用 Google 的地理编码 API 每天最多 10 万个请求,费用为 50 美元。 企业合同允许的甚至更多(并且显然会花费更多)。

因此,在三天之内,您可以将所有地址转换为大约 125 美元。 如果您使用每秒允许的最大 50 次查询,您将在每天大约 34 分钟内达到速率限制。

参考: :

  相关解决方案