6

目前我似乎无法做到这一点,谷歌在这里谈论基于区域:

https://developers.google.com/maps/documentation/geocoding/#RegionCodes

它使用以下参数:

region:

这是我正在使用的代码:http: //jsfiddle.net/spadez/Jfdbz/19/

我的问题是如何将变量“ctryiso”传递给脚本中的这个参数?当我尝试时,没有任何变化,所以当 ctryiso 设置为 US 并且我在 London 中输入时,它仍然对英国伦敦进行地理编码。我听说它可能有点不可靠,但我仍然认为我的实现不正确。

4

4 回答 4

2

通常你有:

geocoder.geocode({
    address: query
}

你应该region像这样通过(正如你已经提到的):

geocoder.geocode({
    address: query,
    region: SOME_VARIABLE_WITH_REGION_CODE
}

它应该可以工作,虽然......它似乎不是,更多的人遇到同样的问题。

(丑陋的)解决方案是将其添加到地址,如下所示:

geocoder.geocode({
    address: query + ', ' + SOME_VARIABLE_WITH_REGION_CODE
}

我刚刚测试过它并且它有效,但正如我所说 - 这不是“好”,也不是正确的方法 - 它只是解决方法。

正如我们在这里看到的: https ://developers.google.com/maps/documentation/javascript/reference?hl=th-TH&csw=1#GeocoderRequest

您可以通过addressboundslocationregion由于区域似乎不起作用,我会尝试bounds通过首先获取所需区域的坐标来使用:

https://developers.google.com/maps/documentation/javascript/reference?hl=th-TH&csw=1#LatLngBounds

于 2013-08-29T15:37:40.070 回答
0

如另一个答案中所述,您可以region在您的地理编码请求中包含偏向(而不是限制)结果。

然而,在这种特殊情况下,英国的伦敦仍然被认为比美国的伦敦更好。因此,您可以使用地理编码服务文档GeocoderComponentRestrictions中描述的额外限制(相对于偏差)结果

我通过要求结果在美国来展示这种类型的过滤

您会注意到结果位于美国伦敦,但如果您GeocoderComponentRestrictions从小提琴代码中删除 ,则第一个结果现在位于伦敦,尽管存在地区偏差。

然而,仍然重要的是要注意偏置确实有效。例如,如果您现在将地区更改为“ES”并将地址更改为“托莱多”,则结果为西班牙。如果您消除偏差,则默认为 Toledo USA。

tl;博士使用region偏见和GeocoderComponentRestrictions限制。

于 2013-09-05T05:03:16.263 回答
0
function getLatLong(address){
      var geo = new google.maps.Geocoder;

      geo.geocode({'address':address},function(results, status){
              if (status == google.maps.GeocoderStatus.OK) {
                return results[0].geometry.location;
              } else {
                alert("Geocode was not successful for the following reason: " + status);
              }

       });

  }
     I am unable to understand your exact need but, I hope it will help you and if not then please tell me your exact need in short way     
于 2013-09-05T05:20:58.390 回答
0
  • 您可以尝试在
    加载 google map API 时将 region 参数添加为查询字符串,但默认情况下它应该是 US

      https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&region=US
    
  • 您还可以将“,USA”附加到您传递给地理编码器的地址 - 这确实很好,但很难看。

  • 您还可以返回所有结果并解析它们并仅显示感兴趣的国家/地区的结果。在大多数情况下,无论如何您都必须这样做,因为在大多数国家/地区都有多个名称相同的位置....这是首选方法,就像有人在美国伦敦打字一样,您会得到 London, KY 和 London,OH 和用户/您仍然需要决定他们想要哪一个...

于 2013-09-04T23:41:28.853 回答