NAME
HTMLMAP driver - driver to create HTML image maps
(drivers)
DESCRIPTION
The HTMLMAP driver allows the generation of HTML image maps for
area vector data. HTML image maps are used in conjunction with images
to provide unique URL targets for different portions of an image. The HTMLMAP
driver can create both client-side image maps embedded into HTML files, or
server-side image maps used by web server software.
Note that GRASS display commands that require the MOUSE will not work
correctly (or at all!)
Polygons can at most have 100 vertices (this limit imposed by HTML image map
formats.) The driver will attempt to trim polygons that have more that 100
vertices by removing vertices with the least amount of angle to the next
vertice. Also, any polygon that is entirely bounded by another polygon
will be discarded.
Text written to the driver before polygons are used as the HREF tag for
all subsequent polygons written. All polygons
that exist in a vector file will have the same HREF tag.
The only GRASS display commands that should be used with this driver are:
- d.text
- pass href information for resulting image maps.
- d.area
- draw polygons from a vector file.
USAGE
Environment variables
Several environment variables effect the operation of HTMLMAP.
- GRASS_WIDTH=xxx
the width of the image
map (default is 640).
- GRASS_HEIGHT=yyy
the height of the image
map (default is 480).
- GRASS_HTMLTYPE=type
the type of image mape to
create (default is CLIENT):
- CLIENT Netscape client-side image
map. (NAME="map")
- APACHE Apache/NCSA server-side image
map.
- RAW
Raw url and polygon vertices
( url x1 y1 x2 y2 .....
), suitable for conversion
to CERN server format, or any other format with user
supplied conversion program.
- GRASS_HTMLFILE=filename
specifies the resulting
file to store the html image map,
default is htmlmap. Files without absolute path names are
written in the current directory where the driver was started.
Any existing file of the same name is overwritten without
warning.
Typical usage
Start up the driver
d.mon start=HTMLMAP
d.mon select=HTMLMAP
Display text strings (HREF's) and polygons
echo "http://www.no-such-place.net/area51/" | d.text
d.area map=area51
echo "http://www.roswell-nm.net/little/green/men.html" | d.text
d.area map=roswell
Stop the driver when all polygon have been displayed.
This will cause a file named 'htmlmap' to be created in your current
directory.
d.mon stop=HTMLMAP
You will also want to create an image for your image map. Use the
CELL driver and other utilities to create .gif, .jpg, or
.png files
# using previous GRASS_WIDTH & GRASS_HEIGHT
d.mon start=CELL
d.mon select=CELL
d.rast map=terrain
d.area map=area51 fillcolor=white linecolor=blue
d.area map=roswell fillcolor=yellow linecolor=blue
d.vect map=states color=green
d.vect map=roads color=black
d.mon stop=CELL
# make the region the same as the newly created cell for ppm export
g.region save=saved.reg
g.region raster=D_cell
r.out.ppm -q input=D_cell output=alien.ppm
# use the netpbm utilities to create a gif (quantize if needed)
ppmquant 128 <alien.ppm | ppmtogif >alien.gif
# assemble some html with the image and the image map
echo '<html><body><img src="alien.gif" usemap="#map">' >alien.html
cat htmlmap >>alien.html
echo '</body></html>' >>alien.html
# don't forget to reset your region
g.region region=saved.reg
# take a look and test it out
netscape file:`pwd`/alien.html &
NOTES
HTMLMAP was adapted from the CELL driver in GRASS 4.3. Point-in-polygon
test code was lifted from Randolph Franklin's web page, see
http://www.ecse.rpi.edu/Homepages/wrf/
http://www.ecse.rpi.edu/Homepages/wrf/research/geom/pnpoly.html
If you create an HTML file with two or more images and image maps, you
will need to edit the map names. The HTMLMAP driver creates its map
with the name map. A small sed script can easily change the map name:
sed -e 's/NAME="map"/NAME="foomap"/' <htmlmap >foomap.html
SEE ALSO
celldriver,
XDRIVER,
d.text,
d.area
AUTHOR
Tom Poindexter
tpoindex@nyx.net