谷歌地图API地理代码错误,国家/地区alpha2代码为IN(印度)和CA(加拿大)

谷歌地图API地理代码错误,国家/地区alpha2代码为IN(印度)和CA(加拿大),api,map,Api,Map,我有一个使用谷歌地图API的应用程序,通过他们的alpha2代码在地图上显示国家,但我在印度和加拿大遇到了问题。代码如下: function codeAddress() { var address = document.getElementById('address').value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.Geoc

我有一个使用谷歌地图API的应用程序,通过他们的alpha2代码在地图上显示国家,但我在印度和加拿大遇到了问题。代码如下:

function codeAddress() {
  var address = document.getElementById('address').value;
  geocoder.geocode( { 'address': address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      map.setCenter(results[0].geometry.location);
      var marker = new google.maps.Marker({
          map: map,
          position: results[0].geometry.location
      });
    } else {
      alert('Geocode was not successful for the following reason: ' + status);
    }
  });
}

上述函数中的address变量可以采用国家的全名(印度、加拿大),但我的应用程序提供alpha2代码。我的临时解决方案是在上述函数中硬编码'IN'和'CA',但我想知道是否有更好的策略。

通过阅读Google Map API,我了解到API有区域偏见。默认情况下,它对请求从何处发送有偏差。例如,如果您来自美国,并且查询“IN”,因为地区偏差是美国,谷歌地图将首先尝试定位“IN”,它恰好位于印第安纳州

我还了解到,有两种方法可以通过以下方式克服区域偏见:

  • 在:
    {'address':address,'region':'cn}中设置'region'参数//将地区偏向设置为中国

  • 使用
    组件限制
    选项