谷歌地理编码API - 仅在一个国家搜索

7

我正在使用谷歌地理编码API寻找地理编码:

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

问题在于输入不是很准确(尤其是街道名称),有时Google会混淆信息并忽略英国,因为在其他地方(例如美国)有一个完全匹配的街道和城市。现在我无法解决这个问题(输入数据),但我想知道是否有一个参数,可以强制Google在英国搜索并返回没有结果,而不是完全错误的结果。
1个回答

13
您可以在URL中添加组件过滤器来限制结果。 在这种情况下,您可以使用:

您可以在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


谢谢你的答案 - 这很有效,但对于我的情况:如果国家是错误的(输入),这将返回指定的国家作为结果。 - marty bourque
2
你是对的,正如API所说:“包含组件过滤器的查询只会返回与过滤器匹配的地理编码结果。如果没有找到匹配项,地理编码器将返回一个与过滤器本身匹配的结果。...仅当您提供互相排斥的过滤器时,组件过滤才会返回ZERO_RESULTS响应。” - jmm
你是从 JavaScript 中发起这些调用吗?如果是的话,你可以考虑使用 Google Maps API for JavaScript 中的 geocoder 对象。虽然你无法仅将结果过滤以“偏向”它们,但你将获得 ZERO_RESULTS 状态。链接 - jmm
当我们使用它时,不能显示不成功的消息,比如alert("Geocode was not successful for the following reason: " + status);。 - user1699797

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接