2012-03-22 31 views
3

我有一個可編輯的多段線,我需要知道這個多段線何時更改其路徑變量。在我的多段線中添加一個新事件(「path_change」或其他一些像這樣)是可行的嗎?知道什麼時候多段線路徑變量

感謝

問候 cadetill

回答

14

我只是面對這個問題。我通過將事件監聽器添加到多段線路徑來解決此問題,該路徑作爲一個mvc數組實現。我這裏使用的記錄的MVC陣列事件: https://developers.google.com/maps/documentation/javascript/reference#MVCArray

一旦折線設置:

var path = poly.getPath(); 
google.maps.event.addListener(path, 'insert_at', function(){ 
alert("path insert_at event"); 
}); 
google.maps.event.addListener(path, 'remove_at', function(){ 
alert("path remove_at event"); 
}); 
google.maps.event.addListener(path, 'set_at', function(){ 
alert("path set_at event"); 
}); 

希望有所幫助。

+0

下面的下一個註釋是如果使用此代碼實際發生的情況。適用於多邊形tho – 2013-01-23 08:01:45

2

我不認爲這是可能的事件添加到折線對象。查看reference我也不確定在編輯過程中觸發了哪些事件,但我認爲會觸發'click','dblclick'等。您需要運行測試以查看哪些事件表示編輯結束。假設你在編輯之前保存了Polyline.getPath()返回的數組,你需要檢查新的getPath()結果,以確定它們是否已經改變。由於path是一個LatLng對象數組,因此可以使用LatLng.equals(LatLng)以及基本的array.length檢查等。可以使用LatLngArray.join()來比較兩個數組。

+1

嗨,Eric。 感謝您的回答。我測試了來自多段線的所有事件,並且在路徑更改時不會觸發任何事件。事實上,當鼠標與點的平方相互作用以移動實際的經緯度或創建新的路徑時,不會觸發任何事件。 正是爲了這個,我喜歡爲路徑變化創建一個新事件。 謝謝 – cadetill 2012-03-23 09:45:46

相關問題