使用天地图和OpenLayers的一些笔记

使用天地图和OpenLayers的一些笔记

添加热力图

addHeatMapLayer(data) {
     this.vector = new HeatmapLayer({
       source: new VectorSource({
         features: new GeoJSON().readFeatures(data)
       }),
       blur: 5, //模糊尺寸
       radius: 5, //热点半径
     })
     this.map.addLayer(this.vector); // 将热力图添加在地图上
   },

其中data的数据格式为

let data = {};
data.type = 'FeatureCollection';
data.features = []
that.caseUrbanItems.forEach((value, index) => {
   data.features.push({
       type: 'Point',
       'coordinates': [value.coordinateX, value.coordinateY],
       count: 1
   });

添加聚合图

addCluster (data){
     const features = data;
     const source = new VectorSource({
       features: features
     })
     // Cluster聚合类
     const clusterSource = new Cluster({
       distance: 120, // 聚合点与点之间的距离
       minDistance: 15, // 聚合点与点之间的最小距离
       source: source
     })
     // 聚合图层
     this.clustersLayer = new VectorLayer({
       source: clusterSource,
       style: function (feature) {
         // 点的个数
         let size = feature.get('features').length
         if(size >= 10000){
           size = Math.round(size / 1000) + 'k'
         }else if(size >= 1000 && size <= 10000){
           size = Math.round(size / 100) / 10 + 'k'
         }
         return new Style({
           image: new Circle({ //圆形
             radius: 20, // 半径
             fill: new Fill({ // 填充
               color: 'green',
             })
           }),
           text: new Text({ // 文字样式
             font: '15px sans-serif',
             fontSize: 12,
             color: 'white',
             text: size.toString(),
             fill: new Fill({
               color: '#fff'
             })
           })
         })
       }
     })
     this.map.addLayer(this.clustersLayer)
   },

data数据格式为

  data = [value.coordinateX, value.coordinateY];
  features[index] = new Feature(new Point(data));
   })
   this.addCluster(features)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值