繁体   English   中英

如何在多边形 OpenLayers 中添加一些孔?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM