如何使用多邊形的insert_at,remove_at & set_at事件。如何刪除多邊形座標/頂點/節點(Google Maps V3)
有人可以提供一些關於如何使用它們以及什麼是事件參數的示例。
我現在要做的是當用戶繪製多邊形,並雙擊多邊形的節點時,我想從多邊形中刪除節點。
可以嗎?
如何使用多邊形的insert_at,remove_at & set_at事件。如何刪除多邊形座標/頂點/節點(Google Maps V3)
有人可以提供一些關於如何使用它們以及什麼是事件參數的示例。
我現在要做的是當用戶繪製多邊形,並雙擊多邊形的節點時,我想從多邊形中刪除節點。
可以嗎?
如果您的多邊形是可編輯的,您可以將事件偵聽器添加到多邊形,然後處理單擊或右鍵單擊。例如:
poly = new google.maps.Polygon({
editable: true
});
poly.setMap(map);
google.maps.event.addListener(poly, 'rightclick', function(event) {
if (event.vertex == undefined) {
return;
} else {
removeVertex(event.vertex);
}
});
上面的代碼創建了一個多邊形,並附上多邊形的事件監聽器,捕捉的頂點(節點)點擊右鍵,然後調用removeVertex功能。
function removeVertex(vertex) {
var path = poly.getPath();
path.removeAt(vertex);
}
類似的解決方案也可以應用於多段線。
這裏有2個鏈接,可以幫助:
事件: https://developers.google.com/maps/documentation/javascript/events
的活動你問: https://developers.google.com/maps/documentation/javascript/overlays#PolygonArrays
我剛剛結束了使用remove_at事件。這是我如何使用它:
google.maps.event.addListener(this, 'click', function(event) {
path = this.getPath();
for(i=0;i<path.length;i++){
if(event.latLng == path.getAt(i)){
path.removeAt(i);
}
}
});
確保您使用它們的多邊形實際路徑,而不是多邊形對象。
這是當前一項突出的功能請求(由Google承認),問題3760.請按照下列鏈接:http://stackoverflow.com/a/9279742/926460 – Timeless 2012-05-04 05:12:20