我希望我的搜索只返回地图/视口中的匹配。 我放大了英国,用地图边界搜索伦敦,但是 回应也在美国回归3次。如何限制搜索?
代码:
function codeAddress(){
geocoder = new google.maps.Geocoder();
var address = document.getElementById("inputAddress").value;
var bounds = map.getBounds();
geocoder.geocode({address: address, bounds: bounds}, function(results, status){
if(status == google.maps.GeocoderStatus.OK){
// put markers on each hit
}
});
}
答案 0 :(得分:0)
我假设通过限制你试图绘制相关标记的结果对吗?
因此,您可以尝试间接方法,而不是直接限制搜索。
if(status == google.maps.GeocoderStatus.OK){
// put markers on each hit
}
在if循环中,你可以在地图的边界上使用名为 contains()的方法,就像这样
if(status == google.maps.GeocoderStatus.OK) {
if(map.getBounds().contains(RESULT-LOCATION)) {
// put markers on each hit
}
}
RESULT-LOCATION 是从地理编码请求返回的结果的位置。这样,它只会在地图边界内绘制标记。
希望这有帮助。