我正在使用谷歌地图api来反转地图上的地理编码纬度和经度。我想以下列格式返回地址:[街道号] [路线],[镇],[州]删除括号。
我不确定如何将地址组件链接到类型。现在这是我的解决方案,但它并不总是返回正确格式的地址。我该如何按类型搜索?其他解决方案使用了循环,但我不确定if语句会是什么样的?
address = '{} {}, {}, {}'.format(json['results'][0]['address_components'][0]['long_name']
, json['results'][0]['address_components'][1]['long_name']
, json['results'][0]['address_components'][3]['long_name']
, json['results'][0]['address_components'][5]['short_name'])
答案 0 :(得分:1)
您可以在反向地理编码中使用字段formatted_address
。
formatted_address
是一个包含此位置的人类可读地址的字符串。这个地址通常等同于“邮政地址”,有时因国家而异。 (请注意,由于许可限制,某些国家/地区(例如英国)不允许分发真实的邮政地址。)此地址通常由一个或多个地址组件组成。例如,地址“111 8th Avenue,New York,NY”包含单独的地址组件“111”(街道号码,“8th Avenue”(路线),“纽约”(城市)和“NY”(美国)。
这是此查询返回的formatted_address
值的完整列表示例。
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA", "formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11211, USA", "formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11249, USA", "formatted_address" : "Bedford Av/Grand St, Brooklyn, NY 11211, USA", "formatted_address" : "Brooklyn, NY 11211, USA", "formatted_address" : "Williamsburg, Brooklyn, NY, USA", "formatted_address" : "Brooklyn, NY, USA", "formatted_address" : "New York, NY, USA", "formatted_address" : "New York, USA", "formatted_address" : "United States",
有关详细信息,请查看此documentation。
同时尝试检查此SO question。