0

有没有办法从 DragBox 选择中创建一个新图层?

这是我的 DragBox 交互:

/* create drag box */
this.dragBox = new ol.interaction.DragBox({
    /* dragbox interaction is active only if alt key is pressed */
    condition: ol.events.condition.altKeyOnly,
    /* style the box */
    style: new ol.style.Style({
        stroke: new ol.style.Stroke({
            color: [0, 0, 255, 1]
        })
    })
});
/* add the DragBox interaction to the map */
this.map.addInteraction(this.dragBox);

在 boxend 事件中,我想使用边界框中的数据创建一个新层。我怎样才能做到这一点 ?

4

1 回答 1

0

我认为这是相当简单的方法。

  1. 您可以像这样获得您的边界(在 openlayer 的术语中称为“范围”):

     var extent = this.dragBox.getGeometry().getExtent(); // you can use this inside the boxend event
    
  2. 使用此边界,您可以使用所需的任何方法过滤地图。例如,使用 openlayers 几何相交,来检查图层中与范围相交的特征:

    var isIntersect=feature.getGeometry().intersectsExtent(extent);
    
  3. 然后创建一个图层并使用您过滤的功能填充它。

于 2014-12-11T10:56:50.157 回答