
460
|
Chapter 8, Building the Geospatial Web
#91 Build Interactive Web-Based Map Applications
HACK
You can also include that URL in your web pages as an image:
<img src="/cgi-bin/mapserv?map=/var/www/html/mini.map&mode=map">
The map=/var/www/html/mini.map parameter points to the map file that
describes how the map will be generated. The second parameter,
mode=map,
causes MapServer to return an image file directly.
Arguably, allowing the user to set the full path to the map
file in the URL might constitute a security breach on some
systems. One way around having to allow this is to create a
shell script that hardcodes the map file in the shell environ-
ment before executing mapserv:
#!/bin/sh
export MS_MAPFILE=/var/www/html/mini.map
exec /var/www/cgi-bin/mapserv
Having done this, you can place that shell script in your cgi-
bin directory, and use it instead of using mapserv directly, in
which case you will no longer need to provide a
map= option
through the MapServer URL.
Adding Interactivity
Generating an image from passed parameters is just the tip of the map. You
can also create a full layer-based interactive map viewer with just a bit more
effort.
For this example, we’ll use a shapefile of local roads in Allegheny County,
available from http://www.pasda.psu.edu. The specific URL of the file is ftp://
pasda.cac.psu.edu/pub/pasda/padot/local/padot-locroads-allegheny_2001.zip.
Figure 8-10. The United States, ...