ArcGIS Runtime SDK for iOS: AGSGenerateOfflineMapParameterOverrides Class Reference
ArcGIS Runtime SDK for iOS  100.14
AGSGenerateOfflineMapParameterOverrides Class Reference

Description

Gives access to the individual parameters objects that will generate the various geodatabase, vector tile and tile cache packages that make up the data of an offline map.

This object allows the user more fine-grained control over the generation of an offline map than the options presented in the standard AGSGenerateOfflineMapParameters. For example, the parameters overrides allow the user to adjust specific layers so that they: use a different spatial extent or scale range; use custom attribute or geometry settings; are omitted from the download. An instance of this object can be created from the overall map settings in AGSGenerateOfflineMapParameters by calling generateOfflineMapParameterOverridesWithParameters:completion: (AGSOfflineMapTask). This object gives access to the individual parameter objects via three dictionaries containing generate geodatabase parameters, export tile cache parameters and export vector tile parameters. These can be accessed using AGSGenerateOfflineMapParameterOverrides::generateGeodatabaseParameters, AGSGenerateOfflineMapParameterOverrides::exportTileCacheParameters and AGSGenerateOfflineMapParameterOverrides::exportVectorTilesParameters respectively. The dictionaries contain the various parameters objects mapped against an AGSOfflineMapParametersKey instance. An AGSOfflineMapParametersKey instance represents the service that a particular parameters object is intended for. Given a layer or table or utility network, a key to find its matching parameters object can be constructed with initWithLayer: (AGSOfflineMapParametersKey), initWithServiceFeatureTable: (AGSOfflineMapParametersKey) and initWithUtilityNetwork: (AGSOfflineMapParametersKey) respectively. The returned key's AGSOfflineMapParametersKey::type property will indicate which of the three dictionaries contains the desired parameters object and the key can be used to extract it. Note that a given parameters key/value pair may be shared by multiple layers in the map: for example, a single AGSGenerateGeodatabaseParameters instance could represent the online settings for multiple feature layers that all access the same underlying feature service. All entries in the dictionaries should correspond to layers and table instances in the online AGSMap. If a dictionary entry is removed, the corresponding layers or tables will be removed from the offline map without raising an error.

Since
100.4
Inheritance diagram for AGSGenerateOfflineMapParameterOverrides:
AGSObject

Properties

NSDictionary< AGSOfflineMapParametersKey *, AGSExportTileCacheParameters * > * exportTileCacheParameters
 
NSDictionary< AGSOfflineMapParametersKey *, AGSExportVectorTilesParameters * > * exportVectorTilesParameters
 
NSDictionary< AGSOfflineMapParametersKey *, AGSGenerateGeodatabaseParameters * > * generateGeodatabaseParameters
 
NSArray< AGSLayer * > * onlineLayers
 
NSArray< AGSServiceFeatureTable * > * onlineTables
 

Property Documentation

◆ exportTileCacheParameters

- (NSDictionary<AGSOfflineMapParametersKey *, AGSExportTileCacheParameters *>*) exportTileCacheParameters
readwritenonatomiccopy

The dictionary of AGSExportTileCacheParameters, which can be changed or overridden for taking a map offline. All entries in the dictionary should correspond to AGSArcGISTiledLayer instances in the online AGSMap. If a dictionary entry is removed the corresponding layers will be removed from the offline map without raising an error.

Since
100.4

◆ exportVectorTilesParameters

- (NSDictionary<AGSOfflineMapParametersKey *, AGSExportVectorTilesParameters *>*) exportVectorTilesParameters
readwritenonatomiccopy

The dictionary of AGSExportVectorTilesParameters, which can be changed or overridden for taking a map offline. All entries in the dictionary should correspond to AGSArcGISVectorTiledLayer instances in the online AGSMap. If a dictionary entry is removed the corresponding layers will be removed from the offline map without raising an error.

Since
100.4

◆ generateGeodatabaseParameters

- (NSDictionary<AGSOfflineMapParametersKey *, AGSGenerateGeodatabaseParameters *>*) generateGeodatabaseParameters
readwritenonatomiccopy

The dictionary of AGSGenerateGeodatabaseParameters, which can be changed or overridden for taking a map offline. All entries in the dictionary should correspond to AGSFeatureLayer and AGSServiceFeatureTable instances in the online AGSMap. If a dictionary entry is removed the corresponding layers or tables will be removed from the offline map without raising an error.

Since
100.4

◆ onlineLayers

- (NSArray<AGSLayer*>*) onlineLayers
readwritenonatomiccopy

This array indicates layers that will not be taken offline and will continue to reference online services.

In some situations, you may wish to prevent a layer from being taken offline even though it is supported. For example, by continuing to reference the live online service for an AGSFeatureLayer, you can benefit from the most up-to-date information. You can choose to keep layers from the map's operational layers or basemap layers collections online.

To make the offline map continue to reference an online layer add it to the AGSGenerateOfflineMapParameterOverrides::onlineLayers array. By adding an AGSLayer to this list, you indicate that the layer will not be taken offline but will instead continue to reference the online service. Be aware that the resulting offline map will require a network connection and may also require authentication.

Note that if an AGSLayer is included in this array it will not be taken offline - you should update the relevant parameters to remove the details pertaining to that layer:

If a feature service contains many tables in the web map, you can choose to keep specific layers online by adding them to the AGSGenerateOfflineMapParameterOverrides::onlineLayers array and updating the AGSGenerateOfflineMapParameterOverrides::generateGeodatabaseParameters to remove the specific layers. Any remaining feature layers or stand-alone tables that you wish to take offline can be configured using the AGSGenerateGeodatabaseParameters::layerOptions for the service in AGSGenerateOfflineMapParameterOverrides::generateGeodatabaseParameters.

When you create an AGSGenerateOfflineMapParameterOverrides object, this array will be populated according to the AGSGenerateOfflineMapParameters::onlineOnlyServicesOption setting in the original parameters.

◆ onlineTables

- (NSArray<AGSServiceFeatureTable*>*) onlineTables
readwritenonatomiccopy

This array indicates tables that will not be taken offline and will continue to reference online services.

In some situations, you may wish to prevent a non-spatial table from being taken offline even though it is supported. For example, by continuing to reference the live online AGSServiceFeatureTable, you can benefit from the most up-to-date information.

To make the offline map continue to reference an online table, you add it to the AGSGenerateOfflineMapParameterOverrides::onlineTables array. By adding an AGSServiceFeatureTable to this list, you indicate that the table will not be taken offline and it will continue to reference the online source. Be aware that the resulting offline map will require a network connection and may require authentication.

Note that if an AGSServiceFeatureTable is included in this array it will not be taken offline - you should update the AGSGenerateOfflineMapParameterOverrides::generateGeodatabaseParameters to remove that table.

If a feature service contains many layers in the web map, you can choose to keep specific tables online by adding them to the AGSGenerateOfflineMapParameterOverrides::onlineTables array. Any remaining tables that you wish to take offline can be configured using the service's AGSGenerateGeodatabaseParameters::layerOptions in the AGSGenerateOfflineMapParameterOverrides::generateGeodatabaseParameters.

When you create an AGSGenerateOfflineMapParameterOverrides object, this array will be populated according to the AGSGenerateOfflineMapParameters::onlineOnlyServicesOption setting in the original parameters.