ArcGISSceneViewController class final

A user interface control that displays three-dimensional (3D) geographic content defined by an ArcGISScene.

An ArcGISSceneViewController is a user interface that displays ArcGISScene layers and graphics in 3D. It uses a camera to control the visible area (extent) of the ArcGISScene and supports user interactions such as pan, zoom, tilt, and rotate. A scene view also provides access to the underlying layer data in a scene.

To display an ArcGISScene, add an ArcGISSceneViewController control to your app and assign the scene to it. This loads the scene and its content, such as a Surface, Basemap and collection of operational layers, and displays this content on screen.

User interactions such as pan, zoom, tilt, rotate, and identify or selection are supported in the ArcGISSceneViewController using touch, mouse, keyboard or pen/pencil. If required, you can override keys, clicks, and gestures to provide a specific user experience.

The visible area (Viewpoint) of an ArcGISSceneViewController is defined by the position and orientation of a Camera. To determine the current visible area, call GeoViewController.getCurrentViewpoint. Make sure that any user-initiated or programmatic navigation is complete before getting the current Viewpoint by calling GeoViewController.isNavigating.

You can programmatically set the visible area by specifying a viewpoint. For example, to zoom to the Viewpoint specified by a camera, pass the Camera to the ArcGISSceneViewController using one of its methods, such as ArcGISSceneViewController.setViewpointCamera. The ArcGISSceneViewController has a camera controller (ArcGISSceneViewController.cameraController) to manage the camera's movement and user interactions.

In an MVC architecture, the ArcGISSceneViewController represents the View tier. The Model tier is represented by the ArcGISScene object which can provide a collection of operational layers, a Basemap and a Surface. You can only set one ArcGISScene per ArcGISSceneViewController, but you can swap the ArcGISSceneViewController.arcGISScene with another when the application is running.

See Scene view for more information.

Inheritance

Properties

ambientLightColor Color
The color of the scene view's ambient light.
getter/setter pair
analysisOverlays List<AnalysisOverlay>
A collection of analysis overlays that render the results of 3D visual analysis on the scene view.
no setter
arcGISScene ArcGISScene?
The scene that the ArcGISSceneViewController is displaying.
getter/setter pair
atmosphereEffect AtmosphereEffect
The effect applied to the scene's atmosphere.
getter/setter pair
attributionText String
The attribution text for the data that is currently displayed in the GeoViewController.
no setterinherited
cameraController CameraController
The camera controller manages the position, orientation, and movement of the camera for an ArcGISSceneViewController.
getter/setter pair
drawStatus DrawStatus
The current drawing status of the content displayed in the GeoViewController.
no setterinherited
fieldOfView double
The horizontal field of view of the scene view in degrees.
no setter
fieldOfViewDistortionRatio double
The ratio indicates how much the vertical field of view is distorted.
no setter
graphicsOverlays List<GraphicsOverlay>
A collection of GraphicsOverlay objects used to display graphics on top of the view's content.
no setterinherited
grid Grid?
A coordinate system grid to display on top of the GeoViewController.
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
imageOverlays List<ImageOverlay>
A collection of overlays for displaying images in the view.
no setterinherited
interactionOptions InteractionOptions
Options for controlling how user interactions behave.
no setter
isAttributionTextVisible bool
True if attribution text is visible in the GeoViewController, false otherwise.
getter/setter pairinherited
isNavigating bool
True if the GeoViewController is animating a viewpoint change or a navigation gesture is in progress, otherwise false.
no setterinherited
isWrapAroundEnabled bool
True if continuous panning across the international date line is enabled in the GeoViewController, false otherwise.
no setterinherited
labeling ViewLabelProperties
The view label properties.
getter/setter pairinherited
onAttributionChanged Stream<String>
Invokes the callback when the attribution text of the GeoViewController changes.
no setterinherited
onDrawStatusChanged Stream<DrawStatus>
Invokes the callback when the draw status of the GeoViewController changes.
no setterinherited
onLayerViewStateChanged Stream<({Layer layer, LayerViewState layerViewState})>
Invokes the callback when the layer view state of any layer in the GeoViewController changes.
no setterinherited
onNavigationChanged Stream<bool>
Invokes the callback when the navigation state of the GeoViewController changes.
no setterinherited
onSpatialReferenceChanged Stream<SpatialReference?>
Invokes the callback when the spatial reference of the GeoViewController changes.
no setterinherited
onTimeExtentChanged Stream<TimeExtent?>
Invokes the callback when the time extent of the GeoViewController changes.
no setterinherited
onViewpointChanged Stream<void>
Invokes the callback when the viewpoint of the GeoViewController has changed.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectionProperties SelectionProperties
The selection properties for all graphic overlays and selectable layers within the GeoViewController.
getter/setter pairinherited
spaceEffect SpaceEffect
The visual effect of outer space in the scene view. The modes are black with stars or transparent.
getter/setter pair
spatialReference SpatialReference?
The spatial reference defines the coordinate system used by the map or scene in the GeoViewController.
no setterinherited
sunLighting LightingMode
The type of ambient sunlight and shadows in the scene view.
getter/setter pair
sunTime DateTime
The position of the sun in the scene view based on a specific date and time.
getter/setter pair
timeExtent TimeExtent?
The current TimeExtent of the GeoViewController.
getter/setter pairinherited

Methods

dispose() → void
This function cleans up properties of this controller before garbage collection happens. This function should be overriden by subclasses that have other properties that need to be cleaned up.
inherited
exportImage() Future<ArcGISImage>
Exports an image snapshot of the current GeoViewController.
inherited
getCurrentViewpoint(ViewpointType viewpointType) Viewpoint?
Retrieves the current Viewpoint of the GeoViewController.
inherited
getCurrentViewpointCamera() Camera
Retrieves the camera that displays the current viewpoint.
getLayerViewState(Layer layer) LayerViewState?
Retrieves the layer's state in the GeoViewController.
inherited
identifyGraphicsOverlay(GraphicsOverlay graphicsOverlay, {required Offset screenPoint, required double tolerance, bool returnPopupsOnly = false, int? maximumResults = 1}) Future<IdentifyGraphicsOverlayResult>
Identifies a limited number of graphics in the specified graphics overlay, at the given screen point.
inherited
identifyGraphicsOverlays({required Offset screenPoint, required double tolerance, bool returnPopupsOnly = false, int? maximumResultsPerOverlay = 1}) Future<List<IdentifyGraphicsOverlayResult>>
Identifies a limited number of graphics in all graphics overlays, at the given screen point.
inherited
identifyLayer(Layer layer, {required Offset screenPoint, required double tolerance, bool returnPopupsOnly = false, int? maximumResults = 1}) Future<IdentifyLayerResult>
Identifies a limited number of geoelements in the specified layer or sublayer, at the given screen point.
inherited
identifyLayers({required Offset screenPoint, required double tolerance, bool returnPopupsOnly = false, int? maximumResultsPerLayer = 1}) Future<List<IdentifyLayerResult>>
Identifies a limited number of geoelements at the given screen point, in each identifiable layer or sublayer in the GeoViewController's ArcGISMap or ArcGISScene.
inherited
locationToScreen({required ArcGISPoint mapPoint}) LocationToScreenResult?
Converts a location in map coordinates to a point in screen coordinates relative to the upper-left corner of the scene view.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
screenToBaseSurface({required Offset screen}) ArcGISPoint?
Converts the specified screen coordinate, relative to the upper-left corner of the scene view, to a location on the base surface in map coordinates.
screenToLocation({required Offset screen}) Future<ArcGISPoint>
Asynchronously converts a screen coordinate relative to the upper-left corner of the scene view to a location in map coordinates.
setBookmark(Bookmark bookmark) Future<bool>
Sets the Viewpoint of the GeoViewController to the Bookmark.viewpoint.
inherited
setFieldOfView({required double angle, double distortionRatio = 1.0}) → void
Sets the field of view on the scene view in degrees and determines how much the vertical field of view is distorted.
setFieldOfViewFromLensIntrinsics({required double xFocalLength, required double yFocalLength, required double xPrincipal, required double yPrincipal, required double xImageSize, required double yImageSize, required DeviceOrientation deviceOrientation}) → void
Matches the field of view of the scene view to the field of view of a camera lens using the lens characteristics.
setViewpoint(Viewpoint viewpoint) → void
Pan or zoom the GeoViewController to the specified Viewpoint location.
inherited
setViewpointAnimated(Viewpoint viewpoint, {double? duration}) Future<bool>
Pan or zoom the GeoViewController using animation to the specified Viewpoint location. Animation takes place over the specified duration.
inherited
setViewpointCamera(Camera camera) → void
Immediately changes the display to the viewpoint specified by the given camera.
setViewpointCameraAnimated({required Camera camera, double duration = 0.25}) Future<bool>
Animates the display to the viewpoint specified by the given camera using the specified duration to arrive.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited