SCo*_*ool 5 python google-maps google-maps-api-3 google-geocoder
这些似乎并非如此,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()
Run Code Online (Sandbox Code Playgroud)
以及结果。这里应该有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'}
Run Code Online (Sandbox Code Playgroud)
现在,如果我在官方邮政编码数据库(爱尔兰)中输入完全相同的字符串,它会返回邮政编码。
顺便说一句,官方数据库在这里,你可以尝试一下地址字符串'34 new street, Green road, Carlow'
关于“34 new street, Green road, Carlow”的样本请求,您应该注意两点。
如您所见,结果具有RANGE_INTERPOLATED
位置类型,而不是ROOFTOP
. 这意味着谷歌的数据库中没有确切的地址,他们试图根据其他现有功能猜测(插值)该地址的位置。
如果您对插值点 (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
您将收到以下响应
{ "plus_code":{ "compound_code":"R3H8+VQ 卡洛,卡洛郡,爱尔兰", "global_code":"9C4MR3H8+VQ" }, "结果":[ ], "状态":"ZERO_RESULTS" }
因此,在 Google 数据库中,没有包含点 (52.8296466,-6.9331115) 的邮政编码多边形。您在 Google 方面面临数据问题。
我建议联系 Google 数据团队并按照其帮助中心所述报告数据问题:
https://support.google.com/maps/answer/6320846
希望谷歌能够尽快修复它。