Map authoring considerations for ArcGIS Server
To make a map available on the server, you need to author the map in ArcMap, publish it to ArcGIS Server, then use the resulting map service. Many of the things you can do with ArcGIS Server 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 ArcGIS Server.
General tips
The following tips are important for all map documents that will be published to ArcGIS Server:
- Do not include spaces or nonalphanumeric characters in data frame or layer names. When these names are included in URLs, some Web servers may have difficulty interpreting the spaces or special characters. Additionally, if you attempt to create a cache for the service, the operating system may have difficulty with the special characters when it tries to name the cache folders since these are named after the data frame and layers.
- Remove sensitive information from the document properties. ArcGIS Server includes the ArcGIS Services Directory, which allows users to browse the contents of your server and obtain metadata about your services. Even if you plan on allowing your services to be publicly visible through the Services Directory (the default configuration for ArcGIS Server), there still may be some sensitive information in your map document that you want to obscure. To see what information might be visible, open your map document and click File > Document Properties. Before publishing your map, you should remove any author user names, comments, or other information in this dialog box that you do not want to be visible through the Services Directory.
- Remove any secured ArcGIS Server map service layers from the map document. ArcGIS Server prevents map services from containing any service that is secured. In general, it's not a good idea to embed services within other services. Instead, set up the client to connect directly to the services you want to include.
- Remove any ArcMap Basemap Layers (the kind you create using New > Basemap Layer) from your map document before you publish it as a service. The performance benefit you see from Basemap Layers is applicable only in the ArcMap display environment; it does not transfer to the map service. If you want to leave the layers in your map, you can re-brand them as a group layer. If you want the layers to be available as a fast map service that you use for providing background context in your applications, you should make a separate map document containing only the base data layers and publish it as a cached map service. Caching is the recommended way to create fast base maps for ArcGIS Server.
-
Explicitly set a data frame background color instead of leaving the default null background color. The map service will treat the background color as transparent, so you should avoid choosing a color found elsewhere in your map. To avoid white areas of your map becoming transparent, you can set the background color to near-white (Example: RGB 254, 255, 255).
You can set the background color on the Frame tab of the Data Frame Properties dialog box.
- Before publishing a PMF file for use with ArcGIS Server, open the Publisher Settings to the Applications tab. Uncheck Open in ArcReader only and check Unrestricted access to contents of Published Map.
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 will affect the performance of the map service.
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. Analyzing your map with the Map Service Publishing toolbar can help you quickly identify some of these areas for improvement in your own map document.
-
Set scale-dependent rendering for data layers—Use scale-dependent rendering to ensure that unneeded layers do not draw when the map is zoomed out. Data-intensive or detailed layers may be more appropriate only when the map is zoomed in to a larger scale.
-
Remove unused layers and data frames—Check both the page layout and data views and ensure that your map document is clear of data frames and layers that are unrelated to the map's purpose. For example, if the page layout view contains data frames that will not be shown in any application that uses the service, remove the data frames.
-
Use definition queries appropriately—A definition query can act as a filter to limit the amount of data on the map, thereby causing it to draw faster. For example, if you are creating a map of a state and your feature class contains data for the entire country, you can use a definition query to display only those features that fall within the state boundaries. Beware that some complex queries may actually negatively affect performance.
Simplify layer symbology—With MXD-based map services, complex symbols can take much longer to draw than simple symbols. Use simple line and fill symbols where possible, avoiding symbology that contains multiple layers, complicated dash patterns, hash lines, or outlines. Highway shield symbols may also slow drawing performance.
When using a picture fill symbol, you can improve performance by using an EMF file instead of a BMP.
An easy way to simplify some of the symbology in your map is to use the ESRI_Optimized style. This style contains both line and fill symbols that are designed to perform better while still maintaining a close visual appearance to their counterparts within the default ESRI style. See the topic Organizing style contents in the ArcGIS Desktop Help to learn how to work with this style.
Tip:When possible, use a map service definition (MSD) file to publish your service, rather than an MXD. MSD-based services take advantage of an optimized drawing engine that is able to quickly render both simple and complex symbols. You don't need to simplify all your symbols if you use an MSD.
If you are creating a cached map service, simplifying your map does not affect the speed of the finished map delivery; it only affects the speed of the cache creation. If your cache already takes a reasonable amount of time to build, you may not need to worry about symbol simplification.
-
Use annotation instead of labels—Since labels require the computer to make placement decisions, it's generally faster to use an annotation layer.
-
Simplify labels—If your map contains labels, use the label and feature conflict weights sparingly. Halos, offsets, and other label effects will also slow down performance.
-
Set scale-dependent rendering for labels—When a map is zoomed out, more labels need to be drawn, which takes time. Examine your map document and determine if some labels do not need to be shown at smaller scales.
-
Use the same coordinate system for your data and map—When your source data and your map document have differing coordinate systems, your data has to be projected on the fly, thereby slowing performance. For optimal performance, use the same coordinate system for both your data and your map document. If this is not possible, make sure appropriate geographic transformations are applied to the layers that need to be projected on the fly.
Are you going to use this map with the Web ADF Editor task?
If you're going to use this map inside a Web ADF editing application, there are some things you can do during the map authoring process to influence how the task looks and performs.
Most important, the editable layers in the map must come from an ArcSDE geodatabase to be used with the Editor task. For small deployments, this can be ArcSDE that uses Microsoft SQL Server Express, or for larger deployments, it can be ArcSDE with an enterprise RDBMS, such as Oracle. Other layers in your map that will not be edited do not have to come from an ArcSDE geodatabase.
Use symbols based on unique values if you want the user of the Editor task to quickly choose the feature type to create. The symbols from the unique value renderer are reflected on the Editor task buttons.
The above image shows what the Editor task looks like when the Buildings layer of the map has a unique value renderer applied. The renderer was based on a building type field. The task exposes buttons for creating each type of building. For example, clicking the green button allows the user to create a residential building.
Another way to help users of your Editor task is to configure your datasets to use attribute domains. When you use a domain on a field, the user of the task can fill in the value using a drop-down list instead of typing the value. These drop-down lists are helpful for quickly filling in attributes and avoiding data entry errors. The image below shows a drop-down list that appears in the Editor task when a domain is used for the Street Class field.
Are you going to use this map with geoprocessing in a Web application?
If you're doing geoprocessing in a Web application, you have the choice to designate an associated map service that determines the symbology of the task inputs and outputs. This requires that you select your model in ArcToolbox and drag it to the ArcMap table of contents, where it becomes a tool layer. You can set the input and output symbols of the tool layer before you publish the service.
If you don't add a tool layer to your map and you use the map in a geoprocessing Web application, the results will be drawn on the client. You will not be able to use complex symbologies this way.
For detailed discussion of the Web ADF Geoprocessing task and drawing the results on the server versus the client, see Tutorial: Publishing a geoprocessing service.
Are you going to perform distributed geodatabase operations on the server with this map?
If you want to use the ArcMap Distributed Geodatabase toolbar with this map service, you must include a geodatabase layer when you author the map. When you publish the map as a service, you can enable the Geodata Access capability. This creates an associated geodata service with the same name. With both the map and the geodata services running, you can perform data extraction and replication on the server using the ArcMap interface.
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 check the Network Analysis capability. This creates a Web service for executing network analysis tasks on your map.
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 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 will help the map to draw faster.
Do you want copyright text to be visible in Web applications you create with this map?
When Manager creates a Web mapping application, it searches for copyright information in the map document. If copyright information is found, a link appears in the corner of the map, which the user can click to view the credits on a floating panel. If you want copyright text to be available in this way, you need to display the data frame or layer properties in ArcMap. Click the General tab and type the copyright information in the Credits text box.
If you'll use your map in REST-based applications built with the ArcGIS API for JavaScript, Flex, or Silverlight, consider typing a Description. The description is available in the Services Directory and can be used by REST-ful application developers to implement their own acknowledgments and informational windows. The description also improves the searchability of your service.
What do you want the layer names and map feature descriptions to look like in the Web application's table of contents?
The layer names and map feature descriptions in the Web application's table of contents reflect any layer names or map feature descriptions that you typed in the ArcMap table of contents. The heading is not available in the Web Mapping Application table of contents, but the service name is displayed. See the images below for a comparison of the ArcMap table of contents and the Web ADF table of contents.