2012-04-13 144 views
1

如何使用多邊形的insert_at,remove_at & set_at事件。如何刪除多邊形座標/頂點/節點(Google Maps V3)

有人可以提供一些關於如何使用它們以及什麼是事件參數的示例。

我現在要做的是當用戶繪製多邊形,並雙擊多邊形的節點時,我想從多邊形中刪除節點。

可以嗎?

+0

這是當前一項突出的功能請求(由Google承認),問題3760.請按照下列鏈接:http://stackoverflow.com/a/9279742/926460 – Timeless 2012-05-04 05:12:20

回答

7

如果您的多邊形是可編輯的,您可以將事件偵聽器添加到多邊形,然後處理單擊或右鍵單擊。例如:

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); 
} 

類似的解決方案也可以應用於多段線。

1

這裏有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); 
      } 
     } 
}); 

確保您使用它們的多邊形實際路徑,而不是多邊形對象。

相關問題