【问题标题】:Create clean vector layer without source创建没有源的干净矢量图层
【发布时间】:2015-10-30 15:14:44
【问题描述】:

在 Openlayers 3.9.0 中,我正在实现一个代码来绘制特征并获取它们的几何类型和坐标。

当您可以创建一个没有源的“干净”矢量图层时,我已经使用了 OL2,因此用户可以创建新功能,而不会看到旧的保存的功能。

在 OL3 中,我无法在没有源的情况下创建矢量图层。我没有收到任何错误,但是当我创建一品脱时,即使我设置了样式,我也没有在地图上看到它

layerVector = new ol.layer.Vector({
    style:myStyle
});

另外一个矢量图层必须有源,所以我可以这样做

var features = sourceVector.getFeatures();

并获取新创建的功能。

对于没有源或至少不加载保存的特征的干净矢量图层的任何解决方案?

谢谢

【问题讨论】:

    标签: openlayers openlayers-3


    【解决方案1】:

    只需像这样使用空源初始化矢量图层:

    layerVector = new ol.layer.Vector({
        source:new ol.source.Vector()
    });
    

    然后从任何功能中清除您的图层

    var vecSource = layerVector.getSource();
    var featsToRemove = vecSource.getFeatures();
        for (var f=0;f<featsToRemove.length;f++)
        {
        vecSource.removeFeature(featsToRemove[f]);
        }
    

    或者像@Alvin Lindstam 建议的那样更好

    var vecSource = layerVector.getSource();
    vecSource.clear() 
    

    我没有测试它,但它应该可以工作。

    【讨论】:

    • 提示:考虑使用vecSource.clear(),而不是循环遍历特征来删除它们
    猜你喜欢
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多