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.
The following tips are important for all map documents that will be published to 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.
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.
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--Complex symbols take longer to draw. 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.
You can find additional tips for simplifying styles in Displaying layers in interactive maps.
Simplifying symbols is most critical when using MXD-based map services. When possible, use MSD-based map services instead. MSD-based services take advantage of an optimized drawing engine that is able to quickly render both simple and complex symbols.
It's also important to understand that 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.
If you're going to use this map inside a Web 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.
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 Geoprocessing task and drawing the results on the server vs. the client, see Tutorial: Publishing a geoprocessing service.
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.
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.
The Mobile Data 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.
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.
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.