[英]How to add some holes into polygon OpenLayers?
我使用这种方法将神圣添加到多边形中。 但我需要在多边形中添加一些孔。
创建孔的部分代码:
const features = [];
draw.on('drawend', function (e) {
features.push(e.feature);
const index = features.length - 1;
if (index % 2 === 1) {
console.log(features[index]);
const coordinates = [
features[index - 1].getGeometry().getCoordinates(true)[0],
features[index].getGeometry().getCoordinates(false)[0],
];
source.removeFeature(features[index - 1]);
features[index].getGeometry().setCoordinates(coordinates);
}
});
对于 OpenLayers 多边形,可以忽略环方向。 这段代码应该可以工作。 第一个多边形成为外环,其他多边形创建孔。
const draw = new Draw({
// source: source,
type: 'Polygon',
});
let currentPolygonFeature;
draw.on('drawend', function (e) {
if (!currentPolygonFeature) {
currentPolygonFeature = e.feature;
source.addFeature(currentPolygonFeature);
return;
}
const rings = currentPolygonFeature.getGeometry().getCoordinates();
rings.push(e.feature.getGeometry().getCoordinates()[0]);
currentPolygonFeature.getGeometry().setCoordinates(rings);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.