openLayers3 中实现多个Overlay
此篇的目的是为了记录下用Overlay的一些操作。
其实实现多个就是创建多个div,然后给每个div绑定Overlay。
1 //页面加载完函数 --显示个关键点的
2 window.onload = function (){
3 var pointfeatures = vectorLayerPoint.getSource().getFeatures();//获取点关键点图层的所有点信息
4 //遍历每个点
5 for(var i=0;i<pointfeatures.length;i++){
6 //新增放置overly的div
7 $("#overly").after("<div id = 'overly"+i+"' class = 'overlay'>"+pointfeatures[i].get('pointtype')+"</div>");
8 //新增overly
9 var marker= new ol.Overlay({
10 //overly的位置[11,22]格式
11 position:pointfeatures[i].getGeometry().getCoordinates(),
12 //overly放置的div
13 element: document.getElementById('overly'+i)
14 });
15 //逐个把overly添加到地图上
16 map.addOverlay(marker);
17 }
18
19 }
时间久远了,以下内容转自:
https://blog.csdn.net/weixin_42256142/article/details/126249433
1.在弹出层后面加入标签并循环,生成多个id,依次添加到overLay中
$('#popupDom').after("<div id = 'overlyPath" + index + "' class='pathOvbg'><span>" + (index + 1) + '</span>' + item.duration + '</div>');
//content.innerHTML = `<p class="pathOvbg">${item.duration}</p>`;
console.log(Math.floor(item.item.length / 2));
let pathOverlay = new Overlay({
element: document.getElementById('overlyPath' + index),
autoPan: true,
position: item.item[Math.floor(item.item.length / 2) + index].tmc[2],
});
this.map.addOverlay(pathOverlay);
pathOverlay.setPositioning('bottom-left');