在地图上一次更新Openlayers 3个标记

时间:2015-09-11 11:17:28

标签: javascript openlayers-3

我有二十个标记要在地图上更新。我添加标记并有一个名为changeMarker()的函数来更改标记位置。但是该功能运行了20次,因此UI更新了20次。我可以将所有20个标记一起更新UI一次吗?

这是我的代码:

function callChangeMarker()
{
     for(var i=0;i<20;i++)
     {
        //value of lat and long changes for all twenty markers
        changemarker(lat, long, markerColor, flag);
     }
}

function changemarker(lat, long, markerColor, flag) {

            var myFeature = vectorSource[flag].getFeatureById('greenMarkerFeature');

            myFeature.getGeometry().setCoordinates(ol.proj.transform([+long, +lat], 'EPSG:4326', 'EPSG:3857'));
}

所以基本上有20个这样的标记具有不同的纬度和经度。我想立刻更新所有内容。怎么做到这一点?

请帮助!!

1 个答案:

答案 0 :(得分:0)

您已经完成了所有20个功能修改,而无需重新渲染。

OpenLayers不会在任何数据修改方法中重新渲染。就像ol.Map#render一样,所有发生的事情都是ol3知道在下一个animationFrame中需要重新渲染。