Skip to content

Commit 0fdc292

Browse files
ajuanrivon5607
andauthored
Add 1.9 and 2.1 spec updates (#158)
Co-authored-by: Ivonne Seler <[email protected]> Juan Ruiz <[email protected]> Tamrat Belayneh <[email protected]>
1 parent a508c53 commit 0fdc292

File tree

126 files changed

+9142
-64
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+9142
-64
lines changed

README.md

Lines changed: 78 additions & 55 deletions
Large diffs are not rendered by default.

docs/.DS_Store

6 KB
Binary file not shown.

docs/1.9/3DNodeIndexDocument.cmn.md

Lines changed: 595 additions & 0 deletions
Large diffs are not rendered by default.

docs/1.9/3DSceneLayer.cmn.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# 3DSceneLayer [Common Profiles]
2+
3+
The 3DSceneLayerInfo describes the properties of a layer in a store. The store object describes the exact physical storage of a layer and enables the client to detect when multiple layers are served from the same store. Every scene layer contains 3DSceneLayerInfo. If features based scene layers, such as 3D objects or point scene layers, may include the default symbology. This is as specified in the drawingInfo, which contains styling information for a feature layer.
4+
5+
When generating 3D Objects or Integrated Mesh scene layers, the root node never has any geometry. Any node's children represent a higher LoD quality than an ancestor node. Nodes without geometry at the top of the tree are allowable since the lowest LoD of a feature/geometry is not to shown.
6+
7+
### Related:
8+
9+
[cmn::nodePage](nodePage.cmn.md)
10+
### Properties
11+
12+
| Property | Type | Description |
13+
| --- | --- | --- |
14+
| **id** | integer | Unique numeric ID of the layer. |
15+
| href | string | The relative URL to the 3DSceneLayerResource. Only present as part of the SceneServiceInfo resource. |
16+
| **layerType** | string | The user-visible layer type<div>Possible values are:<ul><li>`3DObject`</li><li>`IntegratedMesh`</li></ul></div> |
17+
| spatialReference | [spatialReference](spatialReference.cmn.md) | The spatialReference of the layer including the vertical coordinate reference system (CRS). Well Known Text (WKT) for CRS is included to support custom CRS. |
18+
| heightModelInfo | [heightModelInfo](heightModelInfo.cmn.md) | Enables consuming clients to quickly determine whether this layer is compatible (with respect to its horizontal and vertical coordinate system) with existing content. |
19+
| **version** | string | The ID of the last update session in which any resource belonging to this layer has been updated. |
20+
| name | string | The name of this layer. |
21+
| serviceUpdateTimeStamp | [serviceUpdateTimeStamp](serviceUpdateTimeStamp.cmn.md) | The time of the last update. |
22+
| alias | string | The display alias to be used for this layer. |
23+
| description | string | Description string for this layer. |
24+
| copyrightText | string | Copyright and usage information for the data in this layer. |
25+
| **capabilities** | string[] | Capabilities supported by this layer.<div>Possible values for each array string:<ul><li>`View`: View is supported.</li><li>`Query`: Query is supported.</li><li>`Edit`: Edit is defined.</li><li>`Extract`: Extract is defined.</li></ul></div> |
26+
| ZFactor | number | ZFactor to define conversion factor for elevation unit. |
27+
| cachedDrawingInfo | [cachedDrawingInfo](cachedDrawingInfo.cmn.md) | Indicates if any styling information represented as drawingInfo is captured as part of the binary mesh representation. This helps provide optimal client-side access. Currently the color component of the drawingInfo is supported. |
28+
| drawingInfo | [drawingInfo](drawingInfo.cmn.md) | An object containing drawing information. |
29+
| elevationInfo | [elevationInfo](elevationInfo.cmn.md) | An object containing elevation drawing information. If absent, any content of the scene layer is drawn at its z coordinate. |
30+
| popupInfo | [popupInfo](popupInfo.cmn.md) | PopupInfo of the scene layer. |
31+
| disablePopup | boolean | Indicates if client application will show the popup information. Default is FALSE. |
32+
| **store** | [store](store.cmn.md) | The store object describes the exact physical storage of a layer and enables the client to detect when multiple layers are served from the same store. |
33+
| fields | [field](field.cmn.md)[] | A collection of objects that describe each attribute field regarding its field name, datatype, and a user friendly name {name,type,alias}. It includes all fields that are included as part of the scene layer as derived from a source input feature layer. |
34+
| attributeStorageInfo | [attributeStorageInfo](attributeStorageInfo.cmn.md)[] | Provides the schema and layout used for storing attribute content in binary format in I3S. |
35+
| statisticsInfo | [statisticsInfo](statisticsInfo.cmn.md)[] | Contains the statistical information for a layer. |
36+
| nodePages | [nodePageDefinition](nodePageDefinition.cmn.md) | The paged-access index description. |
37+
| materialDefinitions | [materialDefinitions](materialDefinitions.cmn.md)[] | List of materials classes used in this layer. |
38+
| textureSetDefinitions | [textureSetDefinition](textureSetDefinition.cmn.md)[] | Defines the set of textures that can be referenced by meshes. |
39+
| **geometryDefinitions** | [geometryDefinition](geometryDefinition.cmn.md)[] | Define the layouts of mesh geometry and its attributes. |
40+
| fullExtent | [fullExtent](fullExtent.cmn.md) | 3D extent. If ```layer.fullExtent.spatialReference``` is specified, it must match ```layer.spatialReference```. |
41+
42+
*Note: properties in **bold** are required*
43+

docs/1.9/3DSceneLayer.psl.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# 3DSceneLayer [Point Profile]
2+
3+
The 3DSceneLayerInfo object describes the properties of a layer in a store. Every scene layer contains 3DSceneLayerInfo. For features based scene layers, such as 3D objects or point scene layers, may include the default symbology, as specified in the drawingInfo, which contains stylization information for a feature layer.
4+
5+
### Properties
6+
7+
| Property | Type | Description |
8+
| --- | --- | --- |
9+
| **id** | integer | Unique numeric ID of the layer. |
10+
| href | string | The relative URL to the 3DSceneLayerResource. Only present as part of the SceneServiceInfo resource. |
11+
| **layerType** | string | The user-visible layer type.<div>Must be:<ul><li>`Point`</li></ul></div> |
12+
| spatialReference | [spatialReference](spatialReference.cmn.md) | The spatialReference of the layer including the vertical coordinate reference system (CRS). Well Known Text (WKT) for CRS is included to support custom CRS. |
13+
| heightModelInfo | [heightModelInfo](heightModelInfo.cmn.md) | Enables consuming clients to quickly determine whether this layer is compatible (with respect to its horizontal and vertical coordinate system) with existing content. |
14+
| **version** | string | The ID of the last update session in which any resource belonging to this layer has been updated. |
15+
| name | string | The name of this layer. |
16+
| serviceUpdateTimeStamp | [serviceUpdateTimeStamp](serviceUpdateTimeStamp.cmn.md) | The time of the last update. |
17+
| alias | string | The display alias to be used for this layer. |
18+
| description | string | Description string for this layer. |
19+
| copyrightText | string | Copyright and usage information for the data in this layer. |
20+
| **capabilities** | string[] | Capabilities supported by this layer.<div>Possible values for each array string:<ul><li>`View`: View is supported.</li><li>`Query`: Query is supported.</li><li>`Edit`: Edit is defined.</li><li>`Extract`: Extract is defined.</li></ul></div> |
21+
| ZFactor | number | ZFactor to define conversion factor for elevation unit. |
22+
| cachedDrawingInfo | [cachedDrawingInfo](cachedDrawingInfo.cmn.md) | Indicates if any styling information represented as drawingInfo is captured as part of the binary mesh representation. This helps provide optimal client-side access. Currently the color component of the drawingInfo is supported. |
23+
| drawingInfo | [drawingInfo](drawingInfo.cmn.md) | An object containing drawing information. |
24+
| elevationInfo | [elevationInfo](elevationInfo.cmn.md) | An object containing elevation drawing information. If absent, any content of the scene layer is drawn at its z coordinate. |
25+
| popupInfo | [popupInfo](popupInfo.cmn.md) | PopupInfo of the scene layer. |
26+
| disablePopup | boolean | Indicates if client application will show the popup information. Default is FALSE. |
27+
| **store** | [store](store.psl.md) | The store object describes the exact physical storage of a layer and enables the client to detect when multiple layers are served from the same store. |
28+
| fields | [field](field.cmn.md)[] | A collection of objects that describe each attribute field regarding its field name, datatype, and a user friendly name {name,type,alias}. It includes all fields that are included as part of the scene layer as derived from a source input feature layer. |
29+
| attributeStorageInfo | [attributeStorageInfo](attributeStorageInfo.cmn.md)[] | Provides the schema and layout used for storing attribute content in binary format in I3S. |
30+
| statisticsInfo | [statisticsInfo](statisticsInfo.cmn.md)[] | Contains the statistical information for a layer. |
31+
| pointNodePages | [nodePageDefinition](nodePageDefinition.cmn.md) | The paged-access index description. For legacy purposes, this property is called pointNodePages in [Point Scene Layers](3DSceneLayer.psl.md). |
32+
| **geometryDefinition** | [geometryDefinition](geometryDefinition.psl.md) | Define the layouts of point geometry and its attributes. |
33+
| fullExtent | [fullExtent](fullExtent.cmn.md) | 3D extent. If ```layer.fullExtent.spatialReference``` is specified, it must match ```layer.spatialReference```. |
34+
35+
*Note: properties in **bold** are required*
36+

docs/1.9/3Dobject_ReadMe.md

Lines changed: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
# 3D Object Scene Layer (1.9)
2+
3+
A 3D object scene layer is used to visualize 3D objects. 3D object scene layers are often created from GIS data with attributes and explicitly modeled in 3D. These attributes allow definition queries to specify symbology and other properties in lieu of setting properties for each object individually. A 3D object scene layer can efficiently create and share just a few buildings or an entire city.
4+
5+
**Examples**:<br />
6+
7+
New York LoD2 3D Buildings [SLPK](https://3dcities.maps.arcgis.com/home/item.html?id=3b3681b2476c4c31b2d187bebb0a1645).<br />
8+
New York LoD2 3D Buildings [service](https://3dcities.maps.arcgis.com/home/item.html?id=fb47ee2fe4bb496f94dfcba5584e948c).<br />
9+
10+
Montreal, Canada textured buildings [SLPK](https://3dcities.maps.arcgis.com/home/item.html?id=2152b475da9542698d4fa42bc4efaf8d).<br />
11+
Montreal, Canada textured buildings [service](https://3dcities.maps.arcgis.com/home/item.html?id=55f4164d43984e64b2cd2d36cd7cef53).<br />
12+
13+
*Realistic 3D Object Scene Layer with textures*
14+
15+
![Realistic 3D Object Scene Layer with textures](../img/LyonTextured.png)
16+
17+
*Thematic 3D Object Scene Layer without textures*
18+
19+
![Thematic 3D Object Scene Layer without textures](../img/LyonThematic.png)
20+
21+
## 3D Object Scene Layer Structure
22+
The 3D object scene layer is structured into a tree of multiple JSON files. A 3D object scene layer can be represented as a scene layer package (*.slpk) or a I3S service. A 3D object scene layer contains the following:
23+
24+
- [3DSceneLayer](3DSceneLayer.cmn.md)
25+
- [nodePage](nodePage.cmn.md)
26+
- geometryBuffer (binary)
27+
- attributesBuffer (binary)
28+
- textures (binary)
29+
- [statistics](stats.cmn.md)
30+
- [3DNodeIndexDocument](3DNodeIndexDocument.cmn.md)*
31+
- [sharedResource](sharedResource.cmn.md)*
32+
- features^
33+
34+
3D object scene layer packages contain [metadata](metadata.cmn.md) and optionally contain a [hash table](slpk_hashtable.cmn.md) for faster indexing.
35+
36+
*Example of 3DObject layer structure*
37+
38+
```
39+
.<host>/SceneServer/layers
40+
+--0 // scene layer document
41+
+-- nodePages
42+
| +-- 0
43+
| +-- (...)
44+
+-- nodes
45+
| +--0
46+
| | +-- attributes
47+
| | | +--f_2
48+
| | | +--f_4
49+
| | | +--(...)
50+
| | +-- geometries
51+
| | | +-- 0
52+
| | | +-- 1
53+
| | | +--(...)
54+
| | +-- textures
55+
| | | +-- 0
56+
| | | +-- 0_0_1
57+
| | | +--(...)
58+
| | +-- 3dNodeIndexDocument*
59+
| | +-- shared*
60+
| | +-- features^
61+
| | | +-- 0
62+
| | (...)
63+
+--statistics
64+
| +-- f_2
65+
| +-- f_4
66+
| +-- (...)
67+
```
68+
69+
_* Only required for 1.6 compatability for older clients._ <br />
70+
_^ Not used by client. Human readable version of the features._ <br />
71+
72+
73+
74+
# HTTP API Overview
75+
76+
Version 1.9 is backwards compatible with 1.6+. For older clients to be able to read 1.7+, sharedResources and the 3DNodeIndexDocument resources are included.
77+
78+
79+
The following API methods are available for 3D Object scene layer:
80+
81+
**Scene layer document**
82+
83+
<table>
84+
<tr>
85+
<td>Type</td>
86+
<td>JSON</td>
87+
</tr>
88+
<tr>
89+
<td>URL Template</td>
90+
<td>http://serviceURL/layers/{layerID}</td>
91+
</tr>
92+
<tr>
93+
<td>Example</td>
94+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0</td>
95+
</tr>
96+
<tr>
97+
<td>Description</td>
98+
<td>This is the root document for the service containing properties common to the entire layer.<br/>
99+
<code>layerID</code>: Integer. ID of the associated layer. Esri products expect this to be `0`.</td>
100+
</tr>
101+
</table>
102+
103+
[3DSceneLayer](3DSceneLayer.cmn.md)
104+
105+
**Node page** <br />
106+
107+
<table>
108+
<tr>
109+
<td>Type</td>
110+
<td>JSON</td>
111+
</tr>
112+
<tr>
113+
<td>URL Template</td>
114+
<td>http://serviceURL/layers/{layerID}/nodepages/{nodePageID}</td>
115+
</tr>
116+
<tr>
117+
<td>Example</td>
118+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodepages/8</td>
119+
</tr>
120+
<tr>
121+
<td>Description</td>
122+
<td><code>layerID</code>: Integer. ID of the associated layer. Esri products expect this to be `0`.<br/>
123+
<code>nodePageID</code>: Integer. ID of the associated node page.</td>
124+
</tr>
125+
</table>
126+
127+
[nodePage](nodePage.cmn.md)
128+
129+
**Texture**
130+
<table>
131+
<tr>
132+
<td>Type</td>
133+
<td>JPG, PNG, DDS, KTX </td>
134+
</tr>
135+
<tr>
136+
<td>URL Template</td>
137+
<td>http://serviceURL/layers/{layerID}/nodes/{nodeID}/textures/{textureID}</td>
138+
</tr>
139+
<tr>
140+
<td>Example</td>
141+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98/textures/0_0_1 </td>
142+
</tr>
143+
<tr>
144+
<td>Description</td>
145+
<td>The texture resource (image). <br/>
146+
<code>layerID</code> Integer. ID of the associated layer. Esri products expect this to be `0`. <br/>
147+
<code>nodeID</code> Integer. ID of the associated node. <br/>
148+
<code>textureID</code> String. This ID returns one of the textures available for this node. The same texture may be available in different formats.</td>
149+
</tr>
150+
</table>
151+
152+
**Geometry**
153+
<table>
154+
<tr>
155+
<td>Type</td>
156+
<td>bin, draco</td>
157+
</tr>
158+
<tr>
159+
<td>URL Template</td>
160+
<td>http://serviceURL/layers/{layerID}/nodes/{nodeID}/geometries/{geometryID}</td>
161+
</tr>
162+
<tr>
163+
<td>Example</td>
164+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98/geometries/1 </td>
165+
</tr>
166+
<tr>
167+
<td>Description</td>
168+
<td>The geometry resource (mesh information). <br/>
169+
<code>layerID</code> Integer. ID of the associated layer. Esri products expect this to be `0`. <br/>
170+
<code>nodeID</code> Integer. ID of the associated node. <br/>
171+
<code>geometryID</code> Integer. This ID returns one of the geometries available for this node. The same geometry may be available in a different format. </td>
172+
</tr>
173+
</table>
174+
175+
**Attributes**
176+
<table>
177+
<tr>
178+
<td>Type</td>
179+
<td>bin</td>
180+
</tr>
181+
<tr>
182+
<td>URL Template</td>
183+
<td>http://serviceURL/layers/{layerID}/nodes/{nodeID}/attributes/f_{attributeID}/0</td>
184+
</tr>
185+
<tr>
186+
<td>Example</td>
187+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/2/attributes/f_5/0 </td>
188+
</tr>
189+
<tr>
190+
<td>Description</td>
191+
<td>The value for a specific attribute within a node. <br/>
192+
<code>layerID</code> Integer. ID of the associated layer. Esri products expect this to be `0`. <br/>
193+
<code>nodeID</code> Integer. ID of the associated node. <br/>
194+
<code>attributeID</code> Integer. ID of the specific attribute for the layer. </td>
195+
</tr>
196+
</table>
197+
198+
**Statistics**
199+
<table>
200+
<tr>
201+
<td>Type</td>
202+
<td>JSON</td>
203+
</tr>
204+
<tr>
205+
<td>URL Template</td>
206+
<td>http://serviceURL/layers/{layerID}/statistics/f_{attributeID}/0</td>
207+
</tr>
208+
<tr>
209+
<td>Example</td>
210+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/statistics/f_5/0 </td>
211+
</tr>
212+
<tr>
213+
<td>Description</td>
214+
<td>The statistics for the entire layer for a specific attribute. <br/>
215+
<code>layerID</code> Integer. ID of the associated layer. Esri products expect this to be `0`.<br/>
216+
<code>attributeID</code> Integer. ID of the specific attribute for the layer. </td>
217+
</tr>
218+
</table>
219+
220+
[Statistics](statsInfo.cmn.md)
221+
222+
## HTTP API included for backward compatibility with 1.6
223+
224+
**Shared resources**
225+
<table>
226+
<tr>
227+
<td>Type</td>
228+
<td>JSON</td>
229+
</tr>
230+
<tr>
231+
<td>URL Template</td>
232+
<td>http://serviceURL/layers/{layerID}/nodes/{nodeID}/shared</td>
233+
</tr>
234+
<tr>
235+
<td>Example</td>
236+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98/shared </td>
237+
</tr>
238+
<tr>
239+
<td>Description</td>
240+
<td>Legacy texture and material description. **Not used in 1.7+.**. <br/>
241+
<code>layerID</code> Integer. ID of the associated layer. ArcGIS clients expect this to be `0`. <br/>
242+
<code>nodeID</code> Integer. ID of the associated node. </td>
243+
</tr>
244+
</table>
245+
246+
[Shared Resources](sharedResource.cmn.md)
247+
248+
**3D node index document**
249+
250+
<table>
251+
<tr>
252+
<td>Type</td>
253+
<td>JSON</td>
254+
</tr>
255+
<tr>
256+
<td>URL Template</td>
257+
<td>http://serviceURL/layers/{layerID}/nodes/{nodeID}</td>
258+
</tr>
259+
<tr>
260+
<td>Example</td>
261+
<td>http://my.server.com/3DObjectSceneLayer/SceneServer/layers/0/nodes/98</td>
262+
</tr>
263+
<tr>
264+
<td>Description</td>
265+
<td>Description of the node. **Not used in 1.7+.**<br/>
266+
<code>layerID</code> Integer. ID of the associated layer. Esri clients expect this to be `0`.<br/>
267+
<code>nodeID</code> Integer. ID of the associated resource.</td>
268+
</tr>
269+
</table>
270+
271+
[3DNodeIndexDocument](3DNodeIndexDocument.cmn.md)
272+

0 commit comments

Comments
 (0)