使用此请求致电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问题。
答案 0 :(得分:5)
正如您猜测的那样,您需要单独Place Details Request。在搜索结果中无法获得address_components
。
答案 1 :(得分:0)
使用Geocoder服务。它也包含部分完成的地址和邮政编码。
https://developers.google.com/maps/documentation/javascript/reference#GeocoderAddressComponent