A scene layer is a type of layer that is optimized for displaying large amounts of 3D data in a scene. A scene layer can display the following data types: 3D object, building, integrated mesh, point, point cloud, or voxel layer. The scene layer complies with the Indexed 3D Scene layer (I3S) format. The I3S format is an open 3D content delivery format used to disseminate 3D GIS data to mobile, web, and desktop clients.
Visualizing your information in 3D makes it easier to intuitively understand and experience geographic information in a realistic way. Even audiences unfamiliar with GIS can understand complex and detailed data by viewing it in a 3D scene on the web. Being able to capture the three-dimensional nature of objects in the real world allows you to analyze, measure, and query information with more precision.
In the ArcGIS Maps SDK for JavaScript, scene layers have five different classes: SceneLayer, BuildingSceneLayer, PointCloudLayer, IntegratedMeshLayer, and VoxelLayer. This distinction is necessary because the different layers have different APIs. Point scene layer and 3D object scene layer both expose a feature based API with very similar functionality, which is why they share the same SceneLayer class.
In this article, we write "SceneLayer" to refer to the Point and 3D object SceneLayer API class and we write "scene layer" to refer to the platform level general concept of scene layers.
Below is a table with the corresponding classes and supported functionality in the API:
Read more about the types of scene layers at the platform level in the ArcGIS Online and ArcGIS Pro documentation.
Levels of detail for scene layersTo improve performance, scene layers are usually rendered with several levels of detail. At larger scales (close to the ground), all the geometry is loaded and displayed. To maintain good performance when zooming out, much coarser representations of the geometry with fewer vertices and smaller textures are shown. In addition, some features are also removed, a process usually referred to as feature thinning. For example, point scene layers and point cloud layers will have points removed from display at smaller scales.
3D object scene layers3D object scene layers are used for streaming and displaying a large number of 3D features like buildings and other elements of a city scene.
A 3D object scene layer can be utilized:
For a comprehensive overview of 3D object layers, see the 3D Object Layer: A Comprehensive Overview blog post. To learn more about 3D object workflows in the ArcGIS Maps SDK for JavaScript, please refer to the corresponding guide page.
PublishingPublishing steps and the access to attributes will depend on how the 3D object scene layer is used. Here is a breakdown:
SceneLayer with cached attributes onlyRenderers, visual variables, popups, labels, filters, and queries retrieve attributes either from the cache or from the associated feature layer, depending on how the layer is published. The following table summarizes this behavior.
SceneLayer with cached attributes only SceneLayer with associated feature layer Renderers / Visual variables Cached attributes are used. If the associated feature layer is editable, then attributes on the associated feature layer are used.* Otherwise, cached attributes are used. Filter Cached attributes are used. If the associated feature layer is editable, then attributes on the associated feature layer are used.* Otherwise, cached attributes are used. Labels Cached attributes are used. If the associated feature layer is editable, then attributes on the associated feature layer are used.* Otherwise, cached attributes are used. Popups Cached attributes are displayed. Attributes on the associated feature layer are displayed. Layer query Not possible. Layer query gets results from attributes on the associated feature layer. LayerView query Query gets results from cached attributes for currently loaded features. If the associated feature layer is editable, then Query gets results from attributes on the associated feature layer.* Otherwise, cached attributes are used.* If the layer is edited, the features with edited attributes are rendered with the updated attributes until the number of edited features exceeds 50,000. After that, the edited attributes are not retrieved, and the features are rendered with the cached, outdated attributes. To edit a SceneLayer in ArcGIS Maps SDK for JavaScript, the associated feature layer should have editing and change tracking enabled.
For details about each of these features, read the description of the SceneLayer class.
Tips and tricksYou can use the smartMapping summaryStatistics method on the SceneLayer. If the layer doesn't have an associated feature layer, then statistics are only displayed for the features that are loaded in the view.
For each field you can use the getFieldUsageInfo() method to find out whether popups, labels, renderers or queries using that field are supported:
Use dark colors for code blocks Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
sceneLayer.then(function () {
// get information on whether `OBJECTID` is available for query:
console.log(sceneLayer.getFieldUsageInfo("OBJECTID"));
// the result shows that layer queries are not available for this field
// this means that either the associated feature layer is not available
// or that the field can't be found in the associated feature layer
/* Object {
supportsLabelingInfo: true,
supportsLayerQuery: false,
supportsPopupTemplate: true,
supportsRenderer: true
}*/
// query layer for features
sceneLayer
.queryFeatures()
.then(function (result) {
console.log(result);
})
.catch(function (err) {
console.error(err);
});
// querying the layer will result in an error:
// message: "SceneLayer queries are not available without associated feature layer",
// name: "scenelayer:query-not-available",
});
The scene layer continues to evolve and improve performance and usability. You can take advantage of the newest updates by converting your existing SLPKs with the I3S Converter tool:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4