python - 对非地址进行地理编码 : Geopy

标签 python google-maps geopy

使用 geopy 对新西兰的酒类销售点进行地理编码。

我遇到的问题是,有些地方没有街道地址,但存在于 Google map 中。例如,插入:

Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlborough 7250

通过浏览器 GUI 进入 Google map

但是,在 Geopy 中使用它时,我收到一个 GQueryError 错误,指出该地理位置不存在。

这是地理编码的代码:

def GeoCode(address):
    g=geocoders.Google(domain="maps.google.co.nz") 
    geoloc = g.geocode(address, exactly_one=False)
    place, (lat, lng) = geoloc[0]
    GeoOut = []
    GeoOut.extend([place, lat, lng])
    return GeoOut

GeoCode("Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlboroguh 7250")

同时,我注意到“埃菲尔铁塔”运行良好。有办法解决这个问题吗?有人可以解释一下 Google“位置”中埃菲尔铁塔和 Furneaux Lodge 之间的区别吗?

最佳答案

也许这是 Google map API 的限制。 GeoNames不过似乎了解 Furneaux Lodge,因此如果 Google map 查询未返回答案,您可以将其用作 Google map 的后备方案:

>>> from geopy import geocoders
>>> gn = geocoders.GeoNames()  
>>> place, (lat, lng) = gn.geocode('Furneaux Lodge')
>>> print('{}: {:.5f}, {:.5f}'.format(place, lat, lng))
Furneaux Lodge, F4, NZ: -41.08826, 174.18019

关于python - 对非地址进行地理编码 : Geopy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077380/

相关文章:

python - 使用 Pandas groupby 的 Mathematica GatherBy 函数

javascript - 在单个页面上加载多个谷歌地图

python - 计算数据框中纬度和经度之间的距离

python - 将 panda 中一列的多行整理为一行,同时保持列的数据类型

python - 如何在一个脚本中处理多个图像?

Python - 将字典的字典写入 CSV

javascript - 将 id 添加到标记后, map 不会对位置进行聚类

php - 从PHP中的经纬度获取位置

python - geopy.distance.vincenty 给出了不同的弧度和度数结果

python - 使用 geopy 检索位置精度