百度地图升级7:mapV的引用 - 曲线加流动动画

我的资源:https://download.csdn.net/download/Hei_lovely_cat/12545427 

先上效果图

1、引用

<script src="https://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> 

//见资源中此文件,如果是vue项目记得放到static中哦~

 <script src="./static/js/mapv.js"></script>  

 <script src="https://mapv.baidu.com/build/mapv.min.js"></script>

2、代码详解

  • 引用地图
    this.map = new BMap.Map("allmap", { 
            enableMapClick: false,
            // minZoom: 10,
            // maxZoom: 19
          }); //构造底图时,关闭底图可点功能
          this.map.centerAndZoom(new BMap.Point(114.646861, 38.054677), 11);
          this.map.enableScrollWheelZoom(true); // 开启缩放 
    //处理数据
          this.getMapData();

     

  • 对接口的解析
    //对数据的处理,从哪流向哪           
    let qianxiData = [] //弧线
    for (var i in this.maps) {
       var obj = {}
       obj.from = {
          lng: this.maps[i].outletLng,
          lat: this.maps[i].outletLat
          }
       obj.to = {
          lng: this.maps[i].endLng,
          lat: this.maps[i].endLat
       }
       qianxiData.push(obj)
    }
    this.mapvLine(qianxiData)

     

  •  动态曲线+流动动画,直接引用即可
    //动态河流
          mapvLine(qianxiData) {
            var showType = '迁入'; //判断条件	
            var lineData = []; //线
            var timeData = []; //动画
            var citys = {}
            for (var i = 0; i < qianxiData.length; i++) {
              var fromColumn = showType == '迁入' ? 'from' : 'to';
              var toColumn = showType == '迁入' ? 'to' : 'from';
              var fromCenter = qianxiData[i][fromColumn];
              var toCenter = qianxiData[i][toColumn];
              if (!fromCenter || !toCenter) {
                continue;
              }
              var point = citys[qianxiData[i].from] = qianxiData[i].count;
              var point = showType == '迁入' ? fromCenter : toCenter;
              var curve = mapv.utilCurve.getPoints([fromCenter, toCenter]); //弧线图层
    
              for (var j in curve) {
                timeData.push({
                  geometry: {
                    type: 'Point',
                    coordinates: curve[j]
                  },
                  count: 1,
                  time: j
                });
              }
              lineData.push({
                geometry: {
                  type: 'LineString',
                  coordinates: curve
                },
              });
            }
            var lineDataSet = new mapv.DataSet(lineData);
            var lineOptions = {
              strokeStyle: 'rgba(64,158,255, 1)',
              shadowColor: 'rgba(255, 250, 50, 1)',
              shadowBlur: 20,
              lineWidth: 4,
              zIndex: 100,
              draw: 'simple'
            }
            var lineLayer = new mapv.baiduMapLayer(this.map, lineDataSet, lineOptions);
            var pointOptions = {
              fillStyle: 'rgba(255, 250, 250, 0.5)',
              strokeStyle: 'rgba(255, 250, 250, 1)',
              lineWidth: 4,
              size: 10,
              zIndex: 300,
              draw: 'simple'
            }
            var timeDataSet = new mapv.DataSet(timeData);
            var timeOptions = {
              fillStyle: 'rgba(255, 250, 250, 0.5)',
              zIndex: 150,
              size: 2.5,
              animation: {
                type: 'time',
                stepsRange: {
                  start: 0,
                  end: 50
                },
                trails: 10,
                duration: 2,
              },
              draw: 'simple'
            }
            var timeMapvLayer = new mapv.baiduMapLayer(this.map, timeDataSet, timeOptions);
          },

    注意:处理的数据格式要按上方格式来~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BMG-Princess

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值