【问题标题】:openlayers 3 : draw arrow on multi lineopenlayers 3:在多行上绘制箭头
【发布时间】:2016-11-24 13:29:47
【问题描述】:

我想知道是否可以在 MultiLineString 上绘制箭头图标

我的目标是在 multiLine 的每一行上显示带有箭头的多行。

我在网上看到过一些例子,但都是一行。

您知道是否可以使用 multiLineString 来实现吗?

【问题讨论】:

    标签: javascript html openlayers-3


    【解决方案1】:

    是的,有可能。

      var styleFunction = function(feature) {
      var geometry = feature.getGeometry();
    
        var styles = [
        // linestring
        new ol.style.Style({
          stroke: new ol.style.Stroke({
            color: '#ffcc33',
            width: 2
          })
        })
      ];
    
    var lineStringsArray = geometry.getLineStrings();
    for(var i=0;i<lineStringsArray.length;i++){
    
      lineStringsArray[i].forEachSegment(function(start, end) {
        var dx = end[0] - start[0];
        var dy = end[1] - start[1];
        var rotation = Math.atan2(dy, dx);
        styles.push(new ol.style.Style({
          geometry: new ol.geom.Point(end),
          image: new ol.style.Icon({
            src: 'https://openlayers.org/en/v3.19.1/examples/data/arrow.png',
            rotateWithView: false,
            rotation: -rotation
          })
        }));
      });
    }
    
      return styles;
    };
    

    看看演示链接 https://plnkr.co/edit/UM7bD8Pq55PjWQ6EHmTl?p=preview

    【讨论】:

      猜你喜欢
      • 2020-03-07
      • 1970-01-01
      • 2010-10-22
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多