Drawing differences between the ArcGIS drawing engines

Basemap layers and optimized map services in ArcGIS Server use a high-performance drawing engine to achieve better performance and drawing quality. This drawing engine provides excellent performance for all symbol types supported.

A street map displayed in ArcMap (left) and a street map displayed as an optimized map service (right)
The optimized map service drawing engine (right) includes features such as anti-aliasing to improve appearance.

Because this drawing engine is different from the drawing engine used in ArcMap or a standard map service, you should be aware of some important differences in the appearance of a map drawn in the optimized map service. The Prepare window provides warnings that inform you of many of these differences.

The Prepare window showing a message related to drawing differences
The Prepare window (opened from analyzing a basemap layer or via the Map Service Publishing toolbar) shows warnings for many drawing differences.

However, because the differences in appearance can be subjective, you should always verify the proper appearance of your map as it is displayed. If you are preparing a basemap layer, use the basemap layer in ArcMap to visualize any differences. Use the Prepare window, accessible on the Map Service Publishing toolbar, when publishing to an optimized map service. The following sections describe some of these differences in drawing and why they occur.

Text and character marker anti-aliasing

In ArcMap and in the standard map service, text and character marker anti-aliasing is controlled by the font smoothing settings that are configured in the machine's display settings. These settings are set per user and are not configured as part of the map service. Because of this, the behavior of font smoothing may be different when a map is published to the server as a standard map service.

The Windows Effects dialog, which is where font smoothing properties can be changed
Font smoothing settings vary between operating systems. The above dialog box is from Windows XP.

In the optimized map service, these settings are configured per service and stored as part of the Map Service Definition. These text anti-aliasing settings are accessed from the Options button on the Map Service Publishing toolbar.

The ArcGIS Server Options dialog
Text anti-aliasing settings are chosen from the Options button on the Map Service Publishing toolbar.

Text drawn in a basemap layer will always be drawn with the Force option. Note that labels in a basemap layer will always be drawn using the standard display in ArcMap and will respect the machine settings mentioned above.

Because the basemap layer and optimized map service drawing engine uses a different method of enabling text and character anti-aliasing, and the algorithms used to execute this anti-aliasing are different, the rendering of text and character markers may exhibit some differences when compared with a standard map service.

A comparison image showing text anti-aliasing vs. no text anti-aliasing in ArcMap
Left: ArcMap (no font smoothing). Right :Optimized map service with font anti-aliasing set to Force.

Coordinate rounding differences

In ArcMap and in the standard map service, elements of the on-screen display are specified with integer coordinates. If the real coordinate of a feature (for instance, a line or a marker) does not lie exactly on that integer coordinate, it will be rounded up or down. This can result in some inaccuracies, particularly in the case of very thin lines or lines with very thin elements such as cased lines. Lines whose sizes are less than one pixel at a given zoom level or display extent are rounded up to one pixel.

In ArcMap at 96 dpi, there's no visible difference between these two line symbols at 2.6 points (left) and 1.9 points (right).
In ArcMap at 96 dpi, there's no visible difference between these two line symbols at 2.6 points (left) and 1.9 points (right).

In basemap layers and optimized map services, the drawing engine can use subpixel coordinates to place and draw features on the map. This results in greater accuracy of feature placement and symbology.

Images of an optimized map service preview window with 2.6 and 1.9 point sizes.
In basemap layers and optimized map services, there is a definite difference between 2.6 points (left ) and 1.9 points (right).

However, if the map's symbology was originally designed in ArcMap, the appearance may be different in a basemap layer or optimized map service. This is especially evident in line symbology.

Line aliasing before and after fix
Left: Original line widths of expressway symbol rendered in optimized map service. Right: After correction—note that the casing lines no longer appear dashed in the corrected version.

See the section Designing Lines for a Specific Resolution in the topic Line aliasing in an optimized map service for more information on these issues and how to design line symbols for a given target resolution. In most cases, this issue will not occur in basemap layers, since basemap layers automatically correct this problem.

Simple symbols in basemap layers and optimized map service

Simple symbols (Simple Line Symbol, Simple Fill Symbol, and Simple Marker Symbol) as provided in ArcMap are displayed in a manner that can sometimes be inconsistent. Because of these inconsistencies in simple symbols, they may sometimes draw differently in a basemap layer or optimized map service. You might be informed of some of these differences by one of the analyzers in the Prepare window.

For instance, Simple Line Symbols using a dash or dash dot pattern do not honor a map's reference scale and will draw with different spacing depending on the dpi requested. In a basemap layer or optimized map service, these symbols honor the map's reference scale and do not change with the requested dpi.

For Simple Fill Symbol, the Style property is actually not available on the ArcMap user interface, but many developer samples and other third-party code snippets might create these symbols in a map. Styles other than esriSFSSolid are not supported in a basemap layer or optimized map service and will result in an error when analyzed.

For Simple Marker Symbol, the behavior of the simple markers changes depending on the size at which they are displayed, causing some variations in their size and shape.

Basemap layers and optimized map services always display marker symbols at the requested size. In the standard map service or ArcMap, when a simple marker symbol's size is below a certain threshold, it will draw no smaller. This means that when this threshold is reached, the basemap layer or optimized map service continues to display these symbols at an accurate size, whereas the standard map service and ArcMap do not, resulting in an apparent mismatch.

Line decorations in basemap layers and optimized map services

Line symbols containing line decorations in ArcMap, such as line arrowhead, will not draw the decoration when the decoration is larger than the line length of the feature being decorated. The drawing engine used by basemap layers and optimized map services will always draw line decorations regardless of the size of the line. At some scales, this can lead to a more cluttered appearance than in ArcMap, but line decorations are drawn consistently and predictably.

Color in basemap layers and optimized map services

The drawing engine used by basemap layers and optimized map services uses a color management engine. Because of this, some colors may not exactly match the appearance of the ArcMap standard display.

The ArcMap application and standard map services do not utilize color management. In particular, you may notice differences in color when using the following:

Viewing a basemap layer in ArcMap or by using the Preview window opened from the Map Service Publishing toolbar allows you to evaluate the appearance of the map using the new graphics engine and determine whether the colors and symbology are acceptable.

One thing that can be done to minimize the color differences in an optimized map service is to change the monitor settings within ArcMap. This can be useful when authoring a map for use in an optimized map service.

To access the monitor settings, on any Symbol Properties dialog box, click the drop-down menu on the color swatch and choose More Colors.

The simple color picker

On the Color Selector dialog box, click the arrow button in the upper right corner and choose Monitor Setup.

The color selector dialog

On the Monitor Setup dialog box, change the Gamma setting to 2.2 and click OK to close the dialog box.

The monitor setup dialog

This will change ArcMap to use a gamma value that more closely matches the color profile used by the drawing engine of basemap layers and optimized map services and should result in more closely matched color transformations.

NoteNote:

This setting will only affect the appearance of maps drawn by the user and the computer on which this modification is performed. This also applies to maps served as standard map services.

Font handling differences in basemap layers and optimized map services

Fonts are handled slightly differently in a basemap layer or optimized map service when compared with ArcMap or the standard map service. There are two main differences:

Faux italic or faux bold refers to situations where a font is not available in the bold or italic styles, or the combination of properties does not have a corresponding font installed. For instance, a user might have Verdana Bold and Verdana Italic but be missing Verdana Bold Italic.

In these cases, ArcMap or the standard map service attempts to simulate these properties by graphically skewing (italic) or thickening (bold) the original font.

The faux italic version of a font in ArcMap (left) and the actual font displayed in an optimized map service without faux properties (right)
The faux italic version of a font in ArcMap (left) and the actual font displayed in an optimized map service without faux properties (right)

This does not often correspond visually to the actual bold or italic version of the typeface. Indeed, for some fonts (such as the ESRI fonts designed for use as marker symbols), it does not make sense to display them in bold or italic styles. Basemap layers and optimized map services only display with fonts and font styles that are available on the system.

The faux bold version of a font in ArcMap (left) and the actual font displayed in an optimized map service without faux properties (right)
The faux bold version of a font in ArcMap (left) and the actual font displayed in an optimized map service without faux properties (right)

Always ensure that your text renders as you expect. If you do not see bold or italic properties in your text, check to be sure that you have that particular style of typeface available on your system.

Font linking and font fallback

Fonts contain definitions for specific characters (such as the Latin letter A, Chinese glyph qian [qian], and so forth) in different character sets (such as Western Europe or Cyrillic) as determined by their creators. Font fallback and font linking are methods of displaying characters that do not actually exist in the requested font by drawing them in another similar font that does contain them. These methods are commonly used to display Latin characters with a font that only contains East Asian characters, or vice versa.

In cases like these, the standard ArcMap display uses Windows GDI (graphics device interface, a graphics system built into Windows) to attempt to link to another font that contains the missing glyphs so the text string can be displayed despite the missing characters. In many cases, this results in an odd appearance or behavior due to mismatches in kerning or other characteristics, in addition to other differences between the original font and the linked fallback font (see image below).

Font fallback
In this case, fallback is occurring for the Thaana text in ArcMap (left). Note the strange spacing of glyphs. The optimized map service renders boxes, as the characters are not present in the font Arial Unicode MS.

Due to these and other issues, relying on font fallback to render the proper glyphs is not a recommended practice for any map. In a basemap layer or optimized map service, glyphs that are not present in the requested font will not be rendered. Preview your basemap layer in ArcMap or your map service in the Preview window to determine cases in which this occurs.

In general, the best practice is to utilize a font that contains glyphs for the character set you are attempting to use. In the example above, the selected font Arial Unicode MS is missing the Thaana character set. To ensure that the text renders correctly, use inline text formatting tags to switch to a font containing Thaana characters, such as MV Boli.

Avoiding font fallback by using formatting tags
Using formatting tags ensures that the proper font is used to render the Thaana character set, resulting in better appearance in both ArcMap (left) and the optimized map service (right).

One way to determine whether a font is falling back is to copy and paste the text into WordPad. Then select the text that you suspect may be using font fallback. If the font name changes relative to the placement of the cursor in the string, this font can be used instead of the font specified in ArcMap.

Viewing font fallback in WordPad
The Syriac text above is displayed in the font Estrangelo Edessa when selected in WordPad. The annotation it was copied from was set to Arial Unicode MS. This change in the font indicates that fallback will occur.

Font substitution

A similar technology, font substitution, is a method of displaying text in a different font when the requested font is not present on the system. For instance, if a map contains text that uses the font Helvetica but Helvetica is not installed on the machine, the text will appear in Arial instead.

Basemap layers and optimized map services can utilize font substitution just as the standard map service or ArcMap can. However, in general, it is a good practice to ensure that the fonts used in the map are available on the machine that will use the map, including the machine on which ArcGIS Server resides.

Related Topics


8/20/2010