天地圖 地圖 海量點 單圖層下 多種顏色 多種樣式 設置

天地圖 地圖 海量點 單圖層下 多種顏色 多種樣式 設置
之前是多個圖層的所以 用了圖層容器,後來需要每一層都加點擊事件,圖層太多就只能點到最上邊圖層
所以輾轉 找到一個圖層設置多種顏色和形狀的 方法

var cloudCollectionList = []
 function createCloudMarkerCollection() {
        let lnglats = [];
        for (var i = 0; i < data_info.length; i++) {

          let data = data_info[i]
          let dataList = data_info[i].list

          for (let dataItem of dataList) {
            let dataItemList = dataItem[0]
            dataItemList = dataItemList.split(',')
            let ll = new T.LngLat(dataItemList[0], dataItemList[1])
            ll.content = data
            ll.id = dataItemList[2]
            lnglats.push(ll)
          }

        }
         if (document.createElement('canvas').getContext) {  // 判斷當前瀏覽器是否支持繪製海量點
          let _CloudCollection = new T.CloudMarkerCollection(lnglats, {
            color: 'red',
            SizeType: TDT_POINT_SIZE_BIG,
          });

          let oldOnAdd = _CloudCollection.addLayer;// 取出圖層的addLayer方法
         //重置添加每個點的 方法
          _CloudCollection.addLayer = function (t) {
           // 修改顏色
            t.options.color = t.or.content.color
            
            if (t.or.content.name == '已確認') {
              //修改圖標形狀,具體形狀值可以自己嘗試打印一下t,在設置圖層時設置想要的形狀,看下形狀對應的shape 值
              t.options.shape = 3
            }
            oldOnAdd.call(this, t);
          }
          //圖層 點綁定點擊方法
          _CloudCollection.addEventListener("click", function (e) {
            addClickHandler(e)
          });
         
          cloudCollectionList.push(_CloudCollection)

        } else {
          alert('此示例目前只有在IE9及以上瀏覽器打開');
        }
        //之前是多個圖層的所以 用了圖層容器,後來需要每一層都加點擊事件,圖層太多就只能點上邊的
        let LayerGroup = new T.LayerGroup(cloudCollectionList)
        map.addOverLay(LayerGroup);
      }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章