有没有办法从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事件中,我想使用边界框中的数据创建一个新图层。我怎么能这样做?
答案 0 :(得分:0)
我认为这是一种相当简单的方法。
你可以像这样得到你的边界(在openlayer的术语中被称为'范围'):
var extent = this.dragBox.getGeometry().getExtent(); // you can use this inside the boxend event
使用此边界,您可以使用您想要的任何方法过滤地图。例如,使用openlayers几何相交,以检查图层中与范围相交的哪个要素:
var isIntersect=feature.getGeometry().intersectsExtent(extent);
然后创建一个图层并使用您过滤的功能填充它。