谷歌地图 - 在边界/视口内搜索

时间:2012-03-07 18:59:28

标签: google-maps maps geocoding viewport bounds

我希望我的搜索只返回地图/视口中的匹配。 我放大了英国,用地图边界搜索伦敦,但是 回应也在美国回归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
        }
    });
}

1 个答案:

答案 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 是从地理编码请求返回的结果的位置。这样,它只会在地图边界内绘制标记。

希望这有帮助。