/legend_resource

A Rails app to create legend resources for existing ArcGIS Server map services

Primary LanguageRuby

legend_resource - a Rails 3 app that creates legends for ArcGIS Server map services

The idea behind legend_resource is to create a no-config option for creating legend
images for ArcGIS Server services.  This uses the arcserver.rb and gstore gems.

# Installation

1) Fork/clone this github repo
2) cd into legend_resource dir
3) bundle install (If you get a message about Bundler versions, use gem install bundler --pre)
4) Deploy or start the server (rackup)

# Config options.
There is a Google Storage backend. To use it:
1) Change gstore.yml and modify the access/secret key and bucket information.
2) Uncomment the line in config.ru that sets the filehandler

There is an S3 Backend. To use it:
1) Change amazon_s3.yml and modify the access/secret key and bucket information.
2) Uncomment the line in config.ru that sets the filehandler

(I know this isn't very Ruby way-ish, but I am still learning....)

By default, the sinatra app just uses the File module to write images to the file system.

# Windows users
If you are on Windows, your life is a bit harder (for various reasons ;))  You'll have to manually install
the rmagick gem...go here to find out how http://rmagick.rubyforge.org/install-faq.html#win

# Usage
Presuming your app is running at http://localhost:3000 and you want a legend for a 
map service running at http://server.arcgisonline.com/ArcGIS/services/Demographics/ESRI_Diversity_US_2D/MapServer

## Getting a Legend
- Issue an HTTP GET to http://localhost:3000/legend/server.arcgisonline.com/Demographics/ESRI_Diversity_US_2D
--This will create a PNG image of the legend.  NOTE:  All subsequent calls to this URL will return the cached
image. 

## Deleting a Legend
- Issue an HTTP DELETE to http://localhost:3000/legend/server.arcgisonline.com/Demographics/ESRI_Diversity_US_2D
-- This will delete the cached image.  The next HTTP GET to this URL will create a new one.  I use curl for this

That's it for now.  It didn't make sense to me to add PUT or POST actions to the resource, since it generates the
legend.  Maybe a future version will allow you to PUT a legend for a service...

Glenn