首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openlayers 3:交互DragBox不工作

Openlayers 3:交互DragBox不工作
EN

Stack Overflow用户
提问于 2017-05-02 14:33:16
回答 1查看 833关注 0票数 0

我在OpenLayers v3中有一个bug (不管它是在V3中的哪个版本)。我试图将一个ol.interaction.DragBox添加到我的地图中,但是当我开始拖动时,ol.js会崩溃,其中包含消息:

ol.js:201 Uncaught :无法读取空属性f 在阵列。(ol.js:201)在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一起使用的代码:

代码语言:javascript
复制
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/

关于这件事有什么已知的错误吗?我以前找过像我这样的案子,但没有成功。谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 14:44:48

好吧,我发现问题了。以下是问题的“原因”,也许以后会对其他人有用。

在Open层v3中,您必须在交互中设置一个样式,如下所示:

代码语言:javascript
复制
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至少为交互定义了默认样式,因此不会崩溃。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43740572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档