Слой от селекция DragBox - отворени слоеве 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 искам да създам нов слой, използвайки данните в моята ограничителна кутия. Как мога да направя това?


person marinvirdol    schedule 28.05.2014    source източник


Отговори (1)


Мисля, че това е доста ясен подход.

  1. Можете да получите вашата граница (в термина на openlayer се нарича „степен“) по следния начин:

     var extent = this.dragBox.getGeometry().getExtent(); // you can use this inside the boxend event
    
  2. С тази граница можете да филтрирате картата с какъвто метод искате. Например с помощта на openlayers geometry intersect, за да проверите коя функция в слоя пресича екстента:

    var isIntersect=feature.getGeometry().intersectsExtent(extent);
    
  3. След това създайте слой и го попълнете с функциите, които сте филтрирали.

person lucernae    schedule 11.12.2014