天地图 地图 海量点 单图层下 多种颜色 多种样式 设置

2021-09-01
天地图 地图 海量点 单图层下 多种颜色 多种样式 设置
之前是多个图层的所以 用了图层容器,后来需要每一层都加点击事件,图层太多就只能点到最上边图层
所以辗转 找到一个图层设置多种颜色和形状的 方法

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);
      }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容