簡體   English   中英

OL3刪除拖動框交互

[英]OL3 Remove a dragbox interaction

我想刪除我在js類中添加的地圖的交互,但是當我嘗試在其他類中刪除該交互時,我不知道該怎么做,因為我無法訪問該類中的交互對象我需要的.....

我有以下代碼(我添加了交互):

...
var dragBox = new ol.interaction.DragBox({
        condition: ol.events.condition.always,
        style: new ol.style.Style({
            stroke: new ol.style.Stroke({
                color: [0, 0, 255, 1]
            })
        })
    });

    mapa.addInteraction(dragBox);

    dragBox.on('boxend', function(e) {
        if (capaActiva != null) {
            var info = [];
            var extent = dragBox.getGeometry().getExtent();
            var ext = extent.toString().split(',');

            var ext1 = ext[0];
            var ext2 = ext[1];
            var ext3 = ext[2];
            var ext4 = ext[3];

            var tfn = ol.proj.getTransform('EPSG:3857', 'EPSG:4326');
            var textent = ol.extent.applyTransform([ext1, ext2, ext3, ext4], tfn).toString();
...

刪除交互的js類:

...
cerrar: function(){
    mapa.removeInteraction(dragBox);
}
...

在第二堂課中,我得到了錯誤:

dragBox is not defined

如何訪問和刪除第二堂課中的互動?

在兩個范圍內都必須可以訪問dragBox。

沒有看到更多的代碼很難說,但是您可以

this.dragBox = new ol.interaction.DragBox({
        condition: ol.events.condition.always,
        style: new ol.style.Style({
            stroke: new ol.style.Stroke({
                color: [0, 0, 255, 1]
            })
        })
    });

    mapa.addInteraction(this.dragBox);

    this.dragBox.on('boxend', function(e) { ......

.......................
cerrar: function(){
    mapa.removeInteraction(dragBox);
}

如果它們不在同一對象中,則需要確保可從兩個作用域訪問dragbox變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM