[英]Openlayers 3 : Interaction DragBox not working
我在OpenLayers v3中有一個錯誤(無論它在V3中是哪個版本)。 我嘗試將ol.interaction.DragBox添加到地圖中,但是當我開始拖動時,ol.js崩潰並顯示以下消息:
ol.js:201未捕獲的TypeError:無法讀取null的屬性'f'
在陣列。 (ol.js:201)在zm(ol.js:245)在bq(ol.js:370)在aq.ve(ol.js:371)在ok.n(ol.js:453)在oi.f( ol.js:142)
與v3.9.0一起使用時,這里是代碼:
var vectorSource = new ol.source.Vector({
url: 'https://openlayers.org/en/v4.1.0/examples/data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
});
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: vectorSource
})
],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
var dragBox = new ol.interaction.DragBox({
condition: ol.events.condition.platformModifierKeyOnly
});
map.addInteraction(dragBox);
在這里您可以找到小提琴: http : //jsfiddle.net/3svztkot/2/
在這里,您可以找到帶有完全相同代碼的v4.1.0小提琴,但是在這里完全可以操作! : http : //jsfiddle.net/872cuk52/2/
是否有一些已知的錯誤? 我搜索了以前的案例,例如我的案例,但沒有成功。 謝謝你的幫助 !
好的,我發現了問題。 這是問題的“原因”,也許以后對其他人有用。
在Openlayers v3中,您必須在交互中設置樣式,如下所示:
var dragBox = new ol.interaction.DragBox({
condition: ol.events.condition.shiftKeyOnly,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: [0, 0, 255, 1]
})
})
});
然后,它起作用。 看來OpenLayers 4.1.0至少為交互定義了默認樣式,因此不會崩潰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.