从Google Maps地点搜索获取地址组件

时间:2015-05-06 15:42:02

标签: json google-maps

使用此请求致电Google地图Place Search API时:

https://maps.googleapis.com/maps/api/place/textsearch/json?query=The+White+House&key=[REDACTED]

我得到一个结果的JSON数组,看起来像这样(编辑去除噪音):

  {
     "formatted_address" : "1600 Pennsylvania Avenue Northwest, Washington, DC 20500, United States",
     "geometry" : { /* lng/lat */ },
     "id" : "961fbdc3bf1fb3969cbf6421e9ebde0d837b8496",
     "name" : "The White House",
     "place_id" : "ChIJ37HL3ry3t4kRv3YLbdhpWXE",
  }

哪个好,但是我需要将formatted_address分成几个部分:街道号码,路线,地点等。有没有办法用这个查询,或者可能是另一个查询?

我可以用separate API call查找place_id,但这可能导致我的情况出现n + 1情况......这不是理想的。

基于经度/纬度的反向地理编码并不是很有用,因为我已经知道我正在寻找的地方,结果通常会产生一个长列表,我必须通过这个列表来匹配{ {1}}由初始搜索提供。它还会导致Place API出现n + 1问题。

2 个答案:

答案 0 :(得分:5)

正如您猜测的那样,您需要单独Place Details Request。在搜索结果中无法获得address_components

答案 1 :(得分:0)

使用Geocoder服务。它也包含部分完成的地址和邮政编码。

https://developers.google.com/maps/documentation/javascript/reference#GeocoderAddressComponent