基于Quick_SLPK_Server的NodeJs版I3S服务发布

时间:2021-7-3 作者:qvyue

i3s是什么?

i3s标准是一种用树结构来组织大体积量三维数据的数据格式标准,比如在位图界的jpg格式一样,只不过i3s是“标准”,目前由slpk格式的文件实现,内部采用json文件来描述数据,使用二进制文件(格式为.bin)来存储三维地理数据。

    i3s标准将三维地理数据切分,用“节点”的概念组织起来,然后这些节点被有序地写在“节点页”中。将三维地理数据组织起来后,可以放在服务器上通过REST接口访问。

Node_SLPK_Server介绍

i3s服务目前一般是由Portal for ArcGIS 和 ArcGIS Serve生成发布的,Node_SLPK_Server则是使用开源的方式来发布i3s,使得我们可以方便快捷的访问三维服务。但是项目有一些问题,目前ArcGIS API for JavaScript 4.19并不支持。

Node_SLPK_Server改造

首先要知道项目里是什么内容,看过源码可以发现,其实项目主要就是通过发布rest读取slpk内部文件。使用nodejs重写原来的python代码

看看建筑物类型的slpk文件结构

基于Quick_SLPK_Server的NodeJs版I3S服务发布
image

场景类型slpk文件结构

基于Quick_SLPK_Server的NodeJs版I3S服务发布
image

ArcGIS API for JavaScript三维服务加载研究

三维服务加载步骤是先请求slpk的描述文件3dSceneLayer.json.gz,这样子就可以获得一些模型类型范围之类的描述信息。得到描述信息以后就是请求slpk文件数据了,只要根据请求的路径找到slpk中对应路径的文件

遇到的问题

场景图层中有要素图层数据请求还不知道写入什么数据,并发问题目前还有待解决

slpk展示

基于Quick_SLPK_Server的NodeJs版I3S服务发布
image.png

基于Quick_SLPK_Server的NodeJs版I3S服务发布
image.png

基于Quick_SLPK_Server的NodeJs版I3S服务发布
image.png

基于Quick_SLPK_Server的NodeJs版I3S服务发布
image.png
基于Quick_SLPK_Server的NodeJs版I3S服务发布
image.png

结论

还有一些不尽人意,不过已经能实现Buildingscenelayer,3DObjectscenelayer,Integratedmeshscenelayer Pointscenelayer四种三维图层,总体每个文件加载时间在两百毫秒内

参考资料:

https://www.cnblogs.com/onsummer/p/12082584.html

https://github.com/Esri/i3s-spec

https://github.com/CrashedBboy/Quick_SLPK_Server

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。