百度地图API循环建立标注给每一个标注添加点击事件

这个东西其实很简单,解决思路就是建立一个外部函数,将要使用的参数传递过去,这样全部的点击事件就都能持久存在。html

var data_info =new Array();
      var optss = new Array();
      var markers = new Array();
      var contents = new Array();
      var points = new Array();
      for(var i=0;response.data.length>i;i++){
        var data_tow=[]; 
        data_tow.push(response.data[i].latitude,response.data[i].longitude,"时间:"+response.data[i].creationTime);
        data_info.push(data_tow);
        optss.push({
          width : 25,     // 信息窗口宽度
          height: 30,     // 信息窗口高度
          title : "设备编号:"+response.data[i].facilityId , // 信息窗口标题
          });
        contents.push(data_info[i][2]);
        points.push(new BMap.Point(data_info[i][0],data_info[i][1]));
        markers.push(new BMap.Marker(points[i])); 
        map.addOverlay(markers[i]);
        var infoWindow = new BMap.InfoWindow(contents[i],optss[i]);  // 建立信息窗口对象
        biaozhu(infoWindow,points[i]);
                
    }
      function biaozhu(infoWindow,point){
        markers[i].addEventListener('click', function(){
        this.openInfoWindow(infoWindow,point);
        });
      }
      console.log(response);
    })
    .catch(error => {
      console.log(error);
    })

个人思路是将各类我须要用到的数据(marker,point等等须要使用多个的数据)都用一个数组保存起来方便使用git

相关文章
相关标签/搜索