superMap for cesium 飞行管理

前言

之前写过一篇 vue2.6内嵌超图11i发布的场景 的文章;当初的背景是前端使用的vue2,所以使用了超图发布在npm上的vue2对应的 @supermap/vue-iclient3d-webgl,这个前端依赖是超图5年前发布的,本地搭建的超图iserver是11i的,但vue2版本依赖的@supermap/vue-iclient3d-webgl只支持到10i,所以当时魔搭了一下,先装@supermap/iclient3d-vue-for-webgl,将包内public地下的cesium文件夹拷贝到项目public下,然后uninstall,再安装@supermap/vue-iclient3d-webgl,这样就解决了vue2项目内嵌超图11i发布的场景的问题

问题

超图官网示例展示的飞行案例是基于fpf文件的,但fpf文件是基于超图的idesktop手动打点(用过),或者基于路线生成(没用过)的。

项目做出来后总不能让用户自己去idesktop上搭建场景 →打点→导出fpf文件→上传到项目→web端漫游吧?所以就有了这篇文章!

思路

既然idesktop能创建并导出fpf,我只需要记录每次点击的场景的x,y,z,方位角,倾斜角,然后创建站点,添加到RouteCollection,再通过flymanager调用就行了,也省的生成文件再加载到内存中了;于是就搜索相关的问题,在超图官网问答版块找到了一篇类似的问题,直指优快云,但示例代码需要积分下载,就PASS掉了。

解决思路

这里笼统说下,省的各位同行浪费时间

web场景中打点 →项目内置一个空的fpf文件 →将打点数据给到RouteCollection→调用flyManager.play()

详细步骤

重点:如果你参考我之前的文章引用的@supermap/vue-iclient3d-webgl,那么你需要先安装超图发布的iclient3d-webgl

npm install @supermap/iclient3d-webgl

然后从下载的包中将Cesium拷贝到你的前端项目的public下,替换到原来从@supermap/vue-iclient3d-webgl拷贝的Cesium包

原因:@supermap/vue-iclient3d-webgl是5年前发布的,依赖的cesium比较旧,导致漫游相机视角异常和飞行结束后场景假死状态

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值