谷歌地图 - 在视窗范围内搜索

3

我希望搜索结果仅限于地图/视口范围内。我将地图缩放到英国,然后使用地图边界搜索伦敦,但响应中也返回了美国的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

我假设通过限制结果,您正在尝试绘制相关的标记,对吗?

因此,而不是直接限制搜索,您可以尝试间接方法。 if(status == google.maps.GeocoderStatus.OK){ // 在每个命中位置上放置标记 }

在if循环中,您可以使用地图边界上称为contains()的方法,如下所示

if(status == google.maps.GeocoderStatus.OK) {
        if(map.getBounds().contains(RESULT-LOCATION)) {
            // put markers on each hit
        }
    }

RESULT-LOCATION 是从地理编码请求返回的结果位置。这样它只会在地图范围内绘制标记。

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接