2014-02-06 27 views
-1
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

你的其他代码是什么样的?你在初始化时是否这样做?你是否尝试过“闲置”事件? – geocodezip

+0

在init方法中注册的事件。 – Sergey

+0

如何帮助闲置事件?绘制圆圈后它不起来。 – Sergey

回答

0

您是否试图检查圆圈是否可见?

circle.getVisible(); 

在Api参考中,他们写道:“返回此圆是否在地图上可见。”

if getVisible()返回false必须等待。 但它可能只会返回到您看到的对象本身的可见性

另一种方法是使用center_changed事件的工作区域...添加所有的圆,然后更改中心最后一个(或不可见的帮助圈)如果谷歌地图一个接一个地添加圆圈,所有变化都会发生,在这个事件中你可以调用你的东西

编辑: 我发现了一个事件,你会像“circlecomplete” 它是google.maps.drawing.DrawingManager 类的事件中,我认为这会做什么你企图以

+0

对不起,但它没有帮助。在绘制地图之前获取Visible()和可见返回true,事件操作也无济于事。 – Sergey

+0

你试过DrawingManager和事件circaledplete? – Stefan

+0

是的,我有,google.maps.event.addListener(drawingManager,'circlecomplete',function(e){alert('hit one!'); }); overlaycomplete事件也尝试过了。 – Sergey

相关问题