OpenLayers-3 - source.clear()的正确用法是什么

时间:2015-10-22 07:28:37

标签: javascript openlayers-3

我有一个ol 3.10.1地图,其目标是动态地重绘图层的特征。在前往那里的路上,我使用了source.clear()函数。奇怪的是,source.clear()实际上在当前缩放级别清除了图层中的特征,但放大或缩小特征时仍然存在。我使用source.clear()函数的方法是否正确?请参阅我用于测试目的的代码段。

103, 507, 603, 514, 415, 117, 741, 895, 854

我使用setTimout()函数让这些功能在应该被清除之前显示几秒钟。

请建议。

1 个答案:

答案 0 :(得分:0)

更新http://jsfiddle.net/jonataswalker/ayewaz87/

我忘记了,对于每个分辨率,OL会一次又一次地加载您的功能。因此,如果您想一劳永逸地删除,请使用自定义加载器,请参阅小提琴。

您的源是异步加载的,因此在准备就绪时设置超时:

CITYClusterSource.once('change', function(evt){
    if (CITYClusterSource.getState() === 'ready') {
        // now the source is fully loaded
        setTimeout(function () { CITYClusterSource.clear(); }, 5000);
    }
});

请注意once方法,您可以使用on代替它。