Point cloud scene layers quickly display large volumes of symbolized and filtered point cloud data. They are optimized for the displaying and sharing a variety of sensor data, including LiDAR.
Point cloud scene layers are scalable, which allows for efficiency when working with large datasets. While rendering very large point cloud datasets can be slow and limited by hardware, point cloud scene layers are efficient because they are rendered at an optimized point resolution for the specified area.
Point cloud scene layers also support storing attributes like RGB, Intensity, Flags, Class Code, Returns, User Data, Point Source ID, GPS Time, Scan Angle and Near Infrared. This allows client applications to update the symbology as well as query point information.
Examples:
Morro Bay LiDAR data sample SLPK.
Morro Bay LiDAR data sample service.
Example of point cloud rendering
The point cloud scene layer is structured into a tree of multiple JSON files. Point cloud scene layers can be represented as a scene layer package (*.slpk) or an I3S service. Since an *.slpk file can contain millions of documents, an SLPK hash table improves performance when scanning the slpk. A point cloud scene layer contains the following:
- Layer description
- Nodes containing Geometry and Attributes
- Node pages
- Statistics
Point Cloud scene layer packages contain metadata and optionally contain a hash table for faster indexing.
Example of point cloud layer structure
.<host>/SceneServer/layers
+--0 // scene layer document
+-- nodepages
| +-- 0
| +-- 1
| +-- 2
| +-- (...)
+-- nodes
| +--0
| | +-- attributes
| | | +--2
| | | +--4
| | | +--(...)
| | +-- geometries
| | | +-- 0
+-- (...)
+--statistics
| +-- 2
| +-- 4
| +-- (...)
The following API methods are available for point cloud scene layer:
Scene Layer Document
Type | JSON |
URL Templace | http://serviceURL/layers/{layerID} |
Example | http://my.server.com/PointCloudSceneLayer/SceneServer/layers/0 |
Description | This is the root document for the service that will contain properties common to the entire layer. layerID: Integer. ID of the associated layer. Esri products expect this to be `0` |
Node Page
Type | JSON |
URL Templace | http://serviceURL/layers/{layerID}/nodepages/{nodePageID} |
Example | http://my.server.com/PointCloudSceneLayer/SceneServer/layers/0/nodepages/8 |
Description | A page of nodes. layerID: Integer. ID of the associated layer. Esri products expect this to be `0`. nodePageID: Integer. ID of the associated node page. |
Geometries
Type | lepcc |
URL Templace | http://serviceURL/layers/{layerID}/nodes/{nodeID}/geometries/0 |
Example | http://my.server.com/PointCloudSceneLayer/SceneServer/layers/0/nodes/98/geometries/0 |
Description | The point coordinate values within the node.layerID : Integer. ID of the associated layer. Esri products expect this to be `0`.nodeID : Integer. ID of the associated node. |
Attributes
Type | bin |
URL Templace | http://serviceURL/layers/{layerID}/nodes/{nodeID}/attributes/{attributeID} |
Example | http://my.server.com/PointCloudSceneLayer/SceneServer/layers/0/nodes/20/attributes/64 |
Description | The value for a specific attribute within a node.layerID : Integer. ID of the associated layer. Esri products expect this to be `0`.nodeID : Integer. ID of the associated node.attributeID : Integer. ID of the specific attribute for the layer. |
Statistics
Type | JSON |
URL Templace | http://serviceURL/layers/{layerID}/statistics/{attributeID} |
Example | http://my.server.com/PointCloudSceneLayer/SceneServer/layers/0/statistics/64 |
Description | The statistics for the entire layer for a specific attribute.layerID : Integer. ID of the associated layer. Esri products expect this to be `0`.attributeID : Integer. ID of the specific attribute for the layer. |