map.flyTo({ center: [camera.lon, camera.lat], //相机位置 zoom: camera.zoom,//目标层级 pitch: camera.pitch,//目标俯仰角 bearing: camera.bearing,//目标方位角 // speed: camera.speed,//飞行速度 duration:camera.duration*1000,//飞行总时长,单位ms essential: true,//动画 easing:(t) =>{ return t;//飞行时间进度 } }, {//eventData 自定义的事件属性 moveend: id });
mapbox地图飞行支持设置很多参数来控制飞行效果,如上图,具体可以参考mapbox官方文档,
其中easing为飞行过程的进度事件,其中 t 为时间进度,所以,这里有个小心机,如果想要监听飞行结束事件,可以在easing函数中监听 t===1 ,即飞行结束。
另:eventData为可选参数,可以自定义事件对象的属性,但是本人尝试时并未能成功获取到该属性值,暂时还没有找到原因。