Google maps 按县限制谷歌地图地理编码请求?

Google maps 按县限制谷歌地图地理编码请求?,google-maps,google-maps-api-3,geocoding,google-geocoder,google-geocoding-api,Google Maps,Google Maps Api 3,Geocoding,Google Geocoder,Google Geocoding Api,我正在使用JavaScript API,但似乎也无法让它与CURL API一起工作 问题:我想按县+州限制我的地理编码结果。Google Maps地理编码API组件筛选不再识别格式为“加利福尼亚州圣马特奥县”(以前工作过)的行政区域,也不再识别“圣马特奥县”,即使根据结果对象它肯定是一个行政区域2级 例如,”https://maps.googleapis.com/maps/api/geocode/json?address=oakland&components=country:US|行政区:San

我正在使用JavaScript API,但似乎也无法让它与CURL API一起工作

问题:我想按县+州限制我的地理编码结果。Google Maps地理编码API组件筛选不再识别格式为
“加利福尼亚州圣马特奥县”
(以前工作过)的
行政区域,也不再识别
“圣马特奥县”
,即使根据结果对象它肯定是一个
行政区域2级

例如,
”https://maps.googleapis.com/maps/api/geocode/json?address=oakland&components=country:US|行政区:San+Mateo+County&key=此处您的密钥“
返回奥克兰的结果,即使它位于阿拉米达县,而不是San Mateo县。使用“加州圣马特奥县”也被完全忽略。执行
components=country:US | administration|u area:San+Mateo+County | administration|u area:CA
同样不起作用(据我所知,JS API无论如何也不可能)

(最终的用例是当地理编码的地址实际上不是一个位置时处理结果,例如“无家可归者”,该地址过去返回错误代码,但最近开始返回“美国”,部分原因是组件过滤似乎已经改变。)


如果你想进一步使用API,这里有一个JS提琴来实现这一点:

早在2018年1月,地理编码API的组件过滤就发生了变化。在此更改后,只有邮政编码和国家/地区过滤器作为严格的过滤器工作,路由、地区和管理区域不是严格的过滤器,只是影响结果

谷歌向高级计划客户发送了有关此更改的通知。我在这里分享这封电子邮件的副本

您好,地图API高级计划客户

谷歌地图地理编码服务即将进行的质量改进将要求地理编码API的组件过滤功能变得不那么严格。该协议将于2018年1月16日生效

同时,我们将在地理编码API web服务上公开一个测试参数,以便您可以查看此更改是否会影响使用组件过滤功能的地理编码请求。要使用该参数,请将relax_components=true添加到请求中

该测试参数将在2018年1月16日前可用。在该日期之后,该参数将被忽略,但使用该参数的请求仍将被接受。没有JavaScript等价物

质量改进将为寻求找到有效地址的请求提供更高质量的结果。但是,以下语句将不再适用于组件过滤功能: 包含组件过滤器的查询仅返回与过滤器匹配的地理编码结果。如果未找到匹配项,地理编码器将返回与过滤器本身匹配的结果。 只有在提供相互排除的筛选器时,组件筛选才会返回零结果响应

对于所有查询,邮政编码和国家代码的过滤器将继续严格执行

例子

将找到一个地址,该地址不严格包含在位置筛选器(内华达州斯普林谷)中,但距离它很近(内华达州天堂),而不是一个与位置筛选器精确匹配的不太具体的结果:

请求示例#1:address=4755+W+Flamingo+Rd&components=Location:Spring+Valley |国家:美国 当前结果:“美国内华达州春天谷弗拉明戈西路”(路线,部分匹配) 未来结果:“美国内华达州拉斯维加斯弗拉明戈路4755 W,邮编89103”(前提)

当本地筛选器将形成不存在的地址时,可以返回不同本地的结果,而不是零_结果:

请求示例#2:组件=地点:蒙特利尔+湖泊+保护区|行政区:萨斯喀彻温省|国家:加利福尼亚州 当前结果:零结果 未来结果:“加拿大SK S0J 1Y0蒙特利尔湖”(成立)

请求示例#3:components=国家:美国|地区:friends+creek+conservation+area+cisco |行政区:IL 当前结果:零结果 未来结果:“美国伊利诺伊州思科市Friends Creek公园路13734号Friends Creek保护区,邮编:61830”(公园)

互斥过滤器不再保证零结果。自2017年4月3日老forward geocoder永久退休以来,情况已经如此。即将进行的更改将使这种情况更频繁地发生,例如,当行政区域过滤器优于位置过滤器时:

请求示例#4:address=Müslistrasse+16&components=locality:Spreitenbach |行政区:ZH |国家:CH 当前结果:零结果 未来结果:“Muslistrase 168820 Wädenswil,瑞士”(街道地址)

找不到的无效地址将不再产生与筛选器本身匹配的结果。这可能导致零_结果或一个或多个与某些筛选器匹配的有效地址

请求示例#5:address=13+Rue+del+Percebe&components=Location:Sydney | country:AU 当前结果:“澳大利亚新南威尔士州悉尼2000”(地点) 未来结果:零结果

请求示例#6:address=Sesame+St&components=Location:Sydney | country:AU 当前结果:“澳大利亚新南威尔士州悉尼2000”(地点) 未来结果:“Sesame St,Mount Waverley VIC 3149,澳大利亚”(路线)和2条以上

在极少数情况下,可能无法再为给定的筛选器值找到有效地址

请求示例#7:address=Fuerteventura&components=Location:Almeria |行政区:AL |国家:ES 当前结果:“西班牙阿尔梅里亚卡莱岛,04007”(路线) 未来结果:零结果

问候,, 谷歌地图API团队


我希望这些信息有帮助

早在2018年1月,地理编码API的组件过滤发生了变化。Af