Map authoring considerations

To make a map available on the web, you need to author a map in ArcMap, publish it to your ArcGIS Server site, and then use the resulting map service in a client application. Many of the things you can do with map services require some preparation in the initial authoring phase. This topic includes questions you can consider when making a map that you plan on publishing to your site.

General tips

The following tips are important for all map documents that will be published to your ArcGIS Server site:

Can you cache the map for performance?

If your map contains data that is unlikely to change, you should consider caching your map for performance. When you cache your map, you create a set of prerendered map images at certain scale levels. The actual caching happens after you've published your map as a service. However, if you know that you're going to cache the map, this influences the map authoring process. You want to author the map so that it looks good at all the scales you are going to cache. You can use any cartographic tools without an effect on performance, because the cached tiles are just pictures of the data; the actual rendering and labeling engines are not used after you create the cache.

If you cannot cache your map, the rendering and labeling engines affect the performance of the map service. For more information, see What is map caching?

Performance tips for uncached maps

You should create a map cache whenever it's appropriate. However, if you have large amounts of data that are frequently changing, it may not be feasible for you to create and maintain a map cache. If this is the case, you can use the tips below to improve the performance of your map. When you're in the process of publishing your map document, you'll get a chance to analyze your map with the Service Editor. This can help you quickly identify ways to improve the performance of your map document.

Improving the display performance of map services

When clients send requests to ArcGIS Server to display a map service, the response from the server is typically cached by the browser and reused for a certain period of time. This behavior helps ArcGIS Server achieve the best possible display performance for your map service. However, depending on how your map service and its associated data are used in applications, you may consider adjusting the length of time the browser will use a response in its cache. This can be achieved by adding a property named cacheControlMaxAge to the JavaScript Object Notation (JSON) of the service.

How the cacheControlMaxAge property is used

ArcGIS Server map service responses include an entity tag (ETag) and Cache-Control header. The ETag header value is a unique identifier of the response. The Cache-Control header has a max-age value that provides information to the browser regarding the maximum time period for which it can reuse a response from the browser's cache. This value is controlled by the cacheControlMaxAge property.

When a request is repeated and the maximum age of the cache has not expired, the browser uses the cached response without sending the request to the server. If the maximum age has expired, the browser must send the request to the server and set an IF-NONE-MATCH header with an associated ETag value corresponding to the response in its cache. ArcGIS Server evaluates the request and uses the ETag value to determine if the response has changed. If the response from the server is different from the copy on the browser, the server sends a completely new response to the browser. If the response is identical to the copy on the browser, the server alerts the browser to continue to use the response in its cache.

Defining the value of the cacheControlMaxAge property

As an ArcGIS Server administrator, you can define the cacheControlMaxAge property to specify how long a browser is allowed to use a cached response. By mitigating the need for ArcGIS Server to send a full response, you allow your browser caches to be more efficient, help optimize your applications, and save network bandwidth.

The default value for map services is 0. This means the browser will always resend a request and ArcGIS Server will process the request and send a full response to the browser if the content has changed. This value works well for most applications.

For map services with frequently changing datasets or symbology, a value such as 5 minutes (300 seconds) is recommended. In applications with animations or time-aware data, you should consider increasing the value to give your application a smoother animation experience.

To add the cacheControlMaxAge property to your service and specify its default value, do the following:

  1. In a web browser, open the ArcGIS Server Administrator Directory and log in with a user that has administrator privileges. The URL is formatted http://gisserver.domain.com:6080/arcgis/admin.
  2. Click services and select the map service you want to modify from the Services list. If you don't see your service listed, it may be in a directory under the Root folder.
  3. On the Service - <service name> (<service type>) page, scroll to the bottom and click edit.
  4. In the Service Properties dialog box, locate the "properties" section of the service JSON.
  5. Add the cacheControlMaxAge property to the section and specify the value (in seconds) for the property, for example:
    "properties": {
      "cacheControlMaxAge": "300",
    
  6. Click Save Edits.
  7. On the Service - <service name> (<service type>) page, verify that the cacheControlMaxAge property and the value you specified for it appear in the Properties section.

Are you going to be viewing this map on a mobile device?

The Mobile Data Access capability allows you to extract the contents of a map service for viewing on a Tablet PC or Windows Mobile device. If you know that your map will be viewed on a mobile device, make it simple. Consider data generalization, such as polygon smoothing and reduced raster resolution, for background or reference layers. This helps the map to be drawn faster.

Are you going to perform network analysis on the server with this map?

If you're going to use this map for network analysis on the server, you need to include a network analysis layer that references a network dataset. When you publish the map service, you'll then have the option to enable the Network Analysis capability. This creates a web service for executing network analysis tasks on your map.

9/1/2015