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, see GRASS_HTMLMAXPOINTS below.) 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:


USAGE

Environment variables

Several environment variables effect the operation of HTMLMAP.

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

    Last changed: $Date: 2002/03/01 00:27:45 $