BMapGL实现地图轨迹运动(地图视角不变)

BMapGL实现地图轨迹

想要实现:

  1. 轨迹运动地图视角不能随之改变
  2. 有icon标识运动当前的位位置

总的说就是在BMapGl里实现BMap的轨迹运动功能

由于数据之间的经纬度之间的距离太遥远,不能使用每隔一段时间换一个point这种办法,后来仔细看了看百度地图的demo文档,路书的能实现均匀的轨迹运动,但是需求和demo还是有一点点的不同,所以做了小小的改动。
路书demo
最后实现的效果如下:
BMapGL实现地图轨迹运动(地图视角不变)_第1张图片

  • 引入路书的js
    BMapGL实现地图轨迹运动(地图视角不变)_第2张图片
  • 在地图上根据数据绘制出一条线
  • icon和轨迹
 var points = [] //里面为多个point的点var point = new BMapGL.Point(116.39,28.33)
 var polyline = new BMapGL.Polyline(points, { strokeColor: '#1a66c7ba', strokeWeight: 6, strokeOpacity: 0.2 }) //创建折线
 //添加在地图上 这里的“map”地图初始化就定义的变量
 map.addOverlay(polyline)
 引入您需要用的icon
 var icon = require('@/assets/img/carIcon.png')
 var trackExample = new BMapGLLib.LuShu(map, points, {
  // defaultContent: '起飞啦', // "信息窗口文案"
  autoView: true, // 是否开启自动视野调整,如果开启那么路书在运动过程中会根据视野自动调整
  speed: 100,
  icon: new BMapGL.Icon(icon, new BMapGL.Size(30, 30), { anchor: new BMapGL.Size(24, 24) }),
  enableRotation: true, // 是否设置marker随着道路的走向进行旋转
})

当然这里路书的事件也是一样的,直接在需要用到的地方代用就ok了

//开始
trackExample.start();
//停止
trackExample.stop();
//暂停
trackExample.pause();
//隐藏信息窗口
trackExample.hideInfoWindow();
//展示信息窗口
trackExample.showInfoWindow();     

路书的js也可以直接下载放在项目里面,需要的如下:
https://bj.bcebos.com/v1/mapopen/github/BMapGLLib/Lushu/src/Lushu.min.js

你可能感兴趣的:(百度地图,轨迹,前端)