2014-02-06 56 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

相關問題