如何使用多边形的 insert_at、remove_at 和 set_at 事件。
有人可以提供一些关于如何使用它们以及事件参数是什么的示例。
我现在要做的是当用户绘制多边形并双击多边形的节点时,我希望从多边形中删除节点。
可以吗?
如何使用多边形的 insert_at、remove_at 和 set_at 事件。
有人可以提供一些关于如何使用它们以及事件参数是什么的示例。
我现在要做的是当用户绘制多边形并双击多边形的节点时,我希望从多边形中删除节点。
可以吗?
如果您的多边形是可编辑的,您可以向多边形添加一个事件侦听器,然后处理单击或右键单击。例如:
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);
}
}
});
确保在多边形实际路径上使用它们,而不是多边形对象。