loca可视化map同一图层,对不同的脉冲线设置不同是style

 


 
 let pLineData = {
    type: "FeatureCollection",
    features: [
      {
        type: "Feature",
        //properties对象中的值可以单独传递到setStyle的属性中做回调函数的参数
        //意味的可以通过该对象获取每一组数单独的一些值,在  layer.setStyle设置不同的style而不是一个定值
        
        properties: { type: 1 },
        geometry: {
          type: "LineString",
          coordinates: [[116.417458, 39.934026]],
        },
      },
      // {
      //   type: "Feature",
      //   properties: { type: 2 },
      //   geometry: {
      //     type: "LineString",
      //     coordinates: [
      //       [126.128627, 41.146943],
      //       [126.12425, 41.137959],
      //       [126.113693, 41.128908],
      //     ],
      //   },
      // },
    ],
  };
  data.forEach((item) => {
    if (item.coord) {
      try {
        const coord = JSON.parse(item.coord);
        let obj = {
          type: "Feature",
          properties: { type: 2 },
          geometry: {
            type: "LineString",
            coordinates: coord,
          },
        };
        pLineData.features.push(obj);
      } catch (error) {}
    }
  });
  let geo = new Loca.GeoJSONSource({
    data: pLineData, //数据格式
  });
        // 颜色配置
        var headColors = ['#ECFFB1', '#146968', '#146968', '#146968', '#146968', '#146968', '#146968', '#146968'];
        var trailColors = [
            'rgba(255,178,6, 0.2)',
            'rgba(255,178,6, 0.2)',
            'rgba(20,105,104, 0.2)',
            'rgba(20,105,104, 0.2)',
            'rgba(20,105,104, 0.2)',
            'rgba(20,105,104, 0.2)',
            'rgba(20,105,104, 0.2)',
            'rgba(20,105,104, 0.2)',
        ];
  let layer = new Loca.PulseLineLayer({
    // loca,
    // zIndex: 100000000,
    opacity: 1,
    visible: true,
    zooms: [2, 22],
  });

  layer.setSource(geo);
  layer.setStyle({
    altitude: 0,
    //这三个参数可以通过feature获取pLineData中不同段的properties值做不同效果
    lineWidth: (_, feature) => feature.properties.lineWidthRatio * 1 + 3,
    headColor: (_, feature) => headColors[feature.properties.type],
    trailColor: (_, feature) => trailColors[feature.properties.type],
    // lineWidth: Number(10)/20,
    // // 脉冲头颜色
    // headColor: "rgb(204, 154, 155)",
    // // 脉冲尾颜色
    // trailColor: "rgba(192, 53, 50, 0.9)",
    // // 脉冲长度,0.25 表示一段脉冲占整条路的 1/4
    interval: 0.5,
    // 脉冲线的速度,几秒钟跑完整段路
    duration: 3000,
  });
  loca.add(layer);
  loca.animate.start();

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值