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

swi*_*ams 0 json google-maps

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

https://maps.googleapis.com/maps/api/place/textsearch/json?query=The+White+House&key=[REDACTED]
Run Code Online (Sandbox Code Playgroud)

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

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

这很好,但我需要突破formatted_address其部分:街道号码,路线,地点等.有没有办法用这一个查询,或者可能是另一个查询?

我可以place_id通过单独的API调用来查找,但这可能导致我的情况下出现n + 1情况......这不太理想.

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

spi*_*piv 5

如您所猜,您需要制作单独的地方详情请求.没有办法进入address_components搜索结果.