飞行管理专题


简介

SuperMap iClient3D for WebGL提供了飞行管理模块,用于管理场景中的飞行浏览情景。

    • 描述:飞行管理模块读取由SuperMap iDesktop编辑生成的fpf文件,构建路线和站点。
    • 应用场景:飞行管理模块非常适用于三维场景的自动浏览,以及浏览到相关景点的背景介绍,视觉效果震撼,体验流畅。

使用

1、生成fpf文件。

使用Supermap iDesktop编辑每个站点(包括经纬度高程信息、相机heading pitch roll参数、站点等待时间、速度等)生成fpf文件。

2、创建一个路线集合对象

                    var routes = new SuperMap3D.RouteCollection();

3、加载fpf文件

                    routes.fromFile(url);

4、创建飞行管理对象

                    var flyManager = new SuperMap3D.FlyManager(scene,routes);

5、如果有需要,则添加相应的站点到达事件的监听

                    flyManager.stopArrived.addEventListener(function(routeStop){
                            //to do
                            //注:如果站点到达事件激活时做的异步处理,则应该使用routeStop.promise来处理,例如播放一段音频:
                            audio.play();
                            var defer = SuperMap3D.when.defer();
                            routeStop.promise = defer;
                            audio.onended = function(){
                                defer.resolve(true);
                                routeStop.promise = undefined;
                            };
                            //如果是同步执行的事件,则顺序执行即可。
                    });

6、开始飞行

相机开始以站点中设定的参数飞行,根据fpf文件中的设定,每个站点可以有不同的速度和相机参数等,默认有两种飞行模式:定时飞行模式和定速飞行模式。 定时模式:即相机在每两个站点之间的飞行间隔时间都是相同的,默认为10秒; 定速模式:即相机在全程的飞行过程中速度始终保持一致,匀速飞行,速度由fpf文件中的设置来决定,也可以在飞行过程中实时调整。

                    flyManager.play();

7、暂停

飞行过程中可以随时暂停,然后再执行flyManager.play()即可从当前暂停的位置继续飞行。

                     flyManager.pause();

8、停止

飞行过程中可以随时停止飞行,然后再执行flyManager.stop()即可从起始位置重新开始飞行。

                     flyManager.stop();

飞行效果如下图:

版权所有 © 2000-2024 北京超图软件股份有限公司 京ICP备11032883号-8 京公网安备11010502008721 甲测资字11002074