i3s 一种开源的三维地理数据规范 简单解读 (2)

统计数据用来定义符号,这样可以避免读取所有的数据。比如,你要用唯一值进行制图,那就可以从统计信息里获取唯一值,而不是遍历一次节点的属性数据进行统计。

当然,统计数据还可以用来做空间过滤。

1.3. 坐标系和高程

i3s使用WKT来指定坐标系统。使用WKT1或者WKT2均可。

全局i3s数据仅支持WGS84坐标系和中国国家2000坐标系,注意是仅支持地理坐标系,x和y代表十进制的经度、纬度。

局部小场景支持任意坐标系统。若WKID不是4326或者4490,那就被视作局部小场景i3s数据。

1.5版本添加了对高程坐标系的支持。

=====================================================

上面是i3s的普遍定义,如果对i3s还是很模糊,请阅读下文的i3s实现——slpk文件。

2. slpk

根据第一节内容,我们得知slpk是i3s规范的一种实现。

slpk是一种压缩方法为“存储”的zip格式文件,后缀名是slpk(SceneLayer Package)。slpk内的json文件、二进制文件均使用gzip压缩。

表示纹理材质的png、jpg文件不压缩。

根据第一节的内容,可以知道i3s有五种类型的切分,普通3d模型、点云、建筑等,所以slpk也有5种,虽然都是slpk文件,但是其内部组织不尽一样。

就好像都是jpg文件,像素的颜色深度也可以不尽一样。不同i3s版本的slpk对这些类型的支持是不同的:

1.7支持3d模型、表面模型、建筑场景

1.6支持3d模型、表面模型、建筑场景、点

2.0仅支持点云

2.1. slpk的生产

slpk主要由ArcGIS Pro来制作,在工具箱搜索slpk就能找到很多打包3d图层为slpk的工具。

Bentley的ContextCapture、Skyline的PhotoMesh也支持slpk。

存储在geodatabase中的多面体三维数据可以打包为slpk,属于3d模型的slpk。

ArcGIS Pro 2.5支持直接把rvt文件拖拽到3d图层上进行显示,并且直接打包为slpk。

2.2. slpk的读取

slpk可以直接由ArcGIS Pro及上文提及的软件读取,也可以由ArcGIS Earth读取(Earth支持的i3s版本可能不太高)。

当然,slpk也可以由ArcGIS Portal代为托管存储并解包发布成场景服务,供ArcGIS jsAPI使用。

ArcGIS RuntimeSDK、CityEngine、Drone2Map for ArcGIS都支持slpk读取,CityEngine还支持生产。

2.3. slpk有什么用

slpk只有一个文件,通常我们说简单就是美,slpk单文件方便传递。

目前,slpk用于ArcGIS Portal发布场景服务是比较方便的,也可以用于runtime sdk开发的轻量软件或者ArcGIS Earth来读取查看。可惜Earth 1.9支持的i3s版本并不是很高,期待2.0。

3. slpk的文件结构

以3d模型和建筑模型的slpk为例,混杂1.6和1.7版本的来讲。

3.1. i3s 1.7版本的3d模型slpk

i3s 一种开源的三维地理数据规范 简单解读

 

 

这是一个1.7版本的3d模型类型slpk的结构,用zip打开就是四个文件夹和一个3dSceneLayer.json.gz文件,以及一个hash文件。

3dSceneLayer.json.gz描述的是整个slpk的信息

nodePages目录存放“节点页”信息,节点页用json文件来记录

nodes目录存放“节点”信息,每个节点用文件夹表示,文件夹名称即节点名

statistics目录存放的是统计数据,每个要素一个文件夹,文件夹名即要素名,文件夹下是该要素的统计数据,用json文件来记录

根目录下还可能会有metadata.json文件,如下图所示:

i3s 一种开源的三维地理数据规范 简单解读

 

 

nodes目录下有一个特殊的节点,即根节点root。1.7版本的i3s为了保证与1.6的兼容,保留了shared目录和3dNodeIndexDocument.json.gz文件(节点描述文件)。

那么,如何查询每个json描述文件的各个属性的定义呢?

官方github文档中是有的:https://github.com/Esri/i3s-spec/tree/master/docs/1.7

以slpk根目录下的3dSceneLayer.json为例,这整个json文件的定义就写在了这个文档下:https://github.com/Esri/i3s-spec/blob/master/docs/1.7/3DSceneLayer.cmn.md

i3s 一种开源的三维地理数据规范 简单解读

 

 

例如,spatialReference属性就是坐标系信息。但是如果是不太明白的属性,例如store属性:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwysxw.html