gpt4 book ai didi

python - Google Geocode api 不返回某些 'direct hit' 地址的 postal_code

转载 作者:行者123 更新时间:2023-11-28 16:56:26 27 4
gpt4 key购买 nike

这些似乎不是partial_matches 所以我想知道为什么它没有带回所有数据,特别是 postal_code

通过仔细检查谷歌地图,这是我想要的确切地址。换句话说,它是直接命中。

Python代码:

address = '34 new street, Green road, Carlow'

geocode_url = "https://maps.googleapis.com/maps/api/geocode/json?address={}&key={}".format(address,api_key)

# Ping google for the reuslts:
results = requests.get(geocode_url)
# Results will be in JSON format - convert to dict using requests functionality
results = results.json()

结果。这里应该有一个postal_code数据吧?没什么可说的,这只是部分匹配。

{'results': [{'address_components': [{'long_name': '34',
'short_name': '34',
'types': ['street_number']},
{'long_name': 'New Street', 'short_name': 'New St', 'types': ['route']},
{'long_name': 'Moanacurragh',
'short_name': 'Moanacurragh',
'types': ['neighborhood', 'political']},
{'long_name': 'Carlow',
'short_name': 'Carlow',
'types': ['locality', 'political']},
{'long_name': 'County Carlow',
'short_name': 'County Carlow',
'types': ['administrative_area_level_1', 'political']},
{'long_name': 'Ireland',
'short_name': 'IE',
'types': ['country', 'political']}],
'formatted_address': '34 New St, Moanacurragh, Carlow, Ireland',
'geometry': {'location': {'lat': 52.8296466, 'lng': -6.9331115},
'location_type': 'RANGE_INTERPOLATED',
'viewport': {'northeast': {'lat': 52.83099558029149,
'lng': -6.931762519708498},
'southwest': {'lat': 52.82829761970849, 'lng': -6.934460480291502}}},
'place_id': 'EhozNCBOZXcgU3QsIENhcmxvdywgSXJlbGFuZCIaEhgKFAoSCZ93HqizQl1IEZZMDB0YIkdXECI',
'types': ['street_address']}],
'status': 'OK'}

现在,如果我在官方邮政编码数据库(爱尔兰)中输入完全相同的字符串,它会返回邮政编码。

官方数据库是here顺便说一下,你可以试试地址字符串 '34 new street, Green road, Carlow'

最佳答案

关于“34 new street, Green road, Carlow”的示例请求,您应该注意两点。

  1. 如您所见,结果具有 RANGE_INTERPOLATED 位置类型,而不是 ROOFTOP。这意味着谷歌在他们的数据库中没有确切的地址,他们试图根据其他现有特征猜测(内插)地址的位置。

  2. 如果您对插值点 (52.8296466,-6.9331115) 和位置类型邮政编码执行反向地理编码请求 https://maps.googleapis.com/maps/api/geocode/json?latlng =52.8296466%2C-6.9331115&result_type=postal_code&key=YOUR_API_KEY 你会得到如下响应

    { “加号”:{ "compound_code":"R3H8+VQ Carlow, County Carlow, Ireland", “全局代码”:“9C4MR3H8+VQ” }, “结果”:[ ], “状态”:“零个结果”}

因此,在 Google 数据库中没有包含点 (52.8296466,-6.9331115) 的邮政编码多边形。您在 Google 方面遇到了数据问题。

我建议联系 Google 数据团队并按照他们的帮助中心所述报告数据问题:

https://support.google.com/maps/answer/6320846

希望 Google 能尽快修复它。

关于python - Google Geocode api 不返回某些 'direct hit' 地址的 postal_code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57894207/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com