Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 使用“字段”进行地理编码组件过滤;“地点”;没有按预期工作_Google Maps_Google Geocoder_Google Geocoding Api - Fatal编程技术网

Google maps 使用“字段”进行地理编码组件过滤;“地点”;没有按预期工作

Google maps 使用“字段”进行地理编码组件过滤;“地点”;没有按预期工作,google-maps,google-geocoder,google-geocoding-api,Google Maps,Google Geocoder,Google Geocoding Api,我正在使用谷歌地图的地理编码API获取曼哈顿这个地址的lat、lng值: 123美国纽约州纽约市马丁·路德·金博士大道,邮编10035 我的初始查询如下所示: 此查询不会返回我所需的地址,因此为了将结果筛选到曼哈顿的结果,我根据请求修改了组件筛选参数locality:Manhattan 根据此处文档中的定义: 所以我的问题是-为什么这个url:不返回我想要的地址 然而-使用组件过滤器邮政编码:10035会返回我想要的地址: 谢谢我想你应该注意的主要细节是谷歌最近改变了组件过滤器的行为。该变更于2

我正在使用谷歌地图的地理编码API获取曼哈顿这个地址的lat、lng值:
123美国纽约州纽约市马丁·路德·金博士大道,邮编10035

我的初始查询如下所示:

此查询不会返回我所需的地址,因此为了将结果筛选到曼哈顿的结果,我根据请求修改了组件筛选参数
locality:Manhattan

根据此处文档中的定义:

所以我的问题是-为什么这个url:不返回我想要的地址

然而-使用组件过滤器
邮政编码:10035
会返回我想要的地址:


谢谢

我想你应该注意的主要细节是谷歌最近改变了组件过滤器的行为。该变更于2018年1月15日进行。文档现在包含以下文本:

路线、地点和行政区域上的过滤器影响结果,但不保证包含与地址查询相同的内容

资料来源:

这意味着目前只有邮政编码和国家继续严格执行组件过滤器。地理编码API中的组件过滤不再像以前那样严格。此更改解释了示例请求的行为。具有局部性的组件筛选器不严格,因此会得到不同的结果;而具有邮政编码的组件筛选器严格,则会得到预期的结果

如果您需要一个位置,您应该将其包含在请求的
地址
参数中,以减少歧义

例如

https://maps.googleapis.com/maps/api/geocode/json?address=123%20mlk%20blvd%20Manhattan&key=YOUR_API_KEY

您应遵循地理编码API的最佳实践,这些实践可从以下网站获得:

我希望我的回答能解释你的疑问