【问题标题】:How to delete polygon coordinate/vertex/node (Google Maps V3)如何删除多边形坐标/顶点/节点(Google Maps V3)
【发布时间】:2012-04-25 11:00:18
【问题描述】:

如何使用多边形的insert_at、remove_at和set_at事件。

有人可以提供一些关于如何使用它们以及事件参数是什么的示例。

我现在要做的是当用户绘制多边形时,双击多边形的节点,我希望从多边形中删除节点。

可以吗?

【问题讨论】:

标签: events google-maps polygon editing


【解决方案1】:

如果您的多边形是可编辑的,您可以向多边形添加一个事件侦听器,然后处理单击或右键单击。例如:

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】:

    这里有 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);
                }
            }
     });
    

    确保在多边形实际路径上使用它们,而不是多边形对象。

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 1970-01-01
      • 2016-06-17
      • 2012-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多