我正在使用Google Maps API v3来处理地图。此外,我还使用输入/文本和输入/按钮让用户查找邮政编码。
然后地图应该以该邮政编码为中心。它确实如此!但在一些邮政编码上,我来到了非常奇特的地方。
服务器,客户端和其他任何东西都在德国,所以我想将所有查询锁定到德国。例如,如果我想以“92224”为中心,我看不到巴伐利亚,我迷路了立陶宛。
我使用以下代码from this answer按命令居中:
function codeAddress(zipCode) {
geocoder.geocode( { 'address': zipCode}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//Got result, center the map and put it out there
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);
}
});
}
现在我该如何实现此查询仅以德国邮政编码为中心?(如果有帮助,德国邮政编码总是5个数字长。)
答案 0 :(得分:1)
您想设置componentRestrictions
并按国家/地区进行过滤。
请参阅documentation。
示例强>:
function codeAddress(zipCode) {
geocoder.geocode({
'address': address, "componentRestrictions":{"country":"DE"}
}, 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);
}
});
}
<强>演示:强>
注意:强>
作为旁注,您无法按多个国家/地区进行过滤。这是long awaited feature,Google至今仍未实施。
修改: 2017-04-19
Google现在已经实施了一种最多可以过滤5个国家/地区的方法:请参阅https://issuetracker.google.com/issues/35821685我不会对这有多少有用的评论...