How to build a cache with the same tile sizes and scales as ArcGIS Online

When building a map cache that will overlay ArcGIS Online in a .NET Web mapping
application, you need to match the tile sizes and tiling origin to that used by
ArcGIS Online. You also should make an effort to match as many scale levels as
practical with the ArcGIS Online scale levels. To quickly load this information
into the cache generation tool, you can use this
cache configuration file for ArcGIS Online
.

The illustration below shows how you can use the configuration file when
generating a map cache.

Browse to the tiling scheme and the scales will fill in automatically 

The closest scale level available in ArcGIS Online is about 1:4,500. If the area
you are caching is very large, this and some of the other close scale levels
may not be practical for caching. You can remove the scale levels by manually
editing the cache configuration file in an XML editor. Each scale level has an
LODInfo tag. Remove the entire tag to remove the scale level, as shown in the
example below:

Remove the LODInfo tag for each scale you want to delete 

-Sterling

This entry was posted in Services and tagged , , . Bookmark the permalink.

Leave a Reply

7 Comments

  1. sterlingdq says:

    The precise numbers are used to avoid tile overlap at the edge of the globe. Also, these particular scales were chosen because they work well with the built-in scale levels that ArcGlobe and ArcGIS Explorer use. See this post for more details: http://blogs.esri.com/Dev/blogs/arcgisserver/archive/2007/05/30/Creating-a-3D-globe-cache-from-a-2D-map-cache.aspx

  2. hoomanmoh says:

    There is a performance problem when a non-cached service is added. Here are 5 scenarios I am running:

    Scene 1) I only have one cached map service in my web app and that’s the local cached service. Peromance for map navigation(Pan) is less than 1-2 seconds

    Scene 2) I only have ESRI On Line Service (Street Map). It takes 2-3 seconds for each map navigation (Pan)

    Scene 3) I have only a non-cached map service coming from SDE-SQl, the navigation performance is 6-7 seconds.

    Scene 4) I combined the ESRI and Local cache together, performance still very good (3-4 seconds)

    Scene 5) I added the non-cached service, performance on navigation degrades significantly to 18-25 seconds. Worst is when I keep panning the cached map services can keep up but I think the non-cached map service just adds up to the pending tiles to the point that I can have several hundreds on pending tile reported on the status bar and I have to wait several minutes until it loads completely, if it ever does.

    I appreciate any comments on this.

  3. sterlingdq says:

    @Brett- All ArcGIS Online maps use the WGS 84 geographic coordinate system, so the data frame that you are caching must use this coordinate system in order to load the ArcGIS Online tiling scheme. I should have made that clearer in this post.

    We anticipate caching ArcGIS Online services in additional coordinate systems in the future.

  4. ajpfister06 says:

    If I remember correctly you have to first stop your service then change the number of instances in the service properties. then start it back up and it should recognize the new number you put in.

  5. sterlingdq says:

    The number of service instances you can use to create the cache is limited by the Maximum Number of Instances property on the map service you are trying to cache.

    For example, suppose you are trying to cache a map service named Japan and you want to use the ArcGIS Online tiling scheme from this post. Before you start caching, go into Manager, click the Services tab and find the Japan service in the list. Then click the Edit (pencil) icon and choose Pooling from the left menu. This is where you can increase the maximum number of instances that will be created.

    Keep in mind that 10 instances at a time is probably going to be too much to handle if you have ArcGIS Server running on just one machine. Somewhere between 2 – 4 concurrent instances is more reasonable for each SOC CPU you have devoted to caching.

  6. sterlingdq says:

    You should keep the tiling origin of X = -180 Y = 90. If you view a map of the world in WGS 1984 geographic coordinate system in ArcMap, this point is the upper-left corner of the world. Tiles will be created below and to the right of this point. Therefore the ArcGIS Online tiling origin encompasses any data that you can add to the map.

  7. sterlingdq says:

    Carol-

    Instead of editing the configuration file manually, you may try the following steps:

    1. Load the ArcGIS Online tiling scheme (cache configuration file) into the Generate Map Server Cache tool.

    2. Run the Generate Map Server Cache tool for a few seconds (just long enough to create the conf.xml file in the cache directory)

    3. Cancel Generate Map Server Cache

    4. Run Update Map Server Cache. This is a nice tool because it gives you a checkbox list of scales, so you can uncheck any scales that you don’t want to create without affecting the tiling scheme and without manually editing the configuration file.