0
我有以下代碼,它應該在更改多邊形形狀時觸發警報。此警報僅在形狀更改兩次後纔會顯示。意思是,我必須在觸發事件之前調整兩次形狀。谷歌地圖APIV3監聽器set_at直到第二次不會觸發
任何有關可能導致此行爲的想法?
function drawListener(drawingManager) {
var coord_listener = google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
var coordinates = (polygon.getPath().getArray()); //get
var bounds = new google.maps.LatLngBounds();
var people = [];
google.maps.event.addListener(polygon.getPath(), 'set_at', function() { //check to see if the item has been changed //THIS ONLY GETS CALLED AFTER POLYGON HAS BEEN CHANGED TWICE
alert('changed');
});
});
請注意這裏:http://stackoverflow.com/a/15833288/913295。 –
如果你對路徑做任何事情,它會再次將它稱爲火災事件功能!事件函數被傳遞(ev,obj)。我所做的是設置obj.updating = true。如果我改變路徑(它正在被監視),並且試圖觸發事件函數AGAIN,如果obj.updating,則返回。在事件函數結束時,我設置了obj.updating = false。 –
由於我無法編輯我的評論,另一個評論提到,更好地使用getPath()而不是我之前提到的路徑。 –