繁体   English   中英

OpenLayers 3 DragBox 未显示在地图上

[英]OpenLayers 3 DragBox not displaying on map

当我在地图上移动+拖动并释放时,“boxend”侦听器会触发。 此外,如果我在将 dragBox 交互添加到地图后检查地图对象,则 dragBox 交互位于地图对象中。 问题是在选择区域时,该框在地图上永远不可见。 我错过了什么?

 $scope.drawBox = () => {
    const 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],
          width: 2
        })
      })
    });

    map.addInteraction(dragBox);

    dragBox.on("boxend", function(e) {
      console.log("boxend called"); // listener is triggered
    });
  };

OpenLayers 版本 v3.11.0 的发布改变了您设置 ol.interaction.DragBox 和 ol.interaction.DragZoom 样式的方式。 在创建对象时不使用样式属性,您必须使用 CSS 为该功能设置样式。

老的:

 new ol.interaction.DragZoom({
      style: new ol.style.Style({
        stroke: new ol.style.Stroke({
          color: 'red',
          width: 3
        }),
        fill: new ol.style.Fill({
          color: [255, 255, 255, 0.4]
        })
      })
    })

新的:

.ol-dragzoom {
  border-color: red;
  border-width: 3px;
  background-color: rgba(255,255,255,0.4);
}

我有同样的问题。 我使用 OL 3.14,我用那个 CSS 解决了这个问题:

.ol-dragbox {
    background-color: rgba(255,255,255,0.4);
    border-color: rgba(100,150,0,1);
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM