Google 地理编码 API - 仅在一个国家/地区搜索
Posted
技术标签:
【中文标题】Google 地理编码 API - 仅在一个国家/地区搜索【英文标题】:Google geocoding API - search in just one country 【发布时间】:2013-02-04 01:50:14 【问题描述】:我正在使用 google geocode-API 寻找地理编码:
http://maps.googleapis.com/maps/api/geocode/json?address=london%c2+UK&sensor=false
问题是,输入不是很准确(特别是街道),有时谷歌会混淆并忽略英国,因为街道在其他地方有完美的匹配(如街道和城市)。例如美国。
现在我无法解决这个问题(输入数据),但我想知道是否有一个参数,它迫使谷歌在英国搜索并且不返回任何结果而不是完全错误的结果。
【问题讨论】:
【参考方案1】:您可以在 url 中添加组件过滤器来约束结果。在这种情况下,您可以使用:
http://maps.googleapis.com/maps/api/geocode/json?address=london%c2+UK**&components=country:UK**&sensor=false
有关如何使用组件过滤的更多信息,请参阅:
https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering
【讨论】:
感谢您的回答 - 它正在工作,但就我而言:如果国家/地区错误(输入),这将返回指定国家/地区。 你是对的,正如api所说:“包含组件过滤器的查询将只返回与过滤器匹配的地理编码结果。如果没有找到匹配项,则地理编码器将返回匹配的结果过滤器本身。...只有在您提供相互排除的过滤器时,组件过滤才会返回 ZERO_RESULTS 响应。” 您是从 javascript 进行此调用吗?如果是这样,您可以考虑使用 google maps api for javascript 中的 geocoder 对象。您将无法仅过滤结果以“偏向”它们,但您将获得 ZERO_RESULTS 状态。 link 当我们使用它时,我们无法显示类似 alert("Geocode 未成功,原因如下:" + status);以上是关于Google 地理编码 API - 仅在一个国家/地区搜索的主要内容,如果未能解决你的问题,请参考以下文章