来自DragBox选择的图层 - openlayers 3

时间:2014-05-28 07:55:22

标签: openlayers-3

有没有办法从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事件中,我想使用边界框中的数据创建一个新图层。我怎么能这样做?

1 个答案:

答案 0 :(得分: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. 然后创建一个图层并使用您过滤的功能填充它。