- URL:
- https://Map Service/exportTiles
- Methods:
GET
- Version Introduced:
- 10.2.1
Description
The export
operation is performed as an asynchronous task and allows client applications to download map tiles from a server for offline use. This operation is performed on a map service that allows clients to export cache tiles. The result of this operation is a map service job. This job response contains a reference to the Map Service Result resource, which returns a URL to the resulting tile package (.tpk/.tpkx) or a cache raster dataset. For more information on the properties returned in the job response, see GP Job.
The export
operation can be enabled in a service by ArcGIS Pro or the ArcGIS Server Administrator Directory. In ArcGIS Pro, make an admin or publisher connection to the server, go to the service properties, and enable Allow Clients to Export Cache Tiles in the advanced caching page of the Service Editor. You can also specify the maximum tiles clients will be allowed to download. The default maximum allowed tile count is 100,000. To enable this capability using the Administrator Directory, edit the service, and set the export
property as true
and the max
property as 100000.
You can provide arguments to the export
operation as defined in the following parameters table:
Request parameters
Parameter | Details |
---|---|
| Introduced at 10.7. When set to Values: |
| Allows exporting either a tile package or a cache raster dataset. If the value is Values: |
| The extent (bounding box) of the tile package or the cache dataset to be exported. If the extent does not include a spatial reference, the extent values are assumed to be in the spatial reference of the map. The default value is the full extent of the tiled map service. Syntax
Example
|
(Optional) | Use this parameter to enable compression of JPEG tiles and reduce the size of the downloaded tile package or the cache raster dataset. Compressing tiles slightly compromises the quality of tiles but helps reduce the size of the download. Try sample compressions to determine the optimal compression before using this feature. Values: |
(Optional) | When Values: |
| The criteria that will be used to select the tile service levels to export. The values can be Level IDs, cache scales, or the resolution (in the case of image services). Values: |
| Specifies the tiled service levels to export. The values should correspond to Level IDs, cache scales, or the resolution as specified in the Example
|
(Optional) | The Example
|
| The response format. The default response format is Values: |
Additional properties
exportTilesUsingLocalTempFolder
In a multiple-machine site, users can use local
to generate TPKs, and then move them to the arcgisoutput directory rather than reading or writing caches from or to a shared network folder. This reduces the time it takes to export TPKs by reducing latency and input/output on servers.
When set to true
, it overrides the use
property set on cached services and generates TPKs in the local temp folder of ArcGIS Server. The default setting for this property is false
.
It's recommended that you have at least 2 GB of available space in this location for each running instance of the CachingControllers geoprocessing service. It's also recommended that you allocate twice the size of the average TPK being exported by users on the server for each running instance of the CachingControllers service.
Set this property using the following steps:
- Open the ArcGIS Server Administrator Directory and sign in as a user with administrator access. The URL is formatted as follows:
https://gisserver.domain.com:6080/arcgis/admin
-
Click system > properties > update.
-
On the dialog box, add the
export
property, for example:Tiles Using Local Temp Folder Use dark colors for code blocks Copy {"exportTilesUsingLocalTempFolder": true}
-
Click Update.
Subsequent export tile requests for TPKs will now use the local temp folder.
maximumOutstandingJobs
At times, there can be a surge in the number of export tile requests that are made to the server by clients. If the server is not able to successfully handle the requests, you can add this property to the CachingController service configuration to throttle the number of jobs for exporting tiles (on a tiled map service).
The value of this property is an integer: N for a finite number, -1 for unlimited (default), and 0 for stopping all requests. If a service configuration does not contain this property, it's treated as an infinite capacity queue. When submitting a job for the export tiles operation, ArcGIS Server checks the current outstanding jobs (from the jobs queue), and if the value is >=
max, it returns an HTTP 503 error (service unavailable) with a Retry-After header set to 300 seconds.
Set this property using the following steps:
- Open the ArcGIS Server Administrator Directory and sign in as a user with administrator access. The URL is formatted as follows:
https://gisserver.domain.com:6080/arcgis/admin
-
Click services > System > CachingControllers > edit.
-
On the dialog box, add the
maximum
property to theOutstanding Jobs properties
section of the JSON, for example:Use dark colors for code blocks Copy "properties": { "outputDir": "C:\\arcgisserver\\directories\\arcgisoutput", "virtualOutputDir": "/rest/directories/arcgisoutput", "showMessages": "Info", "toolbox": "${AGSSERVER}/ArcToolBox/Services/Caching Controllers.tbx", "jobsDirectory": "C:\\arcgisserver\\directories\\arcgisjobs", "executionType": "Asynchronous", "jobsVirtualDirectory": "/rest/directories/arcgisjobs", "maximumRecords": "1000", "maximumOutstandingJobs": 500 }
-
Click Save Edits.
Example usage
Example one
https://machine.domain.com/webadaptor/rest/services/World_Imagery/MapServer/exportTiles?tilePackage=true&exportExtent=&optimizeTilesForSize=false&compressionQuality=90&exportBy=levelId&levels=0-2&areaOfInterest=&f=html
Example two
https://machine.domain.com/webadaptor/rest/services/World_Imagery/MapServer/exportTiles?tilePackage=true&exportExtent=-13051380,4030276,-13037288,4041136&optimizeTilesForSize=true&compressionQuality=60&exportBy=levelId&levels=0-2&areaOfInterest=&f=json
Example three
https://machine.domain.com/webadaptor/rest/services/World_Imagery/MapServer/exportTiles?tilePackage=true&exportExtent=&optimizeTilesForSize=true&compressionQuality=60&exportBy=levelId&levels=3-5&areaOfInterest={"features": [{"geometry": {"rings": [[[-100,35],[-100,45],[-90,45],[-90,35],[-100,35]]],"spatialReference": {"wkid":4326}}}]}&f=html
JSON Response syntax
{
"jobId": "<jobId>",
"jobStatus": "<jobStatus>"
}
JSON Response example
The response returns a unique job ID that an be used to check the status of the job and job messages.
{
"jobId": "jeeb938cbb2774269a7ca9910df4ee700",
"jobStatus": "esriJobSubmitted"
}
Job status
After the initial request is submitted, you can track the status of your request by accessing the following URL, where job
is value returned in the JSON response above:
https://machine.domain.com/webadaptor/rest/services/World_Imagery/MapServer/jobs/<jobId>
In addition to checking the job's status, you can also cancel the job by making a request of the following form:
https://machine.domain.com/webadaptor/rest/services/World_Imagery/MapServer/jobs/<jobId>/cancel?f=pjson
When the job is cancelled, the following response is returned:
{
"jobId": "ja34307c9308f4144aed630b264582df1",
"jobStatus": "esriJobCancelling"
}