OpenLayers 3 - 在Custom Draw Interaction的geometryFunction中使用MultiLineString

时间:2017-06-09 15:43:16

标签: javascript svg openlayers-3 multilinestring

我正在使用OL3示例DrawShapes。有一个"明星"作为与用户定义的几何函数的自定义绘制交互的示例,如

   draw = new ol.interaction.Draw({
        source: source,
        type:  'Circle',
        geometryFunction: 
          function(coordinates, geometry) {
            if (!geometry) {
              geometry = new ol.geom.Polygon(null);
            }

            //Calculate coordinates and set geometry

          }
   });

我实际想要实现的是用自定义SVG替换这个几何体。用户应该能够使用圆形两点交互绘制这些SVG(基本上是箭头),就像在示例中一样。

我已经将svg解析为OL-MultilineString几何体。但是,当我尝试用我的自定义MultiLineString替换Polygon时,"基本几何描边"从示例中的centerlast也会出现。这是否是预期的行为,我该如何摆脱这一额外的行?

在绘制交互期间每次重新创建几何体或使用增量并连续更改几何体是否有所不同?

star with dispensable line in yellow

要进行测试,您只需使用上述链接并将ol.geom.Polygon(null)替换为ol.geom.MultiLineString(null)

我感谢所有解决方案,包括不同的方法。

0 个答案:

没有答案