百度地圖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

相關文章
相關標籤/搜索