我有二十个标记要在地图上更新。我添加标记并有一个名为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个这样的标记具有不同的纬度和经度。我想立刻更新所有内容。怎么做到这一点?
请帮助!!
答案 0 :(得分:0)
您已经完成了所有20个功能修改,而无需重新渲染。
OpenLayers不会在任何数据修改方法中重新渲染。就像ol.Map#render
一样,所有发生的事情都是ol3知道在下一个animationFrame中需要重新渲染。