【问题标题】:Google geocoding API - search in just one countryGoogle 地理编码 API - 仅在一个国家/地区搜索
【发布时间】:2013-02-04 01:50:14
【问题描述】:

我正在使用 google geocode-API 寻找地理编码:

http://maps.googleapis.com/maps/api/geocode/json?address=london%c2+UK&sensor=false

问题是,输入不是很准确(特别是街道),有时谷歌会混淆并忽略英国,因为街道在其他地方有完美的匹配(如街道和城市)。例如美国。

现在我无法解决这个问题(输入数据),但我想知道是否有一个参数,它迫使谷歌在英国搜索并且不返回任何结果而不是完全错误的结果。

【问题讨论】:

    标签: google-geocoder google-geocoding-api


    【解决方案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);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多