Before you build a tile package, it's important to think about the tiling scheme you will use and the resources that will be needed to build the package cache. You may also need to do extra design work on your map document to make sure that it is usable at each scale level in your tiling scheme.
Creating a large cache can take significant time and resources, so you want to make sure you'll be getting what you expect before you start the cache generation. If possible, run a test build of the cache on a smaller map area, or create just the first few levels of the cache to make sure that your images appear as you expect.
Designing maps that will be cached
When you create a paper map, it's visible at one scale only. Insets that show detailed areas of the map may use one or two additional scales. Fine-tuning your map for accurate generalization, symbology, and labeling can be a challenge even with this small number of scales. When you package a map that will be cached and viewed on a computer screen, you have the added responsibility of making sure the map is readable and useful at all cached scales.
Choosing scales and setting scale dependencies
You can ensure that your map is well designed by applying scale dependencies to labels and features. Examine the example cached images below. As you zoom in on the map, notice how the words and symbols change to convey more information. Road lines become thicker, and cities are represented by polygons instead of points. Similarly, the map switches to more detailed datasets, as the datasets used when zoomed out are too coarse to be useful at closer zoom levels. Streets and their labels only appear at the closest scales, since they would otherwise clutter the map. These scale-dependent changes help the map convey more information in an organized manner.
You can configure any features or labels on your map to only be visible at certain scales or to draw in different ways depending on the scale. The scale dependencies you set for your map layers and the scale levels you choose for your tiling scheme should be carefully coordinated. Any features to which you apply a scale dependency are useless unless your tiling scheme includes a scale level at which they are visible.
For example, if you have used scale ranges to reveal certain features when the user zooms in beyond 1:2,000, you do not want your tile package cache's closest scale to be 1:2,500, or the user will never see the features. Adding a 1:1,250 scale to the tiling scheme would ensure that users could see the features. If you didn't want to add the extra scale, you could change the scale range so the features appeared when zoomed in beyond 1:3,000.
If you are responsible for packaging a map that you cannot change, you can still design the tiling scheme to take advantage of the map's characteristics. If possible, open the map in ArcMap and examine the layer properties to determine if there are any scale-dependent layers and at which scales they turn on and off. If a layer does have a scale dependency, consider including a scale level in your tiling scheme at which the layer is visible. For example, if a layer is set to be visible between the scales 1:150,000 and 1:250,000, you can include 1:200,000 as a scale in your tiling scheme to ensure the layer appears in your cache.
Choosing a coordinate system
The data frame that you cache can use any coordinate system. However, if you will be overlaying your tile package with another tile package, you should use the same coordinate system for both. This also applies if you are overlaying your package with tiles from an online mapping service. ArcGIS Online services, Google Maps, and Microsoft Bing Maps all use the WGS 1984 Web Mercator (Auxiliary Sphere) projected coordinate system.
Planning layer visibility
Packaging combines all the layers in your tile package into one image. Consequently, you can't turn layers on and off in the final package. This behavior makes your cache fast. It's quicker for the server to get one image than to get many images.
So how do you keep the ability to turn layers on and off? One solution is to group related sets of layers in your map, then put each group in its own map document. Create a tile package from each map document.
For example, suppose you have a map document with these layers: Banks, Restaurants, Museums, Libraries, Shopping centers, Parcels, Roads, Rivers, County boundaries, Lakes, Parks, and Elevation.
If you're just using ArcMap to view the document, you can turn these layers on and off at will. However, if you are going to package this map using a tile package, you'll want to combine some of the layers. Examining the layer list, you might come up with these three logical groupings from which you could make separate map documents:
- Map document 1 (Points of interest)
- Banks
- Restaurants
- Museums
- Libraries
- Shopping centers
- Map document 2 (Cultural landscape)
- Parcels
- Roads
- Parks
- County boundaries
- Map document 3 (Physical features)
- Rivers
- Lakes
- Elevation
For each map document, you can create a tile package. Be sure to use the same tiling scheme for each package. Then you can overlay the three map services.
If you feel that there may be no need to view physical features separate from the cultural landscape, you could safely combine map documents 2 and 3 into one map document, thereby improving performance even more.
Anticipating cache creation time
When you create a tile package, applications such as those built with ArcGIS Runtime for WPF and Java must draw map images that cover the full extent of the area you designated for the cache at each scale level you indicated. Additionally, it must create the files and folder structure necessary to contain the cache.
The time needed to create the tile package also depends on the scale levels you have chosen, the amount of computer resources you have dedicated to building the tile package, and the density of information in the map. Even using a powerful machine, a large package can sometimes take days to generate. In many cases, the performance benefit gained from using the tile package still outweighs the long time necessary to create the tile package.
Choice of scale levels
When choosing the scale levels for your tile package, remember that the closer you zoom in to the map, the more tiles are required to cover the map extent and the longer it will take your package to generate. Every time you halve the scale's denominator, it takes four times as many tiles to cover a square area of the map. For example, a square map at 1:500 scale contains four times more tiles than a map at 1:1,000 scale, and a square map at 1:250 contains 16 times more tiles than a map at 1:1,000 scale.
To get an idea of how quickly the number of tiles in a tile package can increase, open your map in ArcMap. Zoom out so that you can see an area of the map in a space about 256 pixels wide by 256 pixels high. (This area will vary depending on your display settings. Chances are it's 2.5–3.25 inches [6.35–8.26 centimeters] on a side.) At this scale, it would take one cache tile at default settings to cover the area. Now halve the denominator of the current scale. (For example, if you were originally viewing the map at 1:40,000 scale, zoom in to 1:20,000.) At this scale, it would take four tiles to cover the same area. Halve the denominator again, and it would take 16 tiles to cover the area. This table shows how the number of tiles needed to cover the original square area would increase with each halving of the denominator. The first scale of 1:32,000,000 can cover an area approximately the size of the western United States in one 256 by 256 pixel tile.
Level | Scale | Number of tiles |
---|---|---|
1st level | 1:32,000,000 | 1 tile |
2nd level | 1:16,000,000 | 4 tiles |
3rd level | 1:8,000,000 | 16 tiles |
4th level | 1:4,000,000 | 64 tiles |
5th level | 1:2,000,000 | 256 tiles |
6th level | 1:1,000,000 | 1,024 tiles |
7th level | 1:500,000 | 4,096 tiles |
8th level | 1:250,000 | 16,384 tiles |
9th level | 1:125,000 | 65,536 tiles |
10th level | 1:62,500 | 262,144 tiles |
11th level | 1:31,250 | 1,048,576 tiles |
Density of information in the map
The tile package size and time needed to create the package are both affected by the density of information within the map. Areas of the map with many changing colors and patterns will yield larger-sized cache tiles than more homogenous areas. For example, maps with high-resolution raster images will probably cause large tile sizes, not because of the original image size on disk, but because of the variation in color and pattern between the image pixels.
Similarly, maps that contain many layers and take relatively long amounts of time to draw in ArcMap will typically require more time for creating a package. This is because the appropriate layers of the map are repeatedly drawn as it creates the tiles for each scale level.