如何使用 Python 3 和 geopy 1.21.0 对哥伦比亚地址进行地理编码?

How do I geocode a Colombian address using Python 3 and geopy 1.21.0?

我一直在尝试对哥伦比亚地址进行地理编码,但生成的坐标根本不准确。例如:

from geopy.geocoders import Nominatim
gc = Nominatim(user_agent="my_geocode_app")
gc.geocode("Calle 121 #48-60, Bogota")

结果:

Location(Calle 121, Bella Suiza, Usaquén, Distrito Capital, Bogotá, 1101, Colombia, (4.7000065, -74.0384207, 0.0))

那不是我的位置。根据 Google 地图,正确的坐标是 (4.703340, -74.058408) 但是当我尝试使用我居住过的任何其他国家/地区的地址时,结果是完全准确的。例如:

gc.geocode("Ibera 3851, Buenos Aires")

结果:

Location(3851, Iberá, Coghlan, Buenos Aires, Comuna 12, Ciudad Autónoma de Buenos Aires, C1430DHI, Argentina, (-34.5611637, -58.478657, 0.0))

那正是我以前住过的地方。所以问题只出在哥伦比亚的地址上。我尝试了法国、德国、阿根廷、西班牙和美国的地址。他们都很完美。 请让我知道发生了什么或如何以正确的方式对哥伦比亚地址进行地理编码,因为看起来这个国家的地址格式没有被 geopy 完整读取。预先感谢您的帮助。

这些是哥伦比亚地址的其他一些示例,所有地址都来自首都波哥大。以防万一你想尝试一下(它们很奇怪):

大道 72 # 54A-24

马路 17 # 78G-11

马路卡雷拉 68 # 33-25 SUR

卡雷拉 72 # 21-53

这是 OpenStreetMap 中缺少数据的情况。该特定门牌号尚不存在。

如果门牌号已映射,则搜索工作正常。示例:Calle 122 #21-43,波哥大。