Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

ArcGIS Server lets you create cached map services. These can be consumed by various applications (ArcGIS Desktop, web apps, etc) I would like to get an idea on which areas of my cache are getting hit the most. I would like to visualise these results using a heat map overlaid onto the same cached map. I was thinking of utilising something like the HeatMapsAPI and one of the APIs provided by ESRI (Javascript API should be sufficient)

I know the cached maps might be slightly changing at v10 of ArcGIS Server, but im trying to think of the best way of determining which tiles get requested the most without putting a significant load on either ArcGIS Server or the web server (IIS).

I was originally thinking looking at the actual cache directory under the arcgiscache folder, and perhaps hooking into the Date Accessed attribute (but have little idea on how to actually implement this).

I would like to hear from anyone who has experience with ArcGIS Server, on if they have any suggestions on how to do this?

share|improve this question

migrated from Mar 9 '11 at 22:05

This question came from our site for professional and enthusiast programmers.

How do I go about getting this moved to the GIS site? – Simon Dec 27 '10 at 10:14
up vote 7 down vote accepted

The company I work for (Latitude Geographics) makes a product called Geocortex Optimizer that can do this for you.

It analyzes both your ArcGIS Server logs and your IIS logs to determine what parts of your maps are being requested:

Sample Heat Map

That's the results of some stress testing we did on it, so it's not as representative of the final result. (Normally you only get really "hot" zones over urban centers)

If you want more information, use the "Request a demo" function on our web site.

share|improve this answer

Another method is to build something into the client which records the usage. (This is what the HeatMapAPI is basically doing.)

Overly simplified: Record the extents or user clicks, or tiles into a database. Then create a ArcGISServer service that renders from that database. Add this as a layer to the map.

You could also try using the HeatMapsAPI service also: They have examples for server-side clients. From the looks of the service, I suspect it could be utilized from a client-side client also.

share|improve this answer

You might be able to use your web server log to find out which images were requested. It's not ideal since you would have to "backtrack" from the file name and directory to determine where the user viewed, but you'll have access to the "Level" they viewed (since it's part of the folder structure) in addition to the image file names requested.

Once you've built up a decent amount of information from the log, you could look at the images most frequently accessed (i.e. physically view them) to determine where the requests are being made.

share|improve this answer

Although not a direct answer for this Question, perfHeatMap is a great tool for understanding which parts of your dynamic map services render the slowest, visualising the output as a heatmap.

This tool samples a defined geographic area of interest at defined scales by performing REST exportMap operations against a map service. The resulting feature class may be displayed via ArcMap with a graduated color scheme on the response time.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.