ArcGIS Runtime SDK for iOS
100.15
|
A local cache of pre-rendered map tiles that can be used to create a layer.
A tile cache stores a collection of images at various scales. A client can request the tiles needed to display a particular map extent. You can use AGSExportTileCacheTask
to generate and download tiles from a service, creating a tile package (.tpk/.tpkx). Alternatively, you can use ArcGIS Pro to create a map tile package and provision it to the device.
Functional characteristics ArcGIS tiled layers do not support reprojection, query, select, identify, or editing.
Performance characteristics Tiles are generated when the cache is created. Requests for tiles are made on multiple threads and handled asynchronously. The size of each returned tile increases as the resolution or complexity of the image in the tile increases. For example, high-resolution imagery tiles can be larger files than topographic mapping for the same area and map extent.
Local tile caches are ideal for providing basemaps, or for infrequent changes to contextual layers when network access is limited or non-existent. Use AGSExportTileCacheJob
to create and download a local tile cache to a device. Alternatively, the cache can be provisioned directly to local storage. The supported types of cache file formats are:
A tile cache is often used as a basemap, but can also be used to create an AGSArcGISTiledLayer
that is added to a map as an operational layer. An offline AGSArcGISTiledElevationSource
can also be created from an appropriate tile cache and added to the AGSScene::baseSurface
of an AGSScene
.
AGSArcGISTiledLayer
to display the contents of the tile cache as a layer in a map Instance Methods | |
(void) | - cancelLoad |
(void) | - doCancelLoading |
(void) | - doStartLoading: |
(instancetype) | - initWithFileURL: |
(instancetype) | - initWithName: |
(void) | - loadDidFinishWithError: |
(void) | - loadWithCompletion: |
(void) | - onLoadStatusChanged |
(void) | - retryLoadWithCompletion: |
(nullable NSData *) | - tileDataWithTileKey: |
Class Methods | |
(instancetype) | + tileCacheWithFileURL: |
(instancetype) | + tileCacheWithName: |
Properties | |
BOOL | antialiasing |
AGSCacheStorageFormat | cacheStorageFormat |
NSURL * | fileURL |
AGSEnvelope * | fullExtent |
NSError * | loadError |
AGSLoadStatus | loadStatus |
AGSImage * | thumbnail |
AGSTileInfo * | tileInfo |
|
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).
- (instancetype) initWithFileURL: | (NSURL *) | fileURL |
Initialize this object with a path to a local Tile Package (.tpk or .tpkx file).
fileURL | The URL to a local Tile Package (.tpk or .tpkx file). |
- (instancetype) initWithName: | (NSString *) | name |
Initialize this object with the name of a local Tile Package (.tpk or .tpkx file) within the application bundle or shared documents directory.
name | The name of a local Tile Package (same as the name of the .tpk or .tpkx file without the file extension). |
- (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) tileCacheWithFileURL: | (NSURL *) | fileURL |
Initialize this object with a path to a local Tile Package (.tpk or .tpkx file).
fileURL | The URL to a local Tile Package (.tpk or .tpkx file). |
+ (instancetype) tileCacheWithName: | (NSString *) | name |
Initialize this object with the name of a local Tile Package (.tpk or .tpkx file) within the application bundle or shared documents directory.
name | The name of a local Tile Package (same as the name of the .tpk or .tpkx file without the file extension). |
- (nullable NSData *) tileDataWithTileKey: | (AGSTileKey *) | tileKey |
Returns the tile data for the specified tile key.
tileKey | The tile key. |
|
readnonatomicassign |
Specifies the antialiasing flag of the cache.
|
readnonatomicassign |
Specifies the storage format of the cache.
|
readnonatomicstrong |
The file URL of the Tile Package (.tpk or .tpkx file) being used by this tile cache.
|
readnonatomicstrong |
The full extent covered by all tiles in the cache.
|
readnonatomicstronginherited |
The error that was encountered during the most recent load operation. Will be nil if the operation succeeded.
|
readrequirednonatomicassigninherited |
Status of the load operation.
|
readnonatomicstrong |
The thumbnail image of the cache.
|
readnonatomicstrong |
Tiling scheme used by the cache