SuperMap iClient3D for Cesium提供了飞行管理模块,用于管理场景中的飞行浏览情景。
使用Supermap iDesktop编辑每个站点(包括经纬度高程信息、相机heading pitch roll参数、站点等待时间、速度等)生成fpf文件。
var routes = new Cesium.RouteCollection();
routes.fromFile(url);
var flyManager = new Cesium.FlyManager(scene,routes);
flyManager.stopArrived.addEventListener(function(routeStop){ //to do //注:如果站点到达事件激活时做的异步处理,则应该使用routeStop.promise来处理,例如播放一段音频: audio.play(); var defer = Cesium.when.defer(); routeStop.promise = defer; audio.onended = function(){ defer.resolve(true); routeStop.promise = undefined; }; //如果是同步执行的事件,则顺序执行即可。 });
相机开始以站点中设定的参数飞行,根据fpf文件中的设定,每个站点可以有不同的速度和相机参数等,默认有两种飞行模式:定时飞行模式和定速飞行模式。 定时模式:即相机在每两个站点之间的飞行间隔时间都是相同的,默认为10秒; 定速模式:即相机在全程的飞行过程中速度始终保持一致,匀速飞行,速度由fpf文件中的设置来决定,也可以在飞行过程中实时调整。
flyManager.play();
飞行过程中可以随时暂停,然后再执行flyManager.play()即可从当前暂停的位置继续飞行。
flyManager.pause();
飞行过程中可以随时停止飞行,然后再执行flyManager.stop()即可从起始位置重新开始飞行。
flyManager.stop();
飞行效果如下图: