【问题标题】:Issue with google geocode API : Getting "partial_match" in response谷歌地理编码 API 的问题:得到“partial_match”作为响应
【发布时间】:2018-05-19 22:29:54
【问题描述】:

我正在使用 google Geocode API 来获取特定地址的纬度。

当我在谷歌搜索或谷歌地图中搜索“364 S Side Square, Carlinville, IL 62626, USA”时,它会在谷歌搜索结果或地图结果上提供准确的定位。

但同时,当我使用 Geocode API 使用以下请求调用搜索相同地址时,它会给出 "partial_match" : true

http://maps.googleapis.com/maps/api/geocode/json?address=364 S Side Square, Carlinville, IL 62626, USA&sensor=false

任何人都知道它为什么给出 "partial_match" : true 作为响应?

我必须在 API 请求中进行哪些更改才能避免“partial_match”?

【问题讨论】:

    标签: api google-maps google-maps-api-3 google-geocoder google-geocoding-api


    【解决方案1】:

    要了解“364 S Side Square, Carlinville, IL 62626, USA”的部分匹配标志的性质,让我们看看地理编码工具中的这个地址:

    https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D364%2520S%2520Side%2520Square%252C%2520Carlinville%252C%2520IL%252062626%252C%2520USA

    确实,结果中的搜索字符串和格式化后的地址是一模一样的,但是我们要注意其他值比如location_typeplace_id

    如您所见,位置类型为 RANGE_INTERPOLATED,地点 ID 具有长值 Ei0zNjQgUyBTaWRlIFNxdWFyZSwgQ2FybGludmlsbGUsIElMIDYyNjI2LCBVU0E。这意味着谷歌在他们的数据库中没有确切的地址功能,并试图插入这个地址可能位于的位置。如果地址存在于 Google 数据库中,您将看到位置类型 ROOFTOP 和较短的 place ID(类似于 ChIJrTLr-GyuEmsRBfy61i59si0)。

    继续上述,您示例中的部分匹配标志表明 Google 数据库中不存在确切的街道地址功能。

    这也可以通过文档中的以下句子来确认:

    部分匹配最常发生在您在请求中传递的本地不存在的街道地址

    https://developers.google.com/maps/documentation/geocoding/intro#GeocodingResponses

    您还可以选择通过帮助中心向 Google 报告丢失的地址:

    https://support.google.com/maps/answer/6320846

    希望我的回答能解决你的疑惑!

    【讨论】:

    • 你的意思是说这个地址在谷歌数据库中不存在?我该如何克服这个 partial_match 问题?
    • 您应该报告丢失的地址。一旦 Google 将其添加到他们的数据库中,部分匹配就会消失。
    • 如果这个地址在谷歌数据库中不存在,那么谷歌网络搜索如何在结果中给出准确的定位点??
    • 谷歌给出了一个插值位置。他们会说“好吧,我们认为这个地址应该在这里,但我们没有确切的功能”。您在地理编码器工具中看到的地址是从街道数据合成的,但不是直接在数据库中找到的。因此,部分匹配标志和删除此部分匹配标志的唯一选项是请求 Google 在其数据库中添加确切地址功能。
    • 仅举一个例子来进一步说明这一点:搜索街道名称为15ieme avenue 的地址会得到部分匹配,但15e avenue 不会。这是因为该地址在数据库中注册为15e Av,而API 无法识别15ieme15e 的一个更长的俚语。希望有帮助!
    【解决方案2】:

    partial_match 表示地理编码器没有返回与原始请求完全匹配的内容,尽管它能够匹配所请求地址的一部分。您可能希望检查拼写错误和/或地址不完整的原始请求。

    部分匹配最常发生在您在请求中传递的地区内不存在的街道地址。当请求匹配同一地点的两个或多个位置时,也可能返回部分匹配。例如,“21 Henr St, Bristol, UK”将返回 Henry Street 和 Henrietta Street 的部分匹配项。请注意,如果请求包含拼写错误的地址组件,则地理编码服务可能会建议替代地址。以这种方式触发的建议也会被标记为部分匹配。

    试试 place_id 这是唯一标识符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      相关资源
      最近更新 更多