views:

304

answers:

2

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?

+1  A: 

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.

Michael Todd
A: 

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: http://www.heatmapapi.com/HeatmapGenerate2WS.asmx. 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.

Ruz