gpt4 book ai didi

javascript - 开放层 3 : Interaction DragBox not working

转载 作者:行者123 更新时间:2023-12-01 03:43:02 25 4
gpt4 key购买 nike

我的 OpenLayers v3 有一个错误(无论 V3 中的哪个版本)。我尝试向我的 map 添加 ol.interaction.DragBox,但是当我开始拖动时,ol.js 崩溃并显示消息:

ol.js:201 Uncaught TypeError: Cannot read property 'f' of null

at Array. (ol.js:201) at zm (ol.js:245) at bq (ol.js:370) at aq.ve (ol.js:371) at W.l.Kn (ol.js:453) at 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);

在这里你可以找到一个 fiddle :http://jsfiddle.net/3svztkot/2/

在这里你可以找到一个 v4.1.0 的 fiddle ,具有完全相同的代码,但在这里它是完全可操作的! : 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至少定义了一个默认的交互样式,所以不会崩溃。

关于javascript - 开放层 3 : Interaction DragBox not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com