我有一个使用谷歌地图API的应用程序通过他们的alpha2代码在地图上显示国家,但我遇到了In(印度)和CA(加拿大)的问题。代码如下:
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);
}
});
}
上述函数中的地址变量可以采用国家/地区的全名(印度,加拿大),但我的应用程序会提供alpha2代码。我的临时解决方案是硬编码' IN'和' CA'在上述功能中,但我想知道是否有更好的策略。
答案 0 :(得分:0)
通过阅读Google Map API,我发现API存在区域偏差。默认情况下,它对发送请求的位置有偏差。例如,如果您来自美国并且查询“IN”,因为区域偏见是美国,Google Map将首先尝试找到“IN”,恰好是印第安纳州。
我也开始知道有两种方法可以通过以下方式来覆盖区域偏差:
将'region'参数设置为:{'address' : address, 'region': 'cn'};
//将区域偏差设置为中国
使用componentRestrictions
选项。