ArcGIS Server Map Cache Creation

It seems that more and more folks are looking to host their ArcGIS Server map services off site recently. From what we can tell, its due to a couple of factors. First, would be the total cost of ownership (think map servers, bandwidth, cache servers, web servers, database, personnel). Next in line is probably the complexity for keeping everything running smooth. Having done this for such a long time (MoIMS, ArcIMS alpha, to ArcGIS Server 9) we really know how to make these things hum pretty smooth. But, there is always something new to learn and figure out.

The big change with 9.2, but more so with 9.3 (wont even get into the changes at 10 - yet) was map cache. Map cache can be a real pain to create, but the payoff is huge. If done right, your sites will scream (shameless plug for our Map Cache Hosting service here and Map Service Hosting here). But, a few months ago, ESRI threw a monkey wrench into all those map caches we have been creating for 2 or 3 years now. The tiling scheme changed for their free online map services. To better align themselves with Google & Bing, they standardized their tiling scheme to web specific Mercator projection. I find it pretty good, for the most part. And, to ESRI's credit, they gave everyone ample time to start migrating. But, for us, it has been a bit tougher....We have many many (many) map caches to migrate over.

So, a couple of things that we have run into that I thought I would share. The new default tile size is 256 x 256. In a perfect world, that would be great. Smaller tiles give you that appearance of loading much quicker, which is great for the end user experience. However, if you are the person at the helm, creating this map cache, it can become a nightmare. We deal with nationwide, and even world wide map caches. using the new default 256 x 256 size creates 4 times the 'normal' 512 x 512 tile size. This adds up to a huge additional overhead, when moving cache around and processing it in general.

So, as many of us know, cache creation is very finicky. If you don't get it right, you could waste a day of work. I was curious to know if you could mix and match tile sizes (my custom ones at 512 x 512 and ESRI's at 256 x 256) when working with your own cache, and one of the new ESRI map service. While this may have been obvious to some, I didnt even think to try it, until today. To my pleasant surprise, the answer was yes! Thats going to save me a ton of time in the long run.

But, before embarking on one of these big cache migrations or creations, make sure to read ESRI's posts on the subject:

http://resources.esri.com/help/9.3/arcgisonline/about/Content/migrating_tiling.htm

http://resources.arcgis.com/content/kbase?fa=articleShow&d=37329

Have you run into the dreaded 'Failed to generate cache. All server contexts failed to cache map' error when creating your map cache? While I don't know exactly why, but it often seems due to high memory consumption. I recently was creating a big cache whose base data were lots of small mr sid rasters. Well, it didnt like it. It failed every single time. From what I could tell, the RAM required by each ArcSoc was in excess of 500 mb, and since I was running it with 8 instances, it just didnt have enough RAM to do the job. I wish the error was more descriptive though. If this tends to happen to you a lot, try lowering the number of instances it runs. Might help.

Lots of very exciting changes are coming with ArcGIS 10, so stay tuned.

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
Morten's Gravatar The ESRI Silverlight API can overlay any tilingscheme with any other tilingscheme. Only requirement is that the spatial reference is the same. This means the LODs and tile sizes doesn't have to match. As long as the coordinate system is the same, "it will blend". I know some of the other API's have slightly stricter requirements at the moment though.
# Posted By Morten | 4/9/10 9:32 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.9.1.002. Contact Blog Owner