- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.control.Control
-
- com.esri.arcgisruntime.mapping.view.GeoView
-
- com.esri.arcgisruntime.mapping.view.SceneView
-
- All Implemented Interfaces:
SceneViewNavigation
,Styleable
,EventTarget
,Skinnable
public final class SceneView extends GeoView implements SceneViewNavigation
A user interface control that displays three-dimensional (3D) geographic content defined by anArcGISScene
.To display an
ArcGISScene
, add a SceneView control to your app and assign the scene to it. This loads the scene, itsSurface
,Basemap
and collection of operational layers, and displays their content on screen.User interactions such as pan, zoom, tilt, rotate, and identify or selection are supported in the SceneView 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 of the SceneView is represented by the
Viewpoint
. It is determined by aCamera
object and aCameraController
is used to enable or constrain user interaction.To zoom to a specific visible area, pass a
Viewpoint
to theGeoView.setViewpoint(Viewpoint)
method. To zoom to theViewpoint
specified by a camera, pass theCamera
tosetViewpointCamera(Camera)
.To determine the current visible area, call
GeoView.getCurrentViewpoint(Viewpoint.Type)
. Make sure that any user-initiated or programmatic navigation is complete before getting the currentViewpoint
by callingGeoView.isNavigating()
.In an MVC architecture, this class represents the View tier. The Model tier is represented by the
ArcGISScene
object which provides a collection of operational layers, aBasemap
and aSurface
. ALayer
provides a visual representation of geographic information and comes in many forms. The types of layers that are displayed in a SceneView are three-dimensional in nature; meaning they are displayed in X/Y/Z coordinate space.This class must only be created and used on the UI thread.
ArcGISScene scene = new ArcGISScene(BasemapStyle.ARCGIS_LIGHT_GRAY); SceneView sceneView = new SceneView(); sceneView.setArcGISScene(scene);
- Since:
- 100.0.0
- See Also:
ArcGISScene
-
-
Property Summary
Properties Type Property Description ObjectProperty<Color>
ambientLightColor
The color of the scene view's ambient light.ObjectProperty<ArcGISScene>
arcGISScene
The scene that theSceneView
is displaying.ObjectProperty<AtmosphereEffect>
atmosphereEffect
The effect applied to the scene's atmosphere.ReadOnlyDoubleProperty
fieldOfViewDistortionRatio
The ratio indicating how much the vertical field of view is distorted.ReadOnlyDoubleProperty
fieldOfView
The horizontal field of view of the scene view in degrees.ObjectProperty<SpaceEffect>
spaceEffect
The visual effect of outer space in the scene view.ObjectProperty<LightingMode>
sunLighting
The type of ambient sunlight and shadows in the scene view.ObjectProperty<java.util.Calendar>
sunTime
The calendar that specifies the position of the sun in the scene view.-
Properties inherited from class com.esri.arcgisruntime.mapping.view.GeoView
attributionText, attributionTextVisible, attributionTop, drawStatus, enableKeyboardNavigation, enableMousePan, enableMouseZoom, enableTouchPan, enableTouchRotate, enableTouchZoom, labeling, navigating, selectionProperties, spatialReference
-
Properties inherited from class javafx.scene.control.Control
contextMenu, skin, tooltip
-
Properties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
-
Properties inherited from class javafx.scene.Parent
needsLayout
-
Properties inherited from class javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SceneView.DefaultInteractionListener
Default listener to handle input events on the scene view.
-
Field Summary
-
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
-
Fields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
-
Constructor Summary
Constructors Constructor Description SceneView()
Creates a new scene view
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ObjectProperty<Color>
ambientLightColorProperty()
The color of the scene view's ambient light.ObjectProperty<ArcGISScene>
arcGISSceneProperty()
The scene that theSceneView
is displaying.ObjectProperty<AtmosphereEffect>
atmosphereEffectProperty()
The effect applied to the scene's atmosphere.ReadOnlyDoubleProperty
fieldOfViewDistortionRatioProperty()
The ratio indicating how much the vertical field of view is distorted.ReadOnlyDoubleProperty
fieldOfViewProperty()
The horizontal field of view of the scene view in degrees.Color
getAmbientLightColor()
Gets the value of the property ambientLightColor.ListenableList<AnalysisOverlay>
getAnalysisOverlays()
Gets a modifiable list of analysis overlays that render the results of 3D visual analysis on the scene view.ArcGISScene
getArcGISScene()
Gets theArcGISScene
displayed in this view.AtmosphereEffect
getAtmosphereEffect()
Returns the atmosphere effect on the scene view.CameraController
getCameraController()
Gets the camera controller manages the position, orientation, and movement of the camera for a SceneView.Camera
getCurrentViewpointCamera()
Retrieves the camera that displays the current viewpoint.double
getFieldOfView()
Gets the value of the property fieldOfView.double
getFieldOfViewDistortionRatio()
Gets the value of the property fieldOfViewDistortionRatio.java.util.List<ImageOverlay>
getImageOverlays()
Gets a modifiable list of overlays for displaying images in the scene view.SpaceEffect
getSpaceEffect()
Gets the space effect on the scene view.SpatialReference
getSpatialReference()
Gets the spatial reference.LightingMode
getSunLighting()
Returns the type of Sun lighting applied to the scene view.java.util.Calendar
getSunTime()
Gets the Date and Time that determine the position of the Sun in the sky.LocationToScreenResult
locationToScreen(Point location)
Converts a location in map coordinates to a point in JavaFX local coordinates relative to the upper-left corner of the scene view.Point
screenToBaseSurface(Point2D screenPoint)
Converts the specified JavaFX local coordinate, relative to the upper-left corner of the scene view, to a location on the base surface in map coordinates.ListenableFuture<Point>
screenToLocationAsync(Point2D screenPoint)
Asynchronously converts a screen coordinate relative to the upper-left corner of the scene view to a location in map coordinates.void
setAmbientLightColor(int color)
Deprecated, for removal: This API element is subject to removal in a future version.as of 200.0.0, replaced bysetAmbientLightColor(Color)
void
setAmbientLightColor(Color color)
Sets the value of the property ambientLightColor.void
setArcGISScene(ArcGISScene scene)
Sets the scene that the SceneView is displaying.void
setAtmosphereEffect(AtmosphereEffect atmosphereEffect)
Sets the effect to be applied to the scene view's atmosphere.void
setCameraController(CameraController cameraController)
Sets the camera controller manages the position, orientation, and movement of the camera for a SceneView.void
setSpaceEffect(SpaceEffect spaceEffect)
Sets the effect to be applied to the scene view's background.void
setSunLighting(LightingMode lightingMode)
Sets the type of sun lighting to be applied to the scene view.void
setSunTime(java.util.Calendar sunTime)
Sets the Date and Time that determine the position of the Sun in the sky.void
setViewpointCamera(Camera camera)
Animates the display to the viewpoint specified by the given camera.ListenableFuture<java.lang.Boolean>
setViewpointCameraAsync(Camera camera)
Animates the display to the viewpoint specified by the given camera.ListenableFuture<java.lang.Boolean>
setViewpointCameraAsync(Camera camera, float durationSeconds)
Animates the display to the viewpoint specified by the given camera using the specified duration to arrive.ObjectProperty<SpaceEffect>
spaceEffectProperty()
The visual effect of outer space in the scene view.ObjectProperty<LightingMode>
sunLightingProperty()
The type of ambient sunlight and shadows in the scene view.ObjectProperty<java.util.Calendar>
sunTimeProperty()
The calendar that specifies the position of the sun in the scene view.-
Methods inherited from class com.esri.arcgisruntime.mapping.view.GeoView
addAttributionTextChangedListener, addDrawStatusChangedListener, addLayerViewStateChangedListener, addNavigationChangedListener, addSpatialReferenceChangedListener, addTimeExtentChangedListener, addViewpointChangedListener, attributionTextProperty, attributionTextVisibleProperty, attributionTopProperty, createDefaultSkin, dispose, drawStatusProperty, enableKeyboardNavigationProperty, enableMousePanProperty, enableMouseZoomProperty, enableTouchPanProperty, enableTouchRotateProperty, enableTouchZoomProperty, exportImageAsync, getAttributionText, getAttributionTop, getCallout, getCurrentViewpoint, getDrawStatus, getGraphicsOverlays, getInteractionListener, getLabeling, getSelectionProperties, getTimeExtent, getViewStateForLayer, identifyGraphicsOverlayAsync, identifyGraphicsOverlayAsync, identifyGraphicsOverlaysAsync, identifyGraphicsOverlaysAsync, identifyLayerAsync, identifyLayerAsync, identifyLayersAsync, identifyLayersAsync, isAttributionTextVisible, isEnableKeyboardNavigation, isEnableMousePan, isEnableMouseZoom, isEnableTouchPan, isEnableTouchRotate, isEnableTouchZoom, isNavigating, isResizable, isWrapAroundEnabled, labelingProperty, navigatingProperty, removeAttributionTextChangedListener, removeDrawStatusChangedListener, removeLayerViewStateChangedListener, removeNavigationChangedListener, removeSpatialReferenceChangedListener, removeTimeExtentChangedListener, removeViewpointChangedListener, selectionPropertiesProperty, setAttributionTextVisible, setBookmarkAsync, setEnableKeyboardNavigation, setEnableMousePan, setEnableMouseZoom, setEnableTouchPan, setEnableTouchRotate, setEnableTouchZoom, setInteractionListener, setLabeling, setTimeExtent, setViewpoint, setViewpointAsync, setViewpointAsync, spatialReferenceProperty
-
Methods inherited from class javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
-
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
-
Methods inherited from class javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
-
Methods inherited from class javafx.scene.Node
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.esri.arcgisruntime.mapping.view.SceneViewNavigation
addDrawStatusChangedListener, addNavigationChangedListener, getCurrentViewpoint, removeDrawStatusChangedListener, removeNavigationChangedListener, setViewpoint, setViewpointAsync, setViewpointAsync
-
Methods inherited from interface javafx.css.Styleable
getStyleableNode
-
-
-
-
Property Detail
-
arcGISScene
public ObjectProperty<ArcGISScene> arcGISSceneProperty
The scene that theSceneView
is displaying.If you assign an
ArcGISScene
to aSceneView
, the scene, itsSurface
,Basemap
, and collection of operational layers automatically start to load. When loading completes, the layers and basemap are rendered over the Surface in the scene view.You can load an
ArcGISScene
into your app before you assign it to aSceneView
by callingGeoModel.loadAsync()
. This is useful if you want to validate the content of a scene before you display it.- Since:
- 200.0.0
- See Also:
getArcGISScene()
,setArcGISScene(ArcGISScene)
-
fieldOfView
public ReadOnlyDoubleProperty fieldOfViewProperty
The horizontal field of view of the scene view in degrees.The value of the field of view is influenced by the size and orientation of the device screen. A landscape orientation has a larger field of view value than a portrait orientation.
- Since:
- 200.0.0
- See Also:
getFieldOfView()
-
fieldOfViewDistortionRatio
public ReadOnlyDoubleProperty fieldOfViewDistortionRatioProperty
The ratio indicating how much the vertical field of view is distorted.A distortion factor less than 1.0 causes the visuals to be stretched taller in comparison to their width. A distortion factor greater than 1.0 causes the visuals to be shrunk shorter in comparison to their width.
The default value is 1.0.
- Since:
- 200.0.0
- See Also:
getFieldOfViewDistortionRatio()
-
ambientLightColor
public ObjectProperty<Color> ambientLightColorProperty
The color of the scene view's ambient light.The ambient light is visible if the
getSunLighting()
is set toLightingMode.LIGHT
orLightingMode.LIGHT_AND_SHADOWS
.Attempting to set the color to null will throw an exception.
- Since:
- 200.0.0
- See Also:
getAmbientLightColor()
,setAmbientLightColor(Color)
-
atmosphereEffect
public ObjectProperty<AtmosphereEffect> atmosphereEffectProperty
The effect applied to the scene's atmosphere.The default value is
AtmosphereEffect.HORIZON_ONLY
.This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getAtmosphereEffect()
,setAtmosphereEffect(AtmosphereEffect)
-
sunTime
public ObjectProperty<java.util.Calendar> sunTimeProperty
The calendar that specifies the position of the sun in the scene view.The position of sunset, sunrise, and the night-time area of darkness are visible in the scene view as calculated from the
sunTimeProperty()
value. These lighting effects are visible if you have set thesunTimeProperty()
modes ofLightingMode.LIGHT
andLightingMode.LIGHT_AND_SHADOWS
.The default value is Fri Sep 22 2000 12:00:00 GMT+0000.
This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getSunTime()
,setSunTime(Calendar)
-
sunLighting
public ObjectProperty<LightingMode> sunLightingProperty
The type of ambient sunlight and shadows in the scene view.LightingMode.LIGHT
andLightingMode.LIGHT_AND_SHADOWS
display ambient light according to the specifiedambientLightColorProperty()
.The default value is
LightingMode.NO_LIGHT
.This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getSunLighting()
,setSunLighting(LightingMode)
-
spaceEffect
public ObjectProperty<SpaceEffect> spaceEffectProperty
The visual effect of outer space in the scene view. The modes are black with stars or transparent.The default value is
SpaceEffect.STARS
.This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getSpaceEffect()
,setSpaceEffect(SpaceEffect)
-
-
Method Detail
-
arcGISSceneProperty
public ObjectProperty<ArcGISScene> arcGISSceneProperty()
The scene that theSceneView
is displaying.If you assign an
ArcGISScene
to aSceneView
, the scene, itsSurface
,Basemap
, and collection of operational layers automatically start to load. When loading completes, the layers and basemap are rendered over the Surface in the scene view.You can load an
ArcGISScene
into your app before you assign it to aSceneView
by callingGeoModel.loadAsync()
. This is useful if you want to validate the content of a scene before you display it.- Since:
- 200.0.0
- See Also:
getArcGISScene()
,setArcGISScene(ArcGISScene)
-
setArcGISScene
public void setArcGISScene(ArcGISScene scene)
Sets the scene that the SceneView is displaying.If you assign an
ArcGISScene
to a SceneView, the scene, itsSurface
,Basemap
, and collection of operational layers automatically start to load. When loading completes, the layers and basemap are rendered over theSurface
in the scene view.You can load an
ArcGISScene
into your app before you assign it to a SceneView by callingGeoModel.loadAsync()
. This is useful if you want to validate the content of a scene before you display it.- Parameters:
scene
- the scene that the SceneView is displaying- Since:
- 100.0.0
-
getArcGISScene
public ArcGISScene getArcGISScene()
Gets theArcGISScene
displayed in this view.- Returns:
- the ArcGISScene
- Since:
- 100.0.0
-
fieldOfViewProperty
public ReadOnlyDoubleProperty fieldOfViewProperty()
The horizontal field of view of the scene view in degrees.The value of the field of view is influenced by the size and orientation of the device screen. A landscape orientation has a larger field of view value than a portrait orientation.
- Since:
- 200.0.0
- See Also:
getFieldOfView()
-
getFieldOfView
public double getFieldOfView()
Gets the value of the property fieldOfView.- Property description:
- The horizontal field of view of the scene view in degrees.
The value of the field of view is influenced by the size and orientation of the device screen. A landscape orientation has a larger field of view value than a portrait orientation.
- Since:
- 200.0.0
-
fieldOfViewDistortionRatioProperty
public ReadOnlyDoubleProperty fieldOfViewDistortionRatioProperty()
The ratio indicating how much the vertical field of view is distorted.A distortion factor less than 1.0 causes the visuals to be stretched taller in comparison to their width. A distortion factor greater than 1.0 causes the visuals to be shrunk shorter in comparison to their width.
The default value is 1.0.
- Since:
- 200.0.0
- See Also:
getFieldOfViewDistortionRatio()
-
getFieldOfViewDistortionRatio
public double getFieldOfViewDistortionRatio()
Gets the value of the property fieldOfViewDistortionRatio.- Property description:
- The ratio indicating how much the vertical field of view is distorted.
A distortion factor less than 1.0 causes the visuals to be stretched taller in comparison to their width. A distortion factor greater than 1.0 causes the visuals to be shrunk shorter in comparison to their width.
The default value is 1.0.
- Since:
- 200.0.0
-
setViewpointCamera
public void setViewpointCamera(Camera camera)
Animates the display to the viewpoint specified by the given camera.- Specified by:
setViewpointCamera
in interfaceSceneViewNavigation
- Parameters:
camera
- the camera to set- Throws:
java.lang.IllegalArgumentException
- if camera is null- Since:
- 100.0.0
-
setViewpointCameraAsync
public ListenableFuture<java.lang.Boolean> setViewpointCameraAsync(Camera camera)
Animates the display to the viewpoint specified by the given camera.Use
setViewpointCameraAsync(Camera, float)
to set a viewpoint that animates over a specified duration.- Returns:
- a ListenableFuture. Add a listener to this to know when the viewpoint has finished animating. The result of the future indicates if the operation completed successfully or not.
- Throws:
java.lang.IllegalArgumentException
- if the camera is null- Since:
- 100.0.0
-
setViewpointCameraAsync
public ListenableFuture<java.lang.Boolean> setViewpointCameraAsync(Camera camera, float durationSeconds)
Animates the display to the viewpoint specified by the given camera using the specified duration to arrive.- Parameters:
camera
- the new camera information for the scene viewdurationSeconds
- the time for the transition animation to complete, in seconds- Returns:
- a ListenableFuture. Add a listener to this to know when the viewpoint has finished animating. The result of the future indicates if the operation completed successfully or not.
- Throws:
java.lang.IllegalArgumentException
- if the camera is null- Since:
- 100.0.0
-
getCurrentViewpointCamera
public Camera getCurrentViewpointCamera()
Retrieves the camera that displays the current viewpoint.- Specified by:
getCurrentViewpointCamera
in interfaceSceneViewNavigation
- Returns:
- the current camera
- Since:
- 100.0.0
-
getSpatialReference
public SpatialReference getSpatialReference()
Gets the spatial reference.- Specified by:
getSpatialReference
in classGeoView
- Returns:
- the spatial reference, null if the ArcGISScene is null
- Since:
- 100.0.0
-
ambientLightColorProperty
public ObjectProperty<Color> ambientLightColorProperty()
The color of the scene view's ambient light.The ambient light is visible if the
getSunLighting()
is set toLightingMode.LIGHT
orLightingMode.LIGHT_AND_SHADOWS
.Attempting to set the color to null will throw an exception.
- Since:
- 200.0.0
- See Also:
getAmbientLightColor()
,setAmbientLightColor(Color)
-
getAmbientLightColor
public Color getAmbientLightColor()
Gets the value of the property ambientLightColor.- Property description:
- The color of the scene view's ambient light.
The ambient light is visible if the
getSunLighting()
is set toLightingMode.LIGHT
orLightingMode.LIGHT_AND_SHADOWS
.Attempting to set the color to null will throw an exception.
- Since:
- 200.0.0
-
setAmbientLightColor
public void setAmbientLightColor(Color color)
Sets the value of the property ambientLightColor.- Property description:
- The color of the scene view's ambient light.
The ambient light is visible if the
getSunLighting()
is set toLightingMode.LIGHT
orLightingMode.LIGHT_AND_SHADOWS
.Attempting to set the color to null will throw an exception.
- Since:
- 200.0.0
-
setAmbientLightColor
@Deprecated(since="200.0.0", forRemoval=true) public void setAmbientLightColor(int color)
Deprecated, for removal: This API element is subject to removal in a future version.as of 200.0.0, replaced bysetAmbientLightColor(Color)
Sets the color of the ambient light.- Parameters:
color
- the color of the ambient light, in 0xAARRGGBB format- Since:
- 100.0.0
-
atmosphereEffectProperty
public ObjectProperty<AtmosphereEffect> atmosphereEffectProperty()
The effect applied to the scene's atmosphere.The default value is
AtmosphereEffect.HORIZON_ONLY
.This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getAtmosphereEffect()
,setAtmosphereEffect(AtmosphereEffect)
-
setAtmosphereEffect
public void setAtmosphereEffect(AtmosphereEffect atmosphereEffect)
Sets the effect to be applied to the scene view's atmosphere.- Parameters:
atmosphereEffect
- the atmosphere effect- Throws:
java.lang.IllegalArgumentException
- if atmosphereEffect is null- Since:
- 100.0.0
-
getAtmosphereEffect
public AtmosphereEffect getAtmosphereEffect()
Returns the atmosphere effect on the scene view.The default value is
AtmosphereEffect.HORIZON_ONLY
.- Returns:
- the atmosphere effect on the scene view
- Since:
- 100.0.0
-
sunTimeProperty
public ObjectProperty<java.util.Calendar> sunTimeProperty()
The calendar that specifies the position of the sun in the scene view.The position of sunset, sunrise, and the night-time area of darkness are visible in the scene view as calculated from the
sunTimeProperty()
value. These lighting effects are visible if you have set thesunTimeProperty()
modes ofLightingMode.LIGHT
andLightingMode.LIGHT_AND_SHADOWS
.The default value is Fri Sep 22 2000 12:00:00 GMT+0000.
This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getSunTime()
,setSunTime(Calendar)
-
setSunTime
public void setSunTime(java.util.Calendar sunTime)
Sets the Date and Time that determine the position of the Sun in the sky.- Parameters:
sunTime
- the Date and Time that determine the position of the Sun in the sky- Throws:
java.lang.IllegalArgumentException
- if sunTime is null- Since:
- 100.0.0
- See Also:
setSunLighting(com.esri.arcgisruntime.mapping.view.LightingMode)
-
getSunTime
public java.util.Calendar getSunTime()
Gets the Date and Time that determine the position of the Sun in the sky. Default is Fri Sep 22 2000 12:00:00 GMT+0000.- Returns:
- the Date and Time that determine the position of the Sun in the sky
- Since:
- 100.0.0
-
sunLightingProperty
public ObjectProperty<LightingMode> sunLightingProperty()
The type of ambient sunlight and shadows in the scene view.LightingMode.LIGHT
andLightingMode.LIGHT_AND_SHADOWS
display ambient light according to the specifiedambientLightColorProperty()
.The default value is
LightingMode.NO_LIGHT
.This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getSunLighting()
,setSunLighting(LightingMode)
-
setSunLighting
public void setSunLighting(LightingMode lightingMode)
Sets the type of sun lighting to be applied to the scene view. For example, this can be used to control whether the shadows of terrain and 3D models are cast.- Parameters:
lightingMode
- the lighting mode to be applied for this scene view- Throws:
java.lang.IllegalArgumentException
- if lightingMode is null- Since:
- 100.0.0
- See Also:
setSunTime(java.util.Calendar)
-
getSunLighting
public LightingMode getSunLighting()
Returns the type of Sun lighting applied to the scene view.Default is
LightingMode.NO_LIGHT
.- Returns:
- the type of Sun lighting
- Since:
- 100.0.0
-
locationToScreen
public LocationToScreenResult locationToScreen(Point location)
Converts a location in map coordinates to a point in JavaFX local coordinates relative to the upper-left corner of the scene view.The screen coordinates are in device-independent pixels (DIP) relative to the upper-left corner of the scene view at position 0,0. The
LocationToScreenResult
indicates whether the screen coordinates are visible in the scene view. They can be invisible if they are on the other side of the globe, not in theViewpoint
, or are blocked by the base surface or elevation layer.To call this method, assign a scene to the scene view, ensure that it is loaded and the draw status is
DrawStatus.COMPLETED
.- Specified by:
locationToScreen
in interfaceSceneViewNavigation
- Parameters:
location
- a location defined within the spatial reference of the scene view- Returns:
- the location to screen result
- Throws:
java.lang.IllegalArgumentException
- if location is null- Since:
- 100.0.0
-
screenToBaseSurface
public Point screenToBaseSurface(Point2D screenPoint)
Converts the specified JavaFX local coordinate, relative to the upper-left corner of the scene view, to a location on the base surface in map coordinates.To call this method, assign a scene to the scene view, ensure that it is loaded and the draw status is
DrawStatus.COMPLETED
.- Specified by:
screenToBaseSurface
in interfaceSceneViewNavigation
- Parameters:
screenPoint
- the JavaFX local coordinates- Returns:
- the scene location on the base surface
- Throws:
java.lang.IllegalArgumentException
- if screenPoint is null- Since:
- 100.0.0
-
screenToLocationAsync
public ListenableFuture<Point> screenToLocationAsync(Point2D screenPoint)
Asynchronously converts a screen coordinate relative to the upper-left corner of the scene view to a location in map coordinates.This is a high performance calculation executed on the GPU using a triangular mesh. Note that elevation values are approximated, and as the distance between the camera and the surface increases, the precision of the elevation value decreases.
To call this method, assign a scene to the scene view, ensure that it is loaded and the draw status is
DrawStatus.COMPLETED
.- Parameters:
screenPoint
- the JavaFX local coordinates- Returns:
- a ListenableFuture. Add a listener to this to know when the result is ready. The result of the future is the location of the screen point.
- Throws:
java.lang.IllegalArgumentException
- if screenPoint is null- Since:
- 100.0.0
-
setCameraController
public void setCameraController(CameraController cameraController)
Sets the camera controller manages the position, orientation, and movement of the camera for a SceneView.The controller handles user-interaction with the SceneView and updates the
Camera
. You can assign aCameraController
with a specific navigation mode that is free roaming, following a moving target, fixed on a stationary target, or that supports AR transformation matrices. For more information, seeCameraController
.- Parameters:
cameraController
- camera controller- Throws:
java.lang.IllegalArgumentException
- if cameraController is null- Since:
- 100.1.0
-
getCameraController
public CameraController getCameraController()
Gets the camera controller manages the position, orientation, and movement of the camera for a SceneView.The controller handles user-interaction with the SceneView and updates the
Camera
. You can assign aCameraController
with a specific navigation mode that is free roaming, following a moving target, fixed on a stationary target, or that supports AR transformation matrices. For more information, seeCameraController
.The default camera is the
GlobeCameraController
.- Returns:
- the camera controller manages the position, orientation, and movement of the camera for a SceneView
- Since:
- 100.1.0
-
getAnalysisOverlays
public ListenableList<AnalysisOverlay> getAnalysisOverlays()
Gets a modifiable list of analysis overlays that render the results of 3D visual analysis on the scene view.Dynamic 3D analyses, such as
LineOfSight
andViewshed
, generate visual results that are rendered on the scene view. To display the results, add theAnalysis
to a collection ofAnalysisOverlay.getAnalyses()
and then add theAnalysisOverlay
to the collection ofgetAnalysisOverlays()
.Note that the
SceneView.getAnalysisOverlays()
collection can be empty but is never null. It's created for a specific SceneView so you can't reuse anAnalysisOverlay
collection from another SceneView. EachAnalysisOverlay
can only exist in oneSceneView.getAnalysisOverlays()
collection.- Returns:
- a collection of analysis overlays that render the results of 3D visual analysis on the scene view
- Since:
- 100.2.0
-
spaceEffectProperty
public ObjectProperty<SpaceEffect> spaceEffectProperty()
The visual effect of outer space in the scene view. The modes are black with stars or transparent.The default value is
SpaceEffect.STARS
.This property must not be set to null.
- Since:
- 200.0.0
- See Also:
getSpaceEffect()
,setSpaceEffect(SpaceEffect)
-
setSpaceEffect
public void setSpaceEffect(SpaceEffect spaceEffect)
Sets the effect to be applied to the scene view's background.- Parameters:
spaceEffect
- the space effect- Throws:
java.lang.IllegalArgumentException
- if spaceEffect is null- Since:
- 100.6.0
-
getSpaceEffect
public SpaceEffect getSpaceEffect()
Gets the space effect on the scene view.The default value is
SpaceEffect.STARS
.- Returns:
- the space effect on the scene view
- Since:
- 100.6.0
-
getImageOverlays
public java.util.List<ImageOverlay> getImageOverlays()
Gets a modifiable list of overlays for displaying images in the scene view.An image overlay collection cannot belong to more than one SceneView. If the collection contains multiple image overlays, they display in the order in which they were added to the collection. So the first overlay in the collection (at index 0) displays at the bottom and each one that follows displays on top of the previous ones. If the SceneView also has a GraphicsOverlay, it displays on top of the ImageOverlay.
- Returns:
- the image overlays
- Since:
- 100.8.0
-
-