三维轨迹动画功能适用于展示交通工具、物流运输、旅行路线等具有空间移动属性的数据,通过三维动画的形式直观地呈现运动轨迹,增强用户体验。
该代码实现的三维轨迹动画功能包括:
async mounted() {
await Promise.all([
this.loadScripts([
'https://api.map.baidu.com/api?type=subway&v=1.0&ak=cxtWZ9zGiLlLdQwBSuGGwpanwqfaLvEc&services=&t=20240319170303',
'http://api.map.baidu.com/getscript?type=webgl&v=1.0&ak=cxtWZ9zGiLlLdQwBSuGGwpanwqfaLvEc&services=&t=20240319170303',
'https://mapopen.bj.bcebos.com/github/BMapGLLib/InfoBox/src/InfoBox.js',
'https://mapopen.bj.bcebos.com/github/BMapGLLib/RichMarker/src/RichMarker.min.js',
'https://mapopen.bj.bcebos.com/github/BMapGLLib/DrawingManager/src/DrawingManager.min.js',
'https://mapopen.cdn.bcebos.com/github/BMapGLLib/DistanceTool/src/DistanceTool.min.js',
]),
this.loadStyles([
'http://api.map.baidu.com/res/webgl/10/bmap.css',
'http://mapopen.cdn.bcebos.com/github/BMapGLLib/DrawingManager/src/DrawingManager.min.css',
]),
])
}
首先,加载百度地图GL版必备脚本和样式,包括地图API、WebGL支持、第三方插件等。
var bmap = new BMapGL.Map('allmap') // 创建Map实例
bmap.centerAndZoom(new BMapGL.Point(116.297611, 40.047363), 17) // 初始化地图,设置中心点坐标和地图级别
bmap.enableScrollWheelZoom(true) // 开启鼠标滚轮缩放
创建地图实例并进行初始化,设置中心点坐标和地图缩放级别,开启鼠标滚轮缩放功能。
var path = [
{
lng: 116.297611,
lat: 40.047363,
},
{
lng: 116.302839,
lat: 40.048219,
},
// ...
]
定义轨迹路径,包含一系列经纬度坐标点。
trackAni = new BMapGLLib.TrackAnimation(bmap, pl, {
overallView: true,
tilt: 30,
duration: 20000,
delay: 300,
})
创建轨迹动画实例,指定地图实例、轨迹路径、以及动画效果参数,包括是否显示整体概览、视角倾斜度、动画持续时间、延迟时间等。
trackAni.start()
调用轨迹动画实例的start()方法,启动动画。
开发经验与收获
未来展望