前言
之前写过一篇 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比较旧,导致漫游相机视角异常和飞行结束后场景假死状态
Web端嵌入超图飞行路线创建功能


最低0.47元/天 解锁文章
946

被折叠的 条评论
为什么被折叠?



