var markers = mapController.gMarkers;
var lng = markers.length;
for (var i = 0; i < lng; i++) {
// Add circle overlay and bind to marker
var circle = new google.maps.Circle({
map: mapController.mapGl.map,
radius: 160930, // 100 miles in metres
fillColor: '#AA0000'
});
circle.bindTo('center', markers[i], 'position');
mapController.gCircles.push(circle);
}
在循环结束时上升一个方法没有帮助。它发生的时间早于所有圆圈都可见。
我希望在地图上绘制并显示所有圆圈时获取活动。 初始代码:
`//check for suportting WebGL
if (!Detector.webgl) {
Detector.addGetWebGLMessage();
return;
}
var mapElement = document.getElementById('map');
var options = {
maxZoom: 18,
minZoom: 3,
zoom: 4,
center: new google.maps.LatLng(42.19595526752781, -96.67078125),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: false,
zoomControl: true,
draggableCursor: 'url(pcursor.png) 16 16, default'
};
mapController = new WebGlMap(mapElement, options);
var drawingManager = new google.maps.drawing.DrawingManager();
drawingManager.setMap(mapController.mapGl.map);
google.maps.event.addListener(drawingManager, 'circlecomplete', function (circle) {
alert('hit!');
});
google.maps.event.addListener(drawingManager, 'overlaycomplete', function (event) {
alert('hit!');
});
//mapController.gPolygons = [];
mapController.gMarkers = [];
mapController.gCircles = [];`
答案 0 :(得分:0)
您是否尝试检查圆圈是否可见?
circle.getVisible();
在Api参考时,他们会写“返回这个圆圈在地图上是否可见。”
如果getVisible()返回false,则必须等待。 但它可能只会让你对对象本身具有可见性
另一种方法是使用一个workearound与center_changed事件...添加你的所有圆圈,然后更改最后一个(或一个不可见的帮助圈)的中心如果googlemaps逐个添加圆圈,更改一切都完成后会发生,在这个事件你可以打电话给你的东西
编辑: 我找到了一个你喜欢“circlecomplete”的活动 它是google.maps.drawing.DrawingManager类的一个事件 我认为这会做你想要的事情