谷歌地理编码API问题:获取响应“partial_match”

时间:2017-12-06 05:43:51

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

我正在使用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”:回复是真的吗?

我在API请求中需要做哪些更改才能获得“partial_match”?

2 个答案:

答案 0 :(得分:2)

要了解美国伊利诺斯州卡林维尔市第62626号Side Side Square的部分匹配标志的性质。让我们看一下地理编码工具中的这个地址:

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

实际上,结果中的搜索字符串和格式化地址完全相同,但是,我们必须注意其他值,例如location_typeplace_id

enter image description here

正如您所看到的,位置类型为RANGE_INTERPOLATED,而地点ID的长值为Ei0zNjQgUyBTaWRlIFNxdWFyZSwgQ2FybGludmlsbGUsIElMIDYyNjI2LCBVU0E。这意味着Google在其数据库中没有确切的地址功能,并尝试插入此地址所在的位置。如果Google数据库中存在地址,您将看到位置类型ROOFTOP和更短的place ID(类似于ChIJrTLr-GyuEmsRBfy61i59si0)。

恢复上述内容,示例中的部分匹配标记表示Google数据库中不存在确切的街道地址功能。

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

  

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

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

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

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

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

答案 1 :(得分:0)

partial_match表示地理编码器未返回原始请求的完全匹配,但它能够匹配部分请求的地址。您可能希望检查拼写错误的原始请求和/或地址不完整。

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

尝试 place_id ,这是唯一标识符

相关问题