You can take certain utility network
The following code takes a web map offline that contains a utility network. The utility network tables are automatically synced with a map when a utility network is detected within.
You can take certain utility network
// Create an offline map task with the map.
final offlineMapTask = OfflineMapTask.withOnlineMap(map);
final offlineMapParameters =
await offlineMapTask.createDefaultGenerateOfflineMapParameters(
areaOfInterest: areaOfInterest,
);
// Create an offline map job with the download directory path and parameters
final job = offlineMapTask.generateOfflineMap(
parameters: offlineMapParameters,
downloadDirectoryUri: Uri.parse(downloadDirectoryPath),
);
final result = job.result;
if (result == null || result.offlineMap.utilityNetworks.isEmpty) return;
// Get the utility network from the offline map.
final utilityNetwork = result.offlineMap.utilityNetworks.first;
The following code takes a utility network offline using a service geodatabase. The utility network tables only get synced when the sync mode in the generate geodatabase parameters is set to sync system tables.
// Create a geodatabase sync task with the feature service uri.
final geodatabaseSyncTask = GeodatabaseSyncTask.withUri(featureServiceUri);
await geodatabaseSyncTask.load();
// Create generate geodatabase parameters for the selected extents.
final geodatabaseParameters = await geodatabaseSyncTask
.createDefaultGenerateGeodatabaseParameters(extent: areaOfInterest);
geodatabaseParameters
..returnAttachments = false
..utilityNetworkSyncMode = UtilityNetworkSyncMode.syncSystemTables;
// Create a generate geodatabase job.
final geodatabaseJob = geodatabaseSyncTask.generateGeodatabase(
parameters: geodatabaseParameters,
pathToGeodatabaseFileUri: Uri.parse(pathToGeodatabaseFile),
);
// Start the generateGeodatabase job.
geodatabaseJob.start();
final output = geodatabaseJob.result;
if (output == null || output.utilityNetworks.isEmpty) return;
final utilityNetwork = output.utilityNetworks.first;
debugPrint(utilityNetwork.name);
For more information about offline workflows using ArcGIS Maps SDKs for Native Apps, see the Offline maps, scenes, and data topic.