[英]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.