Fundamentals for creating tile packages
Using tile packages can make your maps run faster. When you create a tile package, the application can draw the entire map at several different scales and can store copies of the map images. The application can then distribute these images whenever someone asks for a map. It's much quicker for the application to hand out a cached image than to draw the map each time someone requests it. Another benefit of tile packaging is that the amount of detail in the image doesn't noticeably affect how quickly the server can distribute the copy.
Why should I create tile packages?
With tile packaging, the only time you pay the performance penalty for drawing the map is when you create the package. For this reason, creating the package might take a long time. However, the benefits of packaging make up for the time it takes to create the package. These are some of the main benefits of tile packaging:
- Performance: When you deploy tile packages, your users can get more done because they spend less time waiting for the map to draw.
- Quality: With tile packaging, performance isn't affected by how much detail is in the map. It doesn't matter whether or not you used shaded relief, transparency, or the Maplex labeling engine to create your package. A tile package is just a collection of images, and the application can return one cached image in more or less the same amount of time it can return any other cached image.
- Industry standard: Have you ever gone to a popular Internet mapping site and watched as the little square tiles fill in as you pan and zoom? Often, it takes just a fraction of a second for all the tiles to appear. That's because they're using caching. With tile packaging, you can achieve similar performance for your maps.
What happens during the caching process?
Tile packaging does not happen automatically. To make a tile package, you first need to design the map and share it as a tile package. Then, you'll set some cache properties and begin creating tiles.
When you create a tile package, you draw it at more than one scale so that users can zoom in and out of the map. When choosing properties for your package, you'll need to determine what scales you want to use for caching. If you're just trying out the tile format for the first time, you can let the computer pick some scales for you. However, you should usually pick your scales earlier so that you can design your map to look good at those scales. Write down the scales and use them as you do your cartographic design in ArcMap. When it's time to create the package, you can enter the scales into the scales section.
There are other properties that are important to understand when you create the cache. You can find out more by reading About tile packages.
The scales that you pick and the properties you set for the cache are the tiling scheme. Each package has a tiling scheme file that you can import when you create new caches so that all your caches use the same tile sizes and scales. This can help the performance of applications that contain more than one tiled package or cached services. Optionally, you can choose to use the well-known tiling scheme of ArcGIS Online, Google Maps, and Bing Maps so that you can easily overlay your caches with these online mapping services.
Can I cache all my maps?
A tile package represents a snapshot of your map at one point in time. Because of this, caches work best with maps that do not change frequently. These include street maps, imagery, and terrain maps.
If your data tends to change, you will want to recreate your tile packages to update the data. To understand whether your frequently changing map can still be cached, it helps to ask these questions:
How up-to-date does my map need to be?
If the data you see on the map needs to be live, with no time delay acceptable, then tile packaging is not appropriate. However, if a short delay is acceptable and the tile packaging can be performed within that time window, you can still use tile packaging.
How big is my tile package and how widespread are the changes to my data?
These two questions go together. A large tile package takes more time to create. It may only be practical to update your large tile package if you can isolate the changed areas and update those only. If the tile package is small, you may be able to quickly rebuild the entire package.
If the update cannot keep up with the changes in an acceptable amount of time, the map is not appropriate for tile packaging.
After considering the questions above, use tile packaging whenever it's appropriate. The performance benefit that you gain is probably worth the investment it takes to create and update the package.
Can I still get to the underlying data?
Although map caches represent pictures of the data, you can still allow others to perform identify, search, and query operations on your map service. These tools can get the geographic locations of features from the application and return the results. The application will draw the results in its native graphics layer format on top of the image.