循环添加多个自定义覆盖物,点击弹出对应信息窗口
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2&ak=CB2ede775afeb6e413abd40261396a69"></script>
<title>循环添加多个自定义覆盖物,点击弹出对应信息窗口</title>
</head>
<body>
<div id="allmap" style="width: 100%;height: 600px;"></div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("allmap", { enableMapClick: false });
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
map.enableScrollWheelZoom(true);
map.setDefaultCursor("hand");
var Point=new BMap.Point(116.404, 39.915)
map.centerAndZoom(Point, 14);
let coordinate=[
[[116.38, 39.91],[116.38, 39.92],[116.40, 39.92],[116.40, 39.91]],
[[116.38, 39.92],[116.38, 39.93],[116.40, 39.93],[116.40, 39.92]],
[[116.399, 39.910],[116.405, 39.920],[116.423493, 39.907445]]
]
let text=[
{
title:"常青园三区",
shoplist1:[
{
shop:"清河五彩店",
jl:"近"
},
{
shop:"清河哈哈店",
jl:"远"
},
],
con:1000,
xdcon:20,
stl:10,
},
{
title:"常青园1区",
shoplist1:[
{
shop:"清河五彩店11",
jl:"近"
},
{
shop:"清河哈哈店22",
jl:"远"
},
],
con:1000,
xdcon:20,
stl:10,
},
{
title:"常青园4区",
shoplist1:[
{
shop:"清河五彩店444",
jl:"近"
},
{
shop:"清河哈哈店444",
jl:"远"
},
{
shop:"清河嘿嘿444",
jl:"中"
},
],
con:1000,
xdcon:20,
stl:10,
},
]
console.log(coordinate);
console.log(text);
let polygonArr=[];
for(let i=0;i<=coordinate.length-1;i++){
let markerArr=[]
for(let j=0;j<=coordinate[i].length-1;j++){
markerArr.push(new BMap.Point(coordinate[i][j][0], coordinate[i][j][1]))
}
let itempolygon= new BMap.Polygon(markerArr,{
fillOpacity:0.2,
fillColor: 'red',
strokeColor: 'black',
strokeWeight: 1,
strokeOpacity: 0.1
})
map.addOverlay(itempolygon);
polygonArr.push(itempolygon);
}
console.log(polygonArr)
for (let k = 0; k < polygonArr.length; k++) {
const overlay = polygonArr[k];
let infoWindow = new BMap.InfoWindow();
infoWindow.setWidth(240)
infoWindow.setHeight(200)
let shop_jl=''
text[k].shoplist1.map(item=>{
shop_jl+=`关联店铺:${item.shop} 距离:${item.jl}</br>`
})
let title=`<h4>${text[k].title}</h4>`
let content=`${shop_jl}
总数:${text[k].con}</br>
下单数:${text[k].xdcon}</br>
渗透率:${text[k].stl}%</br>
`
infoWindow.setTitle(title)
infoWindow.setContent(content)
overlay.addEventListener("click", e => {
var point = new BMap.Point(e.point.lng, e.point.lat);
map.openInfoWindow(infoWindow, point);
});
}
</script>```