如果我搜索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仅返回实际街道号码的搜索结果吗?
答案 0 :(得分:4)
地址按最佳匹配顺序返回。 通常,更精确的地址是最突出的结果,因为它 在这种情况下。请注意,我们返回不同类型的地址, 从最具体的街道地址到不太具体的政治 邻里,城市,县,州等实体
所以问题是,当你添加一个不存在的街道号码时,没有完美的matche(s)返回。以下是如何找到答案不完全匹配的方法:
再次在google doc
partial_match表示地理编码器没有返回精确的 匹配原始请求,虽然它能够匹配部分 请求的地址。
如果您进行某项测试,您会看到当街道号码不存在(或地址无效或您没有为唯一地址提供足够信息)时,它会返回变量partial_match: true和一个或多个近似匹配,如图片。
我用自动填充和地理编码器做了一个简单的例子:http://jsfiddle.net/TomKarachristos/qLyrj38d/, 它返回"不是有效的结果"当partial_match为真时
if (results[0].partial_match) {
htmlContent = "not a valid result";
} else {
[...]
}
注意:谷歌地图的数据可能不会100%准确。