Scene QML Type

SceneView to display layers of geographic data in 3D."> Scene QML Type | ArcGISQtQml
  • Esri.ArcGISRuntime
  • Scene
  • A scene is a container for layers. You use a scene together with a SceneView to display layers of geographic data in 3D. More...

    Import Statement: import Esri.ArcGISRuntime
    Since: Esri.ArcGISRuntime 100.0
    Inherits:

    GeoModel

    Properties

    Signals

    Detailed Description

    Scene contains layers of mapping data and information such as elevation data, renderers, and labels which define the scene's capabilities. You can access Scene content directly or, more commonly, visualize the scene in a SceneView.

    In an MVC architecture, Scene represents the model and SceneView represents the 3D view. Scene specifies how the geographic data is organized, and SceneView renders the data on the screen and allows users to interact with it.

    A scene can contain a base surface, a basemap, and one or more operational layers:

    • A base surface is the default surface on which layers are draped or from which relative layers are offset. The ground height is provided by ElevationSource objects that are combined to make the Surface.
    • A basemap is a layer that helps orient the user of the scene. It is composed of a collection of base layers, such as imagery or hillshade, that are draped on the surface, and/or reference layers such as street labels that are displayed on top of operational layers. This content is relatively static.
    • An operational layer provides content that is of unique interest to the app and the task at hand, such as data about earthquakes, traffic, or weather. This content can change frequently.

    You can create a scene from an existing web scene using its URL or PortalItem. Alternatively, you can get a scene directly from a MobileScenePackage::scenes collection. Scene properties are hydrated when the scene is loaded.

    If you create a new scene, the spatial reference of the first layer you add, which is typically the first layer in the Basemap, defines the spatial reference of the entire scene. Once the scene's spatial reference is set, it cannot be changed, even by changing the basemap.

    See Scenes 3D for more information about scenes.

    In the event that any combination of item, initUrl, basemap, and GeoModel::initBasemapStyle properties are set when the scene initializes, the software chooses how to initialize the scene depending on which properties are set. The precedence order for these properties is as follows.

    The initUrl, item, and initBasemapStyle properties can only be set at scene initialization time. For example, if a scene is created using a basemap, and later the item property is set in a JavaScript function, nothing will happen because the scene was already initialized with the basemap.

    This QML type supports the following default properties. A default property may be declared inside another declared object without being assigned explicitly to a property.

    TypeDefault Property
    Basemapbasemap
    SurfacebaseSurface
    LayeroperationalLayers (appends to model)
    Bookmarkbookmarks (appends to model)
    ViewpointinitialViewpoint
    LoadSettingsloadSettings (since Esri.ArcGISRuntime 100.2)
    ArcGISItemitem (since Esri.ArcGISRuntime 100.3)
    FeatureTabletables (appends to model) since Esri.ArcGISRuntime 100.3

    If operational layers are added to an existing scene by nesting them inside the scene's declaration, then the scene's original list of operational layers is overridden to only contain the added layers. To keep the scene's original operational layers and also add new ones, wait until the scene's loadStatus property is Enums.LoadStatusLoaded before adding operational layers. You can declare new operational layers outside the scene's declaration, and use a signal handler for the loadStatusChanged signal to add the new operational layers.

    Example:

    Create a Scene with the World Imagery basemap and the World Elevation surface:

    // Create a scene view
    SceneView {
        anchors.fill: parent
    
        Component.onCompleted: {
            // Set the focus on SceneView to initially enable keyboard navigation
            forceActiveFocus();
    
            // set viewpoint to the specified camera
            setViewpointCameraAndWait(camera);
        }
    
        // create a scene...scene is a default property of sceneview
        // and thus will get added to the sceneview
        Scene {
            // add a basemap
            Basemap {
                initStyle: Enums.BasemapStyleArcGISImagery
            }
    
            // add a surface...surface is a default property of scene
            Surface {
                // add an arcgis tiled elevation source...elevation source is a default property of surface
                ArcGISTiledElevationSource {
                    url: "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"
                }
            }
        }
    }

    See also Loadable.

    Property Documentation

    autoFetchLegendInfos : bool

    Whether legend infos are automatically fetched by the scene's operational layers.

    Set to true (default is false) to have legend infos fetched automatically when the LegendInfoListModel is instantiated.


    [default] baseSurface : Surface

    The base surface of the scene.

    The base surface is the default surface on which layers are draped or from which relative layers are offset.


    [read-only] error : Error

    Returns the error object (read-only).

    See also Loadable and Error.


    [since Esri.ArcGISRuntime 100.3] json : jsobject

    JSON that can be used to instantiate the Scene.

    Warning: This method supports both read and write, but the read functionality is not supported at 100.3. A scene may be created from json, but the json property will always be empty when reading it back.

    This property was introduced in Esri.ArcGISRuntime 100.3.


    [since Esri.ArcGISRuntime 100.2] sceneViewTilingScheme : Enums.SceneViewTilingScheme

    The tiling scheme defines how tile based data is rendered.

    The tiling scheme property is used by the SceneView to determine how to render tiled data.

    This property is determined during GeoModel::load. The SpatialReference of the first tiled elevation source (ArcGISTiledElevationSource) or tiled layer in the basemap or operational layer (see ArcGISTiledLayer) determines whether the value is Enums.SceneViewTilingSchemeGeographic or Enums.SceneViewTilingSchemeWebMercator.

    If you create a new scene, you can set this value before adding the base surface, basemap or operational layers. The Enums.SceneViewTilingScheme must correspond to the SpatialReference of the layers to ensure they render correctly.

    The default value is Enums.SceneViewTilingSchemeWebMercator.

    This property was introduced in Esri.ArcGISRuntime 100.2.


    [read-only, since Esri.ArcGISRuntime 100.3] unknownJson : jsobject

    Unknown data from the source JSON (read-only).

    Unknown JSON is a jsobject of values not defined in the ArcGIS web scene specification used to create this object but found in the source JSON. If the object is written back to JSON, any unknown JSON data is not persisted.

    This property was introduced in Esri.ArcGISRuntime 100.3.

    See also Scene.


    [read-only, since Esri.ArcGISRuntime 100.3] unsupportedJson : jsobject

    Unsupported data from the source JSON (read-only).

    Unsupported JSON is a jsobject of values defined in the ArcGIS web scene specification used to create this object but not currently used in this API. If the object is written back to JSON, any unsupported JSON data is persisted.

    This property was introduced in Esri.ArcGISRuntime 100.3.

    See also Scene.


    Signal Documentation

    autoFetchLegendInfosChanged()

    Emitted when the autoFetchLegendInfos property changes.

    Note: The corresponding handler is onAutoFetchLegendInfosChanged.


    baseSurfaceChanged()

    Emitted when the baseSurface property changes.

    Note: The corresponding handler is onBaseSurfaceChanged.


    [since Esri.ArcGISRuntime 100.2] sceneViewTilingSchemeChanged()

    Emitted when the sceneViewTilingScheme property changes.

    Note: The corresponding handler is onSceneViewTilingSchemeChanged.

    This signal was introduced in Esri.ArcGISRuntime 100.2.


    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.