错误标记出现在Google地图上的圆圈外

时间:2016-01-13 09:58:00

标签: jquery google-maps google-maps-api-3 maps google-maps-markers

我正在使用DistanceWidget插件。这是我的代码:

var distanceWidget = new DistanceWidget(map);
displayMarker(distanceWidget, markers);

google.maps.event.addListener(distanceWidget, 'distance_changed', function () {
   displayMarker(distanceWidget, markers);
});

google.maps.event.addListener(distanceWidget, 'position_changed', function () {
   displayMarker(distanceWidget, markers);
});

此功能显示/隐藏标记

function displayMarker(circle, markers) {
    var bounds = circle.get('bounds');
    for (var i=0; i<markers.length; i++) {
        if(bounds.contains(markers[i].getPosition())) {
            markers[i].setVisible(true);
        } else {
            markers[i].setVisible(false);
        }
    }
}

这是我的错误 Error

1 个答案:

答案 0 :(得分:0)

你需要检查第一个天气,特定的标记是否在圈内 如果是,则它会自动显示在圆圈中,否则您需要将该标记放在该圆圈中。

其他解决方案是:你需要使用类似这样的LatLngBounds方法

        var bounds = new google.maps.LatLngBounds();
        for (var i = 0, LtLgLen = arrZom.length; i < LtLgLen; i++) {
            bounds.extend(arrZom[i]);
        }
        map.fitBounds(bounds);

arrZom是一个数组,其中包含所有标记的Lat和Lng(google.maps.LatLng)