ArcGIS Runtime SDK for iOS
100.15
|
A scene containing 3D geographic content.
Instance of this class represent a scene. It can be displayed on the screen by AGSSceneView
. Thus, a scene represents the Model in an MVC architecture, and an AGSSceneView
object represents the View. A scene specifies how the geographic data is organized, and a sceneview renders the data and allows users to interact with it.
Conceptually, a scene's geographic content is derived from its basemap
and operationalLayers
, which may be draped over a baseSurface
to account for elevation.
A basemap helps orient the user and provides a geographical context for the content you want to display in the scene. It is used for locational reference and provides a framework on which you can overlay operational layers. Thus, the basemap serves as a foundation and provides a framework for working with information geographically. It's content is typically static and does not change frequently. For eg, streets, parcel boundaries, or geographic features such as rivers. Some basemaps also contain reference layers, such as labels, which are drawn on top of operational layers.
Operational layers provide content that is of unique interest to the application and the task at hand. Their content might change frequently. For example, earthquakes, traffic, or the weather.
The scene has a spatialReference
which specifies how the geographic content from its basemap and operational layers is aligned when combined together.
AGSMap
for 2D geographic content. Instance Methods | |
(void) | - cancelLoad |
(void) | - doCancelLoading |
(void) | - doStartLoading: |
(instancetype) | - init |
(instancetype) | - initWithBasemap: |
(instancetype) | - initWithBasemapStyle: |
(instancetype) | - initWithBasemapType: |
(instancetype) | - initWithItem: |
(instancetype) | - initWithTilingScheme: |
(nullable instancetype) | - initWithURL: |
(void) | - loadDidFinishWithError: |
(void) | - loadWithCompletion: |
(void) | - onLoadStatusChanged |
(void) | - retryLoadWithCompletion: |
Class Methods | |
(__nullable id< AGSJSONSerializable >) | + fromJSON:error: |
(instancetype) | + scene |
(instancetype) | + sceneWithBasemap: |
(instancetype) | + sceneWithBasemapStyle: |
(instancetype) | + sceneWithBasemapType: |
(instancetype) | + sceneWithItem: |
(instancetype) | + sceneWithTilingScheme: |
(nullable instancetype) | + sceneWithURL: |
Properties | |
AGSBasemap * | basemap |
AGSSurface * | baseSurface |
NSMutableArray< AGSBookmark * > * | bookmarks |
AGSGeoModelFloorDefinition * | floorDefinition |
AGSFloorManager * | floorManager |
AGSGeotriggersInfo * | geotriggersInfo |
AGSViewpoint * | initialViewpoint |
AGSItem * | item |
NSError * | loadError |
AGSLoadSettings * | loadSettings |
AGSLoadStatus | loadStatus |
NSMutableArray< AGSLayer * > * | operationalLayers |
AGSSceneViewTilingScheme | sceneViewTilingScheme |
AGSSpatialReference * | spatialReference |
NSMutableArray< AGSFeatureTable * > * | tables |
NSArray< AGSTransportationNetworkDataset * > * | transportationNetworks |
NSDictionary< NSString *, id > * | unknownJSON |
NSDictionary< NSString *, id > * | unsupportedJSON |
NSString * | version |
|
requiredinherited |
Cancels loading if it is in progress, otherwise it does nothing. This should be called carefully because other objects could be waiting for loadWithCompletion:
or retryLoadWithCompletion:
to complete and this will call them all back with the error of NSUserCancelledError
- (void) doCancelLoading |
Never call this method directly. The framework calls this method on a background thread when cancelLoad (AGSLoadable-p)
is called. It is meant to be overriden by subclasses. Subclasses should override this method to cancel loading their data and call loadDidFinishWithError: (AGSLoadableBase(ForSubclassEyesOnly))
at the end passing in an error representing NSUserCancelledError
.
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
- (void) doStartLoading: | (BOOL) | retrying |
Never call this method directly. The framework calls this method on a background thread when loadWithCompletion: (AGSLoadable-p)
or retryLoadWithCompletion: (AGSLoadable-p)
is called. It is meant to be overriden by subclasses. Subclasses should override this method to load their data and call loadDidFinishWithError: (AGSLoadableBase(ForSubclassEyesOnly))
upon completion, passing in the error if any.
retrying | flag that is true if this method was called from retryLoadWithCompletion: (AGSLoadable-p) . |
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
+ (__nullable id<AGSJSONSerializable>) fromJSON: | (id) | JSONObject | |
error: | (NSError **) | error | |
Initializes and returns an object from its JSON representation.
JSONObject | NSDictionary or NSArray containing the JSON. |
error | encountered during the operation, if any. |
- (instancetype) init |
Creates an empty scene.
- (instancetype) initWithBasemap: | (AGSBasemap *) | basemap |
Creates a scene with the given basemap.
basemap | to use with the scene. |
- (instancetype) initWithBasemapStyle: | (AGSBasemapStyle) | basemapStyle |
Creates a scene with a basemap.
basemapStyle | The basemap style. |
AGSBasemapStyle
- (instancetype) initWithBasemapType: | (AGSBasemapType) | basemapType |
Creates a scene with a basemap. In order to take advantage of geographically load balanced services and monitor usage with API keys or named users, use initWithBasemapStyle:
.
basemapType | The basemap. |
initWithBasemapStyle:
. Provided by category AGSScene(AGSDeprecated).
- (instancetype) initWithItem: | (AGSItem *) | item |
Creates a scene based on the given web scene item.
item | that represents a web scene on ArcGIS Online or an on-premises portal. Item's type must be AGSPortalItemTypeWebScene . |
- (instancetype) initWithTilingScheme: | (AGSSceneViewTilingScheme) | tilingScheme |
Creates a scene with the given tiling scheme.
tilingScheme | to use with the scene. |
- (nullable instancetype) initWithURL: | (NSURL *) | URL |
Creates a scene based on the given web scene URL. The URL you pass can be one of three basic types. Examples of these types are:
URL | of the web scene on ArcGIS Online or an on-premises portal. |
- (void) loadDidFinishWithError: | (nullable NSError *) | error |
Only subclasses should call this method in doStartLoading: (AGSLoadableBase(ForSubclassEyesOnly))
and doCancelLoading (AGSLoadableBase(ForSubclassEyesOnly))
when done loading or failed to load.
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
|
requiredinherited |
Loads data for the object asynchronously. The completion block is invoked upon completion.
You can call this method any number of times, however only one attempt is made to load the data. If it is already loading, it will just continue to load (i.e. not force a reload). If it has already loaded successfully, the completion block will be invoked right away. If it has already failed to load, the completion block will be invoked right away with error previously encountered. This method supports multiple callers and will call them all back on completion. However, each caller's completion block will be invoked once and only once.
completion | block that is invoked when object loads successfully or fails to load. An error is passed to the block if the object fails to load. |
- cancelLoad
to cancel loading - retryLoadWithCompletion:
to force reload - (void) onLoadStatusChanged |
Never call this method directly. The framework calls this method on a background thread when AGSLoadable::loadStatus
changes is called. Subclasses can optionally implement this to know when their loading status has changed.
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
|
requiredinherited |
Tries to reload when an object has failed to load. This method should be called judiciously. It should be called when:
cancelLoad
and then this methodIf the data hasn't started loading, it will start loading. If it is already loading, it will just continue to load. If it has already loaded successfully, calls back right away. If it has already failed to load, tries again. This method supports multiple callers and will call them all back on completion. However, each caller's completion block will be invoked once and only once.
completion | block that is invoked when object loads successfully or fails to load. An error is passed to the block if the object fails to load. |
+ (instancetype) scene |
Creates a scene.
AGSScene::load
, AGSScene::requestRequired
+ (instancetype) sceneWithBasemap: | (AGSBasemap *) | basemap |
Creates a scene with the given basemap.
basemap | to use with the scene. |
basemap
. + (instancetype) sceneWithBasemapStyle: | (AGSBasemapStyle) | basemapStyle |
Creates a scene with a basemap.
basemapStyle | The basemap style. |
basemapStyle
. AGSBasemapStyle
+ (instancetype) sceneWithBasemapType: | (AGSBasemapType) | basemapType |
Creates a scene with a basemap. In order to take advantage of geographically load balanced services and monitor usage with API keys or named users, use sceneWithBasemapStyle:
.
basemapType | The basemap. |
basemapType
. sceneWithBasemapStyle:
. Provided by category AGSScene(AGSDeprecated).
+ (instancetype) sceneWithItem: | (AGSItem *) | item |
Creates a scene based on the given web scene item.
item | that represents a web scene on ArcGIS Online or an on-premises portal. Item's type must be AGSPortalItemTypeWebScene . |
item
. + (instancetype) sceneWithTilingScheme: | (AGSSceneViewTilingScheme) | tilingScheme |
Creates a scene with the given tiling scheme.
tilingScheme | to use with the scene. |
tilingScheme
. + (nullable instancetype) sceneWithURL: | (NSURL *) | URL |
Creates a scene based on the given web scene URL. The URL you pass can be one of three basic types. Examples of these types are:
URL | of the web scene on ArcGIS Online or an on-premises portal |
|
readwritenonatomicstrong |
The scene's basemap.
|
readwritenonatomicstrong |
The base surface of this scene which provides an elevation context for the basemap and operational layers. The layers may be draped on or offset from this surface.
|
readnonatomicstronginherited |
|
readwritenonatomicstronginherited |
Defines the properties that allow a map or a scene to be floor-aware.
Floor-aware maps and scenes contain data representing floor plan and indoor features. The data displayed by floor-aware maps and scenes can be filtered based on floor levels using the AGSFloorManager
. This property is nil
for maps or scenes that are not floor-aware. When this property is set, a new unloaded AGSGeoModel::floorManager
is instantiated.
AGSGeoModel::floorManager
|
readnonatomicstronginherited |
Manages the data displayed for a floor-aware map or scene, allowing the data to be filtered based on floor levels.
This property is created using the floor-aware metadata defined by AGSGeoModel::floorDefinition
, if not nil
. This property is nil
if the map/scene is not loaded or if the map/scene is not floor-aware. An AGSFloorManager
must be loaded before you can access its properties and perform floor filtering.
AGSFloorManager
|
readnonatomicstronginherited |
An object that presents information on the set of AGSGeotrigger
objects defined for the map or scene.
You must load the AGSGeotriggersInfo
to populate the AGSGeotriggersInfo::geotriggers
defined by the author of the map or scene. If no geotriggers were defined, the the collection will be empty.
Use an AGSGeotriggerMonitor
to check each of the conditions defined in AGSGeotriggersInfo::geotriggers
.
When you save the map, any AGSGeotrigger
objects that reference local data (for example an AGSGraphicsOverlayFenceParameters
) will be omitted.
|
readwritenonatomicstrong |
The scene's initial viewpoint. This is the area initially displayed by an AGSSceneView
object when the scene is used.
|
readnonatomicstronginherited |
The item for the map or scene.
An ID for a resource, such as an AGSPortalItem
(for maps created from a portal) or an AGSLocalItem
(for maps and scenes in a map or scene package). Note that a map or scene cannot be instantiated from an AGSLocalItem
.
|
readnonatomicstronginherited |
The error that was encountered during the most recent load operation. Will be nil if the operation succeeded.
|
readwritenonatomicstronginherited |
Set default behaviors (preferences) and control the rendering behaviors for maps and scenes as they load.
Set preferences and control rendering behaviors when maps and scenes load. For example, you can specify which tiling mode should be used when feature layers are added or specify whether feature tables should use advanced symbology.
|
readrequirednonatomicassigninherited |
Status of the load operation.
|
readnonatomicstronginherited |
Layers that reference data from a file or a service and are typically used to visualize the data in a map or scene. For example, a fleet of vehicles being tracked on a map.
Operational layers, which display on top of the AGSBasemap::baseLayers
property, are hosted and managed on the ArcGIS Platform as feature layers, KML layers, WFS layers, tile layers, and more. Several layer types can also be used by your ArcGIS Runtime app as local layers, such as feature layers and tiled layers. You cannot reuse a layer array coming from a different map or scene. Instead, you must create a new array of AGSLayer
objects.
AGSLayer
, AGSBasemap::baseLayers
|
readnonatomicassign |
The AGSSceneViewTilingScheme
as used to render tile based data. The default value is AGSSceneViewTilingSchemeWebMercator
. The tiling scheme property is used by the AGSSceneView
object to determine how to render tiled data. If this property was not set in advance of loading the scene it will be determined during the AGSScene::load
. This will examine the AGSSpatialReference
of the first tiled elevation source (see AGSArcGISTiledElevationSource
) or tiled layer in the basemap or operational layers (see AGSArcGISTiledLayer
) to choose either AGSSceneViewTilingSchemeGeographic
or AGSSceneViewTilingSchemeWebMercator
values. The AGSSceneViewTilingScheme
must correspond to the AGSSpatialReference
for those layers to render correctly.
|
readnonatomicstronginherited |
A well-known ID (WKID) integer value or a text string definition referred to as a well-known text (WKT) representation that identifies how a geometry's coordinates relate to real-world space.
Spatial reference ensures that spatial data in different layers or graphic overlays can be used together for accurate viewing or analysis.
AGSSpatialReference
|
readnonatomicstronginherited |
An array of tables in the map or scene. Unlike AGSGeoModel::operationalLayers
, tables are not displayed by the AGSGeoView
.
Tables can be added and removed. Tables are not loaded by default. Tables are loaded internally when asynchronous operations like query are performed. Alternatively, they can be loaded by calling AGSFeatureTable::load
.
AGSFeatureTable
, NSMutableArray
, NSMutableArray::initWithValueType:
|
readnonatomiccopyinherited |
An array of transportation network datasets defined for the map or scene.
Map and scene authors can use ArcGIS Pro to create mobile map or scene packages containing maps and scenes that include transportation networks. If so, this property will be populated with the collection of AGSTransportationNetworkDataset
objects.
An AGSTransportationNetworkDataset
from this array can be used to construct one of the network analysis tasks (such as AGSRouteTask
, AGSServiceAreaTask
, and AGSClosestFacilityTask
).
AGSRouteTask
, AGSMobileScenePackage
|
readnonatomiccopy |
A dictionary of values that was in the source JSON but was unparsed by API.
|
readnonatomiccopy |
A dictionary of values that are supported by the REST API, but not exposed through the SDK API.
|
readnonatomiccopyinherited |