Skip To Content ArcGIS for Developers Sign In Dashboard

GenerateOfflineMapParameters Class

class Esri::ArcGISRuntime::GenerateOfflineMapParameters

Parameters used for creating a GenerateOfflineMapJob. More...

Header: #include <GenerateOfflineMapParameters>
Since: Esri::ArcGISRuntime 100.1

This class was introduced in Esri::ArcGISRuntime 100.1.

Public Functions

GenerateOfflineMapParameters(Esri::ArcGISRuntime::GenerateOfflineMapParameters &&other)
GenerateOfflineMapParameters(const Esri::ArcGISRuntime::GenerateOfflineMapParameters &other)
GenerateOfflineMapParameters(const Esri::ArcGISRuntime::Geometry &areaOfInterest, double minScale, double maxScale)
GenerateOfflineMapParameters()
Esri::ArcGISRuntime::GenerateOfflineMapParameters &operator=(Esri::ArcGISRuntime::GenerateOfflineMapParameters &&other)
Esri::ArcGISRuntime::GenerateOfflineMapParameters &operator=(const Esri::ArcGISRuntime::GenerateOfflineMapParameters &other)
~GenerateOfflineMapParameters()
Esri::ArcGISRuntime::Geometry areaOfInterest() const
Esri::ArcGISRuntime::AttachmentSyncDirection attachmentSyncDirection() const
Esri::ArcGISRuntime::DestinationTableRowFilter destinationTableRowFilter() const
bool isContinueOnErrors() const
bool isDefinitionExpressionFilterEnabled() const
bool isIncludeBasemap() const
bool isReturnSchemaOnlyForEditableLayers() const
Esri::ArcGISRuntime::OfflineMapItemInfo itemInfo() const
double maxScale() const
double minScale() const
Esri::ArcGISRuntime::OnlineOnlyServicesOption onlineOnlyServicesOption() const
QString referenceBasemapDirectory() const
QString referenceBasemapFilename() const
Esri::ArcGISRuntime::ReturnLayerAttachmentOption returnLayerAttachmentOption() const
void setAreaOfInterest(const Esri::ArcGISRuntime::Geometry &areaOfInterest)
void setAttachmentSyncDirection(Esri::ArcGISRuntime::AttachmentSyncDirection syncDirection)
void setContinueOnErrors(bool continueOnErrors)
void setDefinitionExpressionFilterEnabled(bool definitionExpressionFilterEnabled)
void setDestinationTableRowFilter(Esri::ArcGISRuntime::DestinationTableRowFilter destinationTableRowFilter)
void setIncludeBasemap(bool includeBasemap)
void setItemInfo(const Esri::ArcGISRuntime::OfflineMapItemInfo &offlineMapItemInfo)
void setMaxScale(double maxScale)
void setMinScale(double minScale)
void setOnlineOnlyServicesOption(Esri::ArcGISRuntime::OnlineOnlyServicesOption onlineOnlyServicesOption)
void setReferenceBasemapDirectory(const QString &referenceBasemapDirectory)
void setReferenceBasemapFilename(const QString &referenceBasemapFilename)
void setReturnLayerAttachmentOption(Esri::ArcGISRuntime::ReturnLayerAttachmentOption layerAttachmentOption)
void setReturnSchemaOnlyForEditableLayers(bool returnSchemaOnly)
void setUpdateMode(Esri::ArcGISRuntime::GenerateOfflineMapUpdateMode updateMode)
Esri::ArcGISRuntime::GenerateOfflineMapUpdateMode updateMode() const

Detailed Description

For offline maps, a feature layer is only considered to be editable if all of FeatureTable::canAdd, FeatureTable::canDelete and FeatureTable::canUpdate return true.

The returnLayerAttachmentOption property and the attachmentSyncDirection property work in conjunction with (and in some cases may override) the value returned by attachmentSyncDirection. The table below shows the valid combinations of values for returnLayerAttachmentOption and attachmentSyncDirection. The notes column explains where the behavior for a given layer may differ from the values set for these properties.

ReturnLayerAttachmentOptionValid AttachmentSyncDirectionNote
ReturnLayerAttachmentOption::NoneAttachmentSyncDirection::None
AttachmentSyncDirection::Upload
ReturnLayerAttachmentOption::AllLayersAttachmentSyncDirection::Upload
AttachmentSyncDirection::Bidirectional
ReturnLayerAttachmentOption::ReadOnlyLayersAttachmentSyncDirection::NoneLayers with attachments will treat this as AttachmentSyncDirection::Bidirectional
AttachmentSyncDirection::Upload
AttachmentSyncDirection::BidirectionalLayers without attachments will treat this as AttachmentSyncDirection::None
ReturnLayerAttachmentOption::EditableLayersAttachmentSyncDirection::NoneLayers with attachments will treat this as AttachmentSyncDirection::Bidirectional
AttachmentSyncDirection::Upload
AttachmentSyncDirection::BidirectionalLayers without attachments will treat this as AttachmentSyncDirection::None

Member Function Documentation

GenerateOfflineMapParameters::GenerateOfflineMapParameters(Esri::ArcGISRuntime::GenerateOfflineMapParameters &&other)

Move constructor from other GenerateOfflineMapParameters.

GenerateOfflineMapParameters::GenerateOfflineMapParameters(const Esri::ArcGISRuntime::GenerateOfflineMapParameters &other)

Copy constructor from other GenerateOfflineMapParameters.

GenerateOfflineMapParameters::GenerateOfflineMapParameters(const Esri::ArcGISRuntime::Geometry &areaOfInterest, double minScale, double maxScale)

Constructor accepting an areaOfInterest, a minScale and a maxScale.

This function was introduced in Esri::ArcGISRuntime 100.4.

GenerateOfflineMapParameters::GenerateOfflineMapParameters()

Default constructor.

Esri::ArcGISRuntime::GenerateOfflineMapParameters &GenerateOfflineMapParameters::operator=(Esri::ArcGISRuntime::GenerateOfflineMapParameters &&other)

Move operator from other GenerateOfflineMapParameters.

Esri::ArcGISRuntime::GenerateOfflineMapParameters &GenerateOfflineMapParameters::operator=(const Esri::ArcGISRuntime::GenerateOfflineMapParameters &other)

Assignment operator from other GenerateOfflineMapParameters.

GenerateOfflineMapParameters::~GenerateOfflineMapParameters()

Destructor.

Esri::ArcGISRuntime::Geometry GenerateOfflineMapParameters::areaOfInterest() const

Returns the geographic area of interest used to generate the offline map.

See also setAreaOfInterest.

Esri::ArcGISRuntime::AttachmentSyncDirection GenerateOfflineMapParameters::attachmentSyncDirection() const

Returns the direction for attachments to be synchronized when syncing offline feature layers.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

See also setAttachmentSyncDirection().

Esri::ArcGISRuntime::DestinationTableRowFilter GenerateOfflineMapParameters::destinationTableRowFilter() const

Indicates whether tables will contain all rows or can be filtered to a smaller set of related rows.

The default value is DestinationTableRowFilter::RelatedOnly.

This function was introduced in Esri::ArcGISRuntime 100.4.

See also setDestinationTableRowFilter().

bool GenerateOfflineMapParameters::isContinueOnErrors() const

Indicates whether or not a generate offline map job should continue running in the event of failure to take a layer offline.

Returns true if the GenerateOfflineMapJob is to continue running in the event of failure.

If this property is true, failure to take a layer or table offline will not fail the job and the failure will be exposed in the job result. If this property is false, failure to take a layer or table offline will fail the job and no more layers or tables will be taken offline. The layer or table's error will be available as the job's error.

The default value is true.

This function was introduced in Esri::ArcGISRuntime 100.4.

bool GenerateOfflineMapParameters::isDefinitionExpressionFilterEnabled() const

Returns whether layer definition expressions are used when taking features offline.

If this value is true, the GenerateOfflineMapJob applies definition expressions when taking the features offline. If more than one layer uses the same feature service layer, all the definition expressions are combined. If this value is false, definition expressions are not applied and all features are taken offline.

The default value is true.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

This function was introduced in Esri::ArcGISRuntime 100.3.

bool GenerateOfflineMapParameters::isIncludeBasemap() const

Returns whether the basemap of an online map will be included when the offline map is generated.

When this property is set to false, the offline map will not contain any basemap layers. At a later stage, an application can programmatically insert a basemap after loading the offline map - for example, to provide the option for switching between basemaps at runtime. Note that, programmatically inserting a basemap into an offline map will not be persisted.

When this property is set to true, GenerateOfflineMapJob will download the online basemap - unless referenceBasemapDirectory has been set. Setting a directory indicates that the offline map should use a basemap on the device rather than downloading.

The default value is true.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

bool GenerateOfflineMapParameters::isReturnSchemaOnlyForEditableLayers() const

Returns whether feature layers taken offline should be schema only and contain no data.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

Esri::ArcGISRuntime::OfflineMapItemInfo GenerateOfflineMapParameters::itemInfo() const

Returns the offline map item info used for the local item properties in the offline map.

See also setItemInfo().

double GenerateOfflineMapParameters::maxScale() const

Returns the maximum scale for how far in to extract tiles from tiled services.

The default value of 0 means extract the levels down to the most detailed.

This is used as the input for the levels of detail in a TileCache. This is not applicable to offline data in a VectorTileCache or a Geodatabase.

A minScale of 100000 and a maxScale of 500 will select level IDs between 1:500 and 1:100,000 scale. A minScale of 0 and a maxScale of 500 will select all global level IDs down to 1:500 scale. A minScale of 100000 and a maxScale of 0 will select level IDs from 1:100,000 scale to the most detailed available level.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides, this property is superseded for individual layers tiled services.

Note that this property only sets the levels of detail to download for tiled data. The offline basemap layers will use the same max scale as in the online web map (either defined by the service or on the layer itself) to allow zooming in.

See also setMaxScale().

double GenerateOfflineMapParameters::minScale() const

Returns the minimum scale for how far out data will be in tiled services.

The default value of 0 means extract all the available detailed levels to global scales.

This is used as the input for the levels of detail in a TileCache. This is not applicable to offline data in a VectorTileCache or a Geodatabase.

A minScale of 100000 and a maxScale of 500 will select level IDs between 1:500 and 1:100,000 scale. A minScale of 0 and a maxScale of 500 will select all global level IDs down to 1:500 scale. A minScale of 100000 and a maxScale of 0 will select level IDs from 1:100,000 scale to the most detailed available level.

Note: This property only sets the levels of detail to download for tiled data. The offline basemap layers will use the same min scale as in the online web map (either defined by the service or on the layer itself).

See also setMinScale().

Esri::ArcGISRuntime::OnlineOnlyServicesOption GenerateOfflineMapParameters::onlineOnlyServicesOption() const

Returns how data that requires an online service will be handled when taking a map offline.

Online layers and tables cannot be taken offline in the following situations:

  • The layer or table is using a service that cannot be taken offline. For example, WmsLayer or WmtsLayer.
  • The layer or table is using a service that supports offline, such as a FeatureLayer, but synchronization has not been enabled on the service (FeatureServiceCapabilities::isSupportsSync is set to false). Services utilize synchronization to take layers and tables offline and synchronize changes.

Online services that cannot be taken offline are referred to as online-only services. Online-only services require network connectivity and may involve authentication. Examples of online-only services include:

  • Dynamic information, such as changing weather or traffic conditions, that delivers frequent and regular updates to the app.
  • Large datasets that would be impractical to take offline to a device.

This property allows you to specify how online-only data will be handled when taking the map offline. There are two options:

  • OnlineOnlyServicesOption::Exclude means that any data that cannot be taken offline will be omitted from the offline map. Choosing this option means that your offline map will not require a network connection but may not include all of the data from the original web map.
  • OnlineOnlyServicesOption::Include means that data that cannot be taken offline will be accessed via the URL in the offline map. Choosing this option means that your offline map will retain all of the information from the original web map, but it will require a network connection and may require authentication.

The default value is OnlineOnlyServicesOption::Exclude.

This function was introduced in Esri::ArcGISRuntime 100.9.

See also setOnlineOnlyServicesOption().

QString GenerateOfflineMapParameters::referenceBasemapDirectory() const

Gets the path to a directory on the device where the local basemap file is located.

This function was introduced in Esri::ArcGISRuntime 100.5.

See also setReferenceBasemapDirectory.

QString GenerateOfflineMapParameters::referenceBasemapFilename() const

Gets the name of a local basemap file on the device which can be used rather than downloading an online basemap.

This property can be read directly from settings applied by the author of the online web map (see OfflineSettings) or set by user code to a file known to be on the device. This property will be populated from online settings when created with OfflineMapTask::createDefaultGenerateOfflineMapParameters.

To use the specified local basemap rather than downloading, the referenceBasemapDirectory property must also be set.

If the directory does not exist, or does not contain the specified basemap, GenerateOfflineMapJob will fail.

Note that this property is ignored if isIncludeBasemap is false.

This function was introduced in Esri::ArcGISRuntime 100.5.

See also setReferenceBasemapFilename().

Esri::ArcGISRuntime::ReturnLayerAttachmentOption GenerateOfflineMapParameters::returnLayerAttachmentOption() const

Returns the type of layers we wish to include attachments with when taking feature layers offline.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

See also setReturnLayerAttachmentOption.

void GenerateOfflineMapParameters::setAreaOfInterest(const Esri::ArcGISRuntime::Geometry &areaOfInterest)

Sets the geographic area of interest used to generate the offline map to areaOfInterest.

The supported geometry types for the area of interest are Envelope and Polygon. The area of interest must have a spatial reference. Where a Polygon is supplied, features and tiles will be filtered according to the polygon geometry, which can help reduce the size of the resulting offline map. Note that the filtered set of tiles may vary, depending on the underlying service.

See also areaOfInterest().

void GenerateOfflineMapParameters::setAttachmentSyncDirection(Esri::ArcGISRuntime::AttachmentSyncDirection syncDirection)

Sets the direction for attachments to be synchronized when syncing offline feature layers to syncDirection.

See the class description for more information about the interaction of this property with other properties.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

See also attachmentSyncDirection().

void GenerateOfflineMapParameters::setContinueOnErrors(bool continueOnErrors)

Sets whether a generate offline map job should continue running in the event of failure to take a layer offline to continueOnErrors.

This function was introduced in Esri::ArcGISRuntime 100.4.

See also isContinueOnErrors().

void GenerateOfflineMapParameters::setDefinitionExpressionFilterEnabled(bool definitionExpressionFilterEnabled)

Sets whether layer definition expressions are used when taking features offline to definitionExpressionFilterEnabled.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

This function was introduced in Esri::ArcGISRuntime 100.3.

See also isDefinitionExpressionFilterEnabled().

void GenerateOfflineMapParameters::setDestinationTableRowFilter(Esri::ArcGISRuntime::DestinationTableRowFilter destinationTableRowFilter)

Sets whether tables will contain all rows or can be filtered to a smaller set of related rows.

  • destinationTableRowFilter. Value indicating a filter on rows of tables in relationships.

When the property is DestinationTableRowFilter::relatedOnly (the default) this can substantially reduce the number of rows in offline tables, to only those that are related to rows from other layers or tables.

Only tables present in the Map are considered as candidates for filtering. This does not apply when the table:

The relationships of a table are accessible via ArcGISFeatureTable::layerInfo and the ArcGISFeatureLayerInfo::relationshipInfos property.

The default value is DestinationTableRowFilter::RelatedOnly.

This function was introduced in Esri::ArcGISRuntime 100.4.

See also destinationTableRowFilter().

void GenerateOfflineMapParameters::setIncludeBasemap(bool includeBasemap)

Sets whether or not a basemap will be included in the offline map.

If you do not want a basemap in the offline map then set this property to false. After loading the offline map, your application can programmatically insert a basemap into the map. Note that a programmatically inserted basemap will not be persisted in the map.

If you want a basemap in the offline map, then set this property to true. You can choose to either:

The default state of includeBasemap is true. This property is superseded if the GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides

See also isIncludeBasemap().

void GenerateOfflineMapParameters::setItemInfo(const Esri::ArcGISRuntime::OfflineMapItemInfo &offlineMapItemInfo)

Sets the offline map item info used for the local item properties in the offline map to offlineMapItemInfo.

See also itemInfo().

void GenerateOfflineMapParameters::setMaxScale(double maxScale)

Sets the maximum scale for how far in to extract tiles from tiled services to maxScale.

See also maxScale.

void GenerateOfflineMapParameters::setMinScale(double minScale)

Sets the minimum scale for how far out data will be in tiled services to minScale.

See also minScale.

void GenerateOfflineMapParameters::setOnlineOnlyServicesOption(Esri::ArcGISRuntime::OnlineOnlyServicesOption onlineOnlyServicesOption)

Sets the onlineOnlyServicesOption to onlineOnlyServicesOption.

This function was introduced in Esri::ArcGISRuntime 100.9.

See also onlineOnlyServicesOption.

void GenerateOfflineMapParameters::setReferenceBasemapDirectory(const QString &referenceBasemapDirectory)

Sets the path to a directory on the device where the local basemap file is located.

  • referenceBasemapDirectory. A path to a directory on the device where local basemap files are located.

Set this property to use a basemap which is already on the device (rather than downloading it). The directory should only be set when the parameters have a GenerateOfflineMapParameters::referenceBasemapFilename defined.

This property supports any directory specified as either:

  • An absolute path.
  • A path relative to the parent directory of the resulting mobile map package (the downloadDirectoryPath parameter of OfflineMapTask::generateOfflineMap).

If the directory does not exist, or does not contain the specified basemap, the GenerateOfflineMapJob will fail.

Note that the mobile map package will store either a relative or absolute path to the reference basemap file so that it can be opened in the future.

A relative path typically begins with "." to denote the parent directory of the resulting mobile map package or ".." to move up one directory. The parent directory of the mobile map package will be set when calling OfflineMapTask::downloadPreplannedOfflineMap.

For example, to download a mobile map package to "[my root path]/my_offline_maps/my_mobile_map_package", which uses a reference basemap in "[my root path]/other_maps/my_basemap.tpk", you would set the relative path as follows:

Note that this property is ignored if isIncludeBasemap is false.

This function was introduced in Esri::ArcGISRuntime 100.5.

See also referenceBasemapDirectory().

void GenerateOfflineMapParameters::setReferenceBasemapFilename(const QString &referenceBasemapFilename)

Sets the name of a local basemap file on the device which can be used rather than downloading an online basemap.

  • referenceBasemapFilename. The name of the local basemap file.

The local basemap filename must end with .tpk, .tpkx or .vtpk since these are the supported file formats. This property can be read directly from settings applied by the author of the online web map or set by user code to a file known to be on the device.

This property can be read directly from settings applied by the author of the online web map or set by user code to a file known to be on the device. This property will be populated from online settings when created with OfflineMapTask::createDefaultGenerateOfflineMapParameters.

To use the specified local basemap rather than downloading, the referenceBasemapDirectory property must also be set.

If the directory does not exist, or does not contain the specified basemap, GenerateOfflineMapJob will fail.

Note that this property is ignored if isIncludeBasemap is false.

This function was introduced in Esri::ArcGISRuntime 100.5.

See also referenceBasemapFilename().

void GenerateOfflineMapParameters::setReturnLayerAttachmentOption(Esri::ArcGISRuntime::ReturnLayerAttachmentOption layerAttachmentOption)

Sets the type of layers we wish to include attachments with when taking feature layers offline to layerAttachmentOption.

Values for ReturnLayerAttachmentOption can indicate to return attachments with none of the layers, all of the layers, only read-only layers, or editable layers.

See the class description for more information about the interaction of this property with other properties.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

See also returnLayerAttachmentOption().

void GenerateOfflineMapParameters::setReturnSchemaOnlyForEditableLayers(bool returnSchemaOnly)

Sets whether feature layers taken offline should be schema only and contain no data to returnSchemaOnly.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded.

See also isReturnSchemaOnlyForEditableLayers().

void GenerateOfflineMapParameters::setUpdateMode(Esri::ArcGISRuntime::GenerateOfflineMapUpdateMode updateMode)

Sets the updateMode to updateMode.

This function was introduced in Esri::ArcGISRuntime 100.9.

See also updateMode.

Esri::ArcGISRuntime::GenerateOfflineMapUpdateMode GenerateOfflineMapParameters::updateMode() const

Returns how the offline map will support synchronization with online services.

A value of GenerateOfflineMapUpdateMode::noUpdates instructs GenerateOfflineMapJob to disable data synchronization for generated offline geodatabases. In this case no synchronization replicas will be created on corresponding feature services.

A value of GenerateOfflineMapUpdateMode::syncWithFeatureServices instructs GenerateOfflineMapJob to create offline geodatabases which support syncing with online feature services.

The default value is GenerateOfflineMapUpdateMode::syncWithFeatureServices.

If GenerateOfflineMapParameters is used in conjunction with GenerateOfflineMapParameterOverrides this property is superseded by the GenerateGeodatabaseParameters::syncModel property of the overridden layer.

This function was introduced in Esri::ArcGISRuntime 100.9.

See also setUpdateMode() and GenerateGeodatabaseParameters::syncModel.


Feedback on this topic?