Google Places API - 返回无效的街道号码

时间:2016-04-17 22:50:30

标签: javascript google-maps google-places-api google-places

如果我搜索500 Buckingham Place, Eight Mile Plains,Google商家信息API将返回地址为500 Buckingham Place, Eight Mile Plains, Queensland, Australia的{​​{1}}。如果我然后对该地点ID进行详细调用,则返回Ej41MDAgQnVja2luZ2hhbSBQbGFjZSwgRWlnaHQgTWlsZSBQbGFpbnMsIFF1ZWVuc2xhbmQsIEF1c3RyYWxpYQ

可以在Google地图网站https://www.google.com.au/maps/search/500+Buckingham+Place+Eight+Mile+Plains上复制。返回的地方只有Buckingham Pl, Eight Mile Plains QLD 4113, Australia

我可以让Google Places API仅返回实际街道号码的搜索结果吗?

修改 我正在做的电话是https://maps.googleapis.com/maps/api/place/autocomplete/json?input=500%20Buckingham%20Place%2C%20Eight%20Mile%20Plains&types=address

1 个答案:

答案 0 :(得分:4)

来自google map api doc

  

地址按最佳匹配顺序返回。   通常,更精确的地址是最突出的结果,因为它   在这种情况下。请注意,我们返回不同类型的地址,   从最具体的街道地址到不太具体的政治   邻里,城市,县,州等实体

所以问题是,当你添加一个不存在的街道号码时,没有完美的matche(s)返回。以下是如何找到答案不完全匹配的方法:

再次在google doc

  

partial_match表示地理编码器没有返回精确的   匹配原始请求,虽然它能够匹配部分   请求的地址。

如果您进行某项测试,您会看到当街道号码不存在(或地址无效或您没有为唯一地址提供足够信息)时,它会返回变量partial_match: true和一个或多个近似匹配,如图片。 enter image description here

我用自动填充和地理编码器做了一个简单的例子:http://jsfiddle.net/TomKarachristos/qLyrj38d/, 它返回"不是有效的结果"当partial_match为真时

if (results[0].partial_match) {
  htmlContent = "not a valid result";
  } else {
  [...]
}

注意:谷歌地图的数据可能不会100%准确。