在我的 map 中显示了多个地 block ,用户可以修改地 block 的几何形状并将其发送到我的 API 以更新我的数据库中的几何形状。 如果我选择要修改其几何形状的地 block ,应用程序还将修改我可以事先单击的所有其他地 block 的几何形状。就像它保存了我在包裹之前选择的所有我真正感兴趣的东西一样。
我在修改后恢复几何图形并将其发送到我的 API 之前的代码:
map.on("click", function (evt) {
map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) {
modify.on('modifyend',function(event) {
var geom = feature.getGeometry().getCoordinates();
var wkt = new ol.format.WKT().writeGeometry(new ol.geom.MultiPolygon(geom));
})
})
})
这就是包裹的样子:
我的问题是: 如何修改我选择的最后一个地 block (这是我感兴趣的地 block )的几何形状而不修改其他所有地 block ?
最佳答案
您只需要设置一个modifyend
监听器,就可以从事件中获取已修改的要素,也无需根据旧几何图形的坐标创建新的几何图形,它将是相同的(除非您想将多边形转换为多边形,但这需要额外的 [ ]
)
modify.on('modifyend',function(event) {
var wkt = new ol.format.WKT().writeGeometry(event.features.getArray()[0].getGeometry());
})
关于javascript - 如何在 OpenLayers 5 中仅发送修改后的几何图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57708218/