2011-11-27 53 views
3

我正在google map api v3上工作,並且想要添加編輯折線的功能。截至谷歌文檔。當折線處於編輯模式時,會觸發3個事件。Google Maps API v3中的remove_at事件何時觸發?

  1. insert_at
  2. set_at
  3. remove_at

我知道前兩個事件被解僱,我能得到編輯的座標爲好。我也想刪除一個節點,但不知道它是如何工作的。任何人都可以告訴我什麼時候會將「remove_at」事件解僱?

回答

1

根據documentation這些事件屬於類google.maps.MVCArray。您也可以在這裏找到對remove_at事件的描述:

當調用removeAt()時會觸發此事件。該事件通過傳遞給removeAt()的 索引以及從數組中刪除 的元素。

但我不確定您可以在編輯折線時使用這些事件來處理更改。這非常有趣,請讓我們知道它是否有效,以及如何!

+0

謝謝托馬斯先生。我意識到它在調用removeAt()時被觸發的事實,但是想要知道在觸發其他兩個事件時編輯多段線時何時觸發此事件。那麼我已經解決了它。 我爲polyline中的所有節點分配了一個「rightclick」偵聽器,並在觸發此右鍵單擊事件時刪除該節點,該工作正如我所希望的那樣工作。我現在已經完全工作。謝謝:) – tmjam

+0

我真的很期待多邊形和多段線,除了相同的路徑事件和行爲相同...但沒有0 –

+0

@JohnnyDarvall,很典型:)你能更具體嗎?多邊形如何不同? – TMS

2

當您撤消對現有覆蓋圖的編輯時,會觸發'remove_at',導致控制點被刪除。

我已創建fiddle to demonstrate這個。

從小提琴:

var myLatlng = new google.maps.LatLng(60.629765, 6.424094); 
var myOptions = { 
    zoom: 14, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

var drawMan = new google.maps.drawing.DrawingManager({ 
    map: map, 
    drawingControl: false, 
    polygonOptions: { 
     editable: true, 
     draggable: true 
    } 
}); 

drawMan.setDrawingMode(google.maps.drawing.OverlayType.POLYGON); 

google.maps.event.addListener(drawMan, 'overlaycomplete', function (event) { 
    // When draw mode is set to null you can edit the polygon you just drawed 
    drawMan.setDrawingMode(null); 

    google.maps.event.addListener(event.overlay.getPath(), 'remove_at', function() { 
     alert('remove_at triggered'); 
    }); 
});