创建没有源的干净矢量图层

时间:2015-10-30 15:14:45

标签: openlayers openlayers-3

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

当你可以在没有源的情况下创建一个“干净”的矢量图层时,我已经习惯了OL2,因此用户可以创建新的功能,而无需查看旧的,保存的功能。

在OL3中,我无法创建没有源的矢量图层。我没有得到任何错误,但是当我创建一个品脱时,我不会在地图上得到它,即使我设置了一种风格

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

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

var features = sourceVector.getFeatures();

并获取新创建的功能。

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

由于

1 个答案:

答案 0 :(得分:2)

使用如下所示的空源初始化矢量图层:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="text" value="100" name="setgroup50" />
<input type="submit" value="Set all" />
<input type="text" value="10" name="group50" />
<input type="text" value="10" name="group50" />
<input type="text" value="10" name="group50" />

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

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

或更好的@Alvin Lindstam建议

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

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