首页 文章

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

提问于
浏览
5

如果我搜索 500 Buckingham Place, Eight Mile Plains ,Google商家信息API会返回地址为 Ej41MDAgQnVja2luZ2hhbSBQbGFjZSwgRWlnaHQgTWlsZSBQbGFpbnMsIFF1ZWVuc2xhbmQsIEF1c3RyYWxpYQ500 Buckingham Place, Eight Mile Plains, Queensland, Australia . 如果我然后对该地点ID进行详细调用,则返回 Buckingham Pl, Eight Mile Plains QLD 4113, Australia .

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

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

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

1 回答

  • 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为true时返回"not a valid result"

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

    注意:谷歌 Map 的数据可能不会100%准确 .

相关问题