Python Google地图地理编码API

2024-10-01 09:33:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是使用Python库的Google地理编码API(试用geopy1.11.0)。 对于像“Utica”这样的查询,我只得到一个响应:

{u'geometry': {u'location_type': u'APPROXIMATE', u'bounds': {u'northeast': 
{u'lat': 43.132269, u'lng': -75.1609059}, u'southwest': {u'lat': 
43.0644689, u'lng': -75.295296}}, u'viewport': {u'northeast': {u'lat': 
43.132269, u'lng': -75.1609059}, u'southwest': {u'lat': 43.0644689, u'lng': 
-75.295296}}, u'location': {u'lat': 43.100903, u'lng': -75.232664}}, 
u'address_components': [{u'long_name': u'Utica', u'types': [u'locality', 
u'political'], u'short_name': u'Utica'}, {u'long_name': u'Oneida County', 
u'types': [u'administrative_area_level_2', u'political'], u'short_name': 
u'Oneida County'}, {u'long_name': u'New York', u'types': 
[u'administrative_area_level_1', u'political'], u'short_name': u'NY'}, 
{u'long_name': u'United States', u'types': [u'country', u'political'], 
u'short_name': u'US'}], u'place_id': u'ChIJKXZqNVE32YkRhvztGCY2GhE', 
u'formatted_address': u'Utica, NY, USA', u'types': [u'locality', 
u'political']}

问题是在美国有多个尤蒂卡,例如尤蒂卡,纽约和尤蒂卡,威斯康星州。我原以为谷歌会把所有可能的地方都以尤蒂卡的名字出现,有没有办法做到这一点?在

以下是使用GeoPy和Google的代码:

^{pr2}$

Tags: nameaddressgooglelocationlongtypesshortlng
1条回答
网友
1楼 · 发布于 2024-10-01 09:33:58

恐怕没有办法从执行web服务请求的Google数据库中获取所有可能具有特定名称的地理特征。在

请注意,地理编码API的目的是将地址字符串解析为其坐标。通常,地理编码API web服务将根据Google标准(突出度、内部评分等)只提供一个与地址字符串最匹配的结果。如果你的搜索字符串是模棱两可的,如“尤蒂卡”,地理编码网络服务将选择最突出的结果,显然是“尤蒂卡,纽约,美国”。在

为了解决您的问题,您可以尝试使用placesapiautocomplete请求。自动完成请求将为您的搜索地址字符串返回最多5条建议。不幸的是,它不能保证所有可能的地理特征,但你将至少有5个。在

请查看以下在美国境内搜索名为“Utica”的地区的请求:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Utica&types=(cities)&components=country%3AUS&key=YOUR_API_KEY

此请求返回以下预测:

  • 尤蒂卡,纽约,美国(place ID chijkxzqnver32ykrhvztgcyghe)
  • 尤蒂卡,密歇根州,美国(地址:ChIJz8RnUrndJIgRNUbzGmaEdTk)
  • 美国俄亥俄州尤蒂卡(place ID ChIJ1ajvLWQwOIgR6Axda9Ip9XA)
  • 尤蒂卡,伊利诺伊州,美国(地址:Chijdejybulzcygrpiigt2o7ge)
  • 尤蒂卡,肯塔基州,美国(place ID ChIJzbKUniCWb4gRj_IDgwlk-N0)

最后,当您使用Python时,我建议您使用Google Maps API Web服务的Python客户端库来执行places autocomplete请求:

https://github.com/googlemaps/google-maps-services-python

有关此客户端库的文档,请访问:

https://googlemaps.github.io/google-maps-services-python/docs/

我希望这有帮助!在

相关问题 更多 >