The properties that you set for your map or image service cache can affect your success when creating and using tiles.
This topic explains the available map and image cache properties and how to make the best decisions for each. See Strategies for creating map cache tiles for more about creating the tiles.
Accessing the cache properties
You set cache properties on the Caching tab of the Service Editor dialog box. To access the properties, see Access map and image cache properties in ArcMap.
Once you open the Caching tab, you first need to choose the Using tiles from a cache option to draw the map or image service. If you choose the Dynamically from the data option, the server draws the map each time, and the map or image service does not use any cached tiles you've created.
The remainder of this topic explains the settings available on the Caching tab and its Advanced Settings subtab. Once you start creating the cache, some of these options, such as tile width and height, are not changeable unless you delete the existing cache and start over. For this reason, it's important to plan the tiling scheme and other properties for your cache ahead of time.
When you've finished setting the cache properties, right-click your service in the Catalog tree and click Manage Cache > Manage Tiles to begin creating tiles.
Caching tab settings
The following subsections describe cache settings you can specify on the Caching tab. Properties on the Advanced Settings subtab are described in a separate section below.
The tiling scheme includes the scale levels, tile dimensions, and tile origin for the cache. These properties define where tile boundaries will exist and are important to match when overlaying caches in some clients.
There are several options you can choose for the tiling scheme:
ArcGIS Online/Bing Maps/Google Maps
Choosing ArcGIS Online/Bing Maps/Google Maps allows you to overlay your cache tiles with tiles from these online mapping services. ArcGIS projects your source map on the fly to the required coordinate system of this tiling scheme, which is WGS 1984 Web Mercator (Auxiliary Sphere). If you want to increase performance when creating tiles, project your data and your data frame to this coordinate system prior to publishing the service.
One advantage of the ArcGIS Online/Bing Maps/Google Maps tiling scheme is that it's widely known in the web mapping world, so your tiles will match those of other organizations that have used this tiling scheme. Even if you don't plan to overlay any of these well-known map services, you can choose the tiling scheme for its interoperability potential.
The ArcGIS Online/Bing Maps/Google Maps tiling scheme may contain scales that would be zoomed in too far to be of use to your map. Caching at large scales can take up much time and disk storage space. For example, the largest scale in the tiling scheme is about 1:1,000. Caching the entire continental United States at this scale can take weeks and require hundreds of gigabytes of storage. If you aren't prepared to cache at this scale level, you can exclude it from your Levels of Detail range (Levels of detail subsection below).
Tiling scheme file
If you cannot use the scales or coordinate system of the ArcGIS Online/Bing Maps/Google Maps tiling scheme, you can create your own tiling scheme. Use the Generate Map Server Cache Tiling Scheme tool in the Server toolbox to generate a tiling scheme XML file. A lot of the settings you'll be asked to supply in this tool dialog box are described later in this topic. You can browse to your tiling scheme file whenever you create a cache, thereby importing all your preferred scales and settings.
Existing cached map/image service
Choose this option if you want to match the tiling scheme of an existing cached service. You'll be prompted to browse to the service.
Matching tiling schemes ensures that your tiles will overlay correctly in web applications and other mashups.
If you choose this option, your source map document should use the same coordinate system as the map whose tiling scheme you are importing.
When you choose this option, you're prompted for the number of scales you want, and specific scale values are suggested. The suggested scales increase or decrease by a power of 2 from 1:1,000,000, starting with the level closest to the extent of the source map document.
For example, if the source map document has an extent of 1:121,000,000, and three scale levels are defined, the following scale values are suggested:
In general, you should limit the number of suggested scales you request to 20 or fewer. If the full extent of your map covers a relatively small area (such as a city) you may not get as many scales as you request. You can manually add more scales using the Advanced Settings tab.
Once you're familiar with the cache creation process, it's best to choose your own scale levels instead of asking the software to suggest scales for you. If possible, you should choose the scales before you start designing your map. That way, you can design your map to look good at each of the scales.
Levels of detail
Tiling schemes often contain many scales. Depending on your map, you may want to forego caching some of the extremely large or small scales in your tiling scheme. ArcGIS examines the scale dependencies in your map and attempts to suggest a minimum and maximum range of scales for caching. You can adjust this range by moving the sliders on the Caching tab.
The remaining scales are not removed from your tiling scheme, but you cannot create tiles for them unless you return to the Caching tab and include them in the range.
This section describes properties on the Caching > Advanced Settings subtab of the Service Editor.
When you create a tiling scheme, the most important choice you make is the set of scales at which tiles can be created.
There are two places you can enter your scale list:
- You can enter your scales directly into the Generate Map Server Cache Tiling Scheme tool the first time you create the tiling scheme.
- When creating a cache, after you load a tiling scheme, you can modify the scale list in the Caching > Advanced Settings subtab of the Service Editor. This is a convenient place to enter scales if you're working with imagery, since you can type a pixel size in the list.
When you enter a scale, you can designate a ratio or the scale's denominator (for example, enter 36000 and you'll see 1:36,000 appear in the list).
If you enter a pixel size, you can type the pixel size value (in map units) to use for the generated tile. This option is sometimes useful when caching imagery. For example, you may want to add a scale to your cache where the pixel resolution is one meter.
One way to pick a set of scales is to determine the closest scale at which your users will need to view the map and double the scale's denominator until you reach a scale that contains your entire area of interest in just one or two tiles. For example, if you design a tiling scheme for a city, and the largest scale at which someone should view your map is 1:2,400, your scales can be 1:2,400; 1:4,800; 1:9,600; 1:19,200; 1:38,400, until you reach a scale that makes the entire city visible on your map.
Minimum cached scale
This is the minimum scale at which you want to create tiles. This does not have to be the smallest scale in your tiling scheme.
For example, you may have a tiling scheme that includes the scale 1:2,000,000, but the smallest scale at which you want anyone to create tiles is 1:500,000. You can set 1:500,000 as your minimum cached scale, and the smallest scale anyone can use when running the Manage Map Server Cache Tiles tool will be 1:500,000.
This property corresponds to the lower boundary of the Levels of Detail range you set on the Caching tab.
Maximum cached scale
This is the maximum scale at which you want to create tiles. This does not have to be the largest scale in your tiling scheme.
For example, you may have a tiling scheme that includes the scale 1:1,000, but the largest scale at which you want anyone to create tiles is 1:4,000. You can set 1:4,000 as your maximum cached scale, and the largest scale anyone can use when running the Manage Map Server Cache Tiles tool will be 1:4,000.
This property corresponds to the upper boundary of the Levels of Detail range you set on the Caching tab.
The server cache directory is the folder on disk where your cache tiles are stored. One server cache directory can hold multiple caches; however, you can add more than one server cache directory to your server. When you create an ArcGIS Server site, a server cache directory is created for you at a location you specify. For more information, see Server directories.
If you plan to add another GIS server machine to your site, you need to enable file sharing on the server cache directory so it can be seen by all participating machines. For more information, see Add a server directory in Server Manager and Configuring a multiple-machine deployment. Give the ArcGIS Server account write access to the server cache directory so that the server can successfully place the tiles in the directory. You can optionally remove write access when you finish creating your caches.
You can open the server cache directory to examine the cache tiles and tiling scheme file conf.xml. Another file, conf.cdi, contains the default extent information of the service and is required for viewing caches as raster datasets in ArcMap. A geodatabase named status.gdb contains information that ArcGIS shows in its cache status reports.
The tiles are organized into a directory hierarchy. The top-level directory has the same name as the map service, unless the service was created in a GIS server folder. If the map service is in a folder, the top-level directory is named <folder name>_<map service name>.
Under the top-level directory, you'll find a subdirectory for the particular data frame in the map being cached. Next, you'll find a single subdirectory _alllayers. Within that, you'll find subdirectories for each level of detail. The structure of these level-of-detail subdirectories varies depending on whether you're using the compact cache format or exploded cache format.
- If you're using the compact cache format, you'll see bundle files immediately within the level folders. These bundle files contain the tiles.
- If you're using the exploded cache format, you'll see subdirectories for each tile row, and finally, the actual image files that represent a particular column in the row.
Area of interest to cache
This setting determines which area of your map will have tiles created if you choose ArcGIS to build the cache automatically when the service is published. The options are as follows:
- Full extent of the map—This caches the full bounding box of all the data in the map. It is the default option. Custom full extents set through the Data Frame Properties in ArcMap will be honored.
- Current extent of the map—This caches the extent of the map document as currently published; in other words, the initial extent of the map service.
- Import from a feature class—This caches any areas intersecting the boundaries of features in a feature class that you select. For example, if you wanted to constrain tile creation to just the area covering California, you could browse to a simple feature class containing the California boundary.
Importing a feature class is the recommended option when your cache is large or your area of interest is not rectangular. See Map caching based on feature boundaries for tips on preparing and selecting a feature class for this purpose.
The area of interest you set here applies only to caches generated automatically at publish time. It is always overridden by the area of interest you set when you manually run the Manage Map Server Cache Tiles tool. If you do not explicitly set an area of interest using the Manage Map Server Cache Tiles tool, the full extent of the map is cached.
This setting determines what output image format the map service will use when it creates the tiles. Your choice of image format is important, because it determines the size on disk of the tiles, the image quality, and the ability to make the tile background transparent.
When you initialize a new cache, ArcGIS examines the layers in your map and selects a default image format for you. If your map contains only vector layers, the default is PNG. If at least one raster layer is detected, the default is MIXED.
You should examine this default and determine if it makes sense based on the purpose of your map. The following is a summary of the available image formats and their appropriate uses:
- PNG—For each tile, this format determines the PNG bit depth that will minimize tile storage space without sacrificing visual quality. It is appropriate for many vector maps, especially maps with few colors, maps with large swaths of one color, or overlay networks. If you're not sure which PNG format to use, try this first.
- PNG8—You can use PNG 8 for overlay services that need to have a transparent background, such as roads and boundaries. PNG 8 creates tiles of very small size on disk with no loss of information.
If your map uses antialiasing, you'll see higher-quality lines and labels if you use PNG or PNG 32 instead of PNG 8. If your map has a large number of colors due to gradient fills or hillshades, you may also want to use PNG or PNG 32.
- PNG24—You can use PNG 24 for overlay services, such as roads and boundaries, that have more than 256 colors (if fewer than 256 colors, use PNG 8). Do not use PNG 24 if your tiles will be viewed in Internet Explorer version 6 or earlier.
- PNG32—You can use PNG 32 for overlay services, such as roads and boundaries, that have more than 256 colors. PNG 32 is an especially good choice for overlay services that have antialiasing enabled on lines or text. PNG 32 creates larger tiles on disk than PNG 24, but the tiles are fully supported in all browsers.
- JPEG—Use this format for basemap services that have large color variation and do not need to have a transparent background. For example, raster imagery and very detailed vector basemaps tend to work well with JPEG.
JPEG is a lossy image format. It attempts to selectively remove data without affecting the appearance of the image. This can cause very small tile sizes on disk, but if your map contains vector line work or labels, it may produce too much noise or blurry areas around the lines. If this is the case, you can attempt to raise the compression value from the default of 75. A higher value, such as 90, may balance an acceptable quality of line work with the small tile size of the JPEG.
You can decide what image quality you consider acceptable. If you're willing to accept a minor amount of noise in the images, you can save large amounts of disk space by choosing JPEG. The smaller tile size also means the browser can download the tiles faster.
- MIXED—A mixed cache uses JPEG in the center of the cache with PNG 32 on the edge of the cache. Use the mixed mode when you want to cleanly overlay raster caches on other layers.
When a mixed cache is created, PNG 32 tiles are created anywhere that transparency is detected (in other words, anywhere that the data frame background is visible). The rest of the tiles are built using JPEG. This keeps the average file size down while providing you with a clean overlay on top of other caches. If you do not use the mixed mode cache in this scenario, you'll see an opaque collar around the periphery of your image where it overlaps the other cache.
- LERC—Limited Error Raster Compression
(LERC) is an efficient lossy compression method recommended for single-band or elevation data
with a large pixel depth, such as float, 32-bit, 16-bit, or 12-bit
data. LERC compresses 5 to 10 times better and 5 to 10 times faster
than LZ77 for float data. LERC is also better with integer data. When using integer data, and the error limit specified is 0.99 or
less, LERC is considered a lossless compression.
Elevation data, or surfaces, are mostly used within 3D views to represent the ground, such as a terrain model. You can have surfaces that do not represent the ground, such as the ozone layer, which is above the ground surface, or geological substrates, which are below the ground surface. When using a LERC compression method to serve surfaces that are not at ground level, it is strongly recommended to publish the data with all the levels of detail. This ensures that when you view the data, you do not zoom out beyond the coarsest resolution, which would stop rendering the content. This is less of an issue for elevation content that is contributing to the ground surface, because the surface can be used to fill in any gaps that may exist.
- If you select LERC, specify the compression value using the Compression dialog box. The compression represents the maximum tolerated error value that is applicable per pixel (not an average for the image). This value is specified in the units of the mosaic dataset. For example, if the error is 10 centimeters and the mosaic dataset is in meters, enter 0.1.
- LERC-based cache services do not resample to draw if the source data is not supported at a given scale or if overviews are not present. LERC-based cache services also contain a properties file that lists whether or not the service contains elevation data. To provide full coverage while drawing 3D scenes, LERC-based caches use a cache tile size half-a-pixel more than the standard 256 x 256.
- The LERC format uses a nontransform compression algorithm; the compression value or maximum error allowable value varies from 0 to 1,000.
Before committing to an image format for a large cache, build a small cache of a representative area of your map, and examine the tile quality and performance in a test application. If you'll be working with multiple caches, build a small test cache for each, and add them to a test application to make sure they overlay as expected. This allows you to make adjustments before you create the entire cache.
To make a small test cache, use the editing tools in ArcMap to create a feature class consisting of a small rectangle around the area you want to test. Then use the option at the bottom of the Manage Map Server Cache Tiles tool dialog box that allows you to create tiles based on the boundary of a feature class. Browse to the feature class containing your test area, and create the tiles.
Compression refers to the amount of JPEG compression that takes place when using JPEG or mixed image format caches. Higher values signify higher JPEG quality and therefore less compression. For imagery, values of 55 to 75 are usually sufficient without causing any visible loss of quality. For vectors and other sharply defined features or regions, a higher quality of 90 is recommended as a starting point.
Create tiles on demand
When this box is checked, tiles for previously uncached areas are added to the cache when they're first requested by a client. This is a good way to ensure that people always see a map when viewing your cache, even if you didn't have time to initially create all the tiles at every scale level.
Additional advanced settings
This section describes some advanced caching settings available on the Advanced button of the Caching > Advanced Settings subtab in the Service Editor. Some of these properties (tile origin, dots per inch, tile width, and tile height) can only be set when you generate a new tiling scheme using the Generate Map Server Cache Tiling Scheme tool.
Tile origin in map units
The tiling scheme origin is the upper left corner of the tiling scheme grid. The origin does not necessarily represent the point at which tiles begin to be created; that happens when the full extent of the map or area of interest feature class is reached. Using a common tiling scheme origin for your caches ensures that they can overlay each other in web apps.
In most cases, you should keep the default tiling scheme origin of the software. The default is the upper left point of the coordinate reference defined by the map document. If no coordinate reference is defined in the map document, ArcGIS determines a tiling scheme origin point by calculating the union of all layers in the cache and doubling the extent. The upper left coordinate of the result becomes the tiling scheme origin point.
If you change the tiling scheme origin to something other than the default, be aware that tiles can be created only in the map area to the lower right of the tiling scheme origin. If you want to cache only a certain area of your map, creating tiles based on a feature class boundary is a better option than changing the tiling scheme origin.
Dots per inch (DPI)
Dots per inch (DPI) refers to the resolution of the cache tiles that the server will generate. The default value of 96 is almost always sufficient unless you are working primarily on a network where the majority of your client machines have a different DPI. Be aware that adjusting the DPI affects the scale of the tiles.
Tile height and tile width
The default tile width and height is 256 pixels. It's recommended that you use 256 or 512. If you're building a cache that will overlay another cache, be sure to use the same tile width and height for both caches.
Choosing a smaller tile width and height may improve performance of the application requesting tiles from the cache, as less data will need to be transferred. However, with exploded caches, a smaller tile size results in a larger cache size and longer creation time.
You can choose whether to group your tiles for more efficient storage and mobility or store each tile as a single file. The following are the storage options:
- Compact—In compact format, each file in the cache contains a bundle of tiles. The bundles are 128 tiles wide by 128 tiles high, containing a maximum of 16,384 tiles. Compact caches copy much faster than exploded caches, and they take less space on disk.
- Exploded—In exploded format, each tile is stored as a file on disk. This makes it easier to see the tiles in your cache; however, it results in larger caches that take longer to create and can be cumbersome to copy.
The enormous number of files and folders in the cache can sometimes cause inefficiencies in copying utilities, including Windows copy and paste. For this reason, compact caches greatly reduce cache copying time. If you have an automatic cache update workflow that creates tiles on a staging server and copies them to a production server, it's recommended that you use compact caches. Additionally, if you have limited disk space available, you should use compact caches.
Allow clients to cache tiles locally
When this box is checked, Esri client applications, such as ArcMap, are allowed to keep a local cache of any tiles they retrieve from the server. This can help the client view the tiles more quickly when returning to the area. Clients must manually clear their cache to get any newer tiles from the server; therefore, consider unchecking this box if you'll be updating your cache frequently.
Allow clients to export cache tiles
The ArcGIS client APIs allow apps to download map tiles from the server for offline use. When you check the Allow clients to export cache tiles check box, you authorize these downloads to occur.
Large downloads of tiles can negatively affect your server performance and overwhelm the client device. Use the Limit export cache to setting to define the maximum number of tiles a client can request at once.
Exported tiles are placed in the server output directory. When you've allowed clients to export tiles, you may want to increase the maximum allowed age for files in the server output directory. The default of 10 minutes may not be long enough for the client to retrieve the tiles before they are cleaned up. See Edit a server directory in Manager for steps on how to make this edit.