0

我正在使用DistanceWidget插件。这是我的代码:错误标记出现在Google地图上的圆圈外

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

+0

圆的边界一个阵列是广场。 – geocodezip

+0

相关问题:[Google maps JS API v3:使用containsLocation()获取标记不起作用 - 为什么?](http://stackoverflow.com/questions/28254090/google-maps-js-api-v3-获得标志物,内接圆与 - containslocation-犯规,WOR) – geocodezip

回答

0

u需要先检查度过一个特别的标记位于圆或不 如果是,那么它会自动出现在圆圈中,否则您需要将该标记放置在该圆圈中。

其他的解决方案是:U需要使用的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是包含所有标记的纬度和LNG(google.maps.LatLng)