Google Geocoder组件限制不会过滤

时间:2016-03-03 19:38:38

标签: google-maps google-maps-api-3 google-geocoder

这是我的字符串,我正在传递给地理编码服务。

  

http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=Lindon&region=GB&componentRestrictions=locality

其中region = GB是英国的国家代码,而不是伦敦我在Lindon。 Componentrestrictions = locality应仅适用于城市!

但是我的结果又回到了美国的一些地方!!

这不是您对谷歌地理编码器使用组件限制的方式吗?

如果传递'Lindon',我不希望看到任何结果,特别是对于美国。

2 个答案:

答案 0 :(得分:0)

添加",GB"用于地址参数。

http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=Lindon,UK&region=GB&componentRestrictions=locality&language=en enter image description here

区域参数只是"偏置",不限制区域。 https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingRegionCodes

根据我的经验,添加国家/地区代码,邮政编码,适用于所有大多数情况。

答案 1 :(得分:0)

  1. 没有参数componentRestrictions(此参数属于Javascript-API),Webservice的参数称为components
  2. 组件必须具有名称(例如locality一个值。在您的情况下,当您想要搜索名为 Lindon 的城市时,它应该是locality:Lindon
  3. region - 参数不会限制结果,它只会偏好给定区域的结果。 如果要将结果限制为GB,请使用组件country:gb
  4. 城市华盛顿的示例请求(因为似乎没有城市Lindon in the UK

    http://maps.googleapis.com/maps/api/geocode/xml?components=locality:Washington|country:gb