(Only the first part, the introduction. I’m not writing down the actual workshop :-)
Webgis means the user can view a dynamic map with just an internet browser: he doesn’t need a full-blown GIS package on his computer.
Basic setup: the user requests something of a generic webserver, which in turn
sends on the request to a map server. The UMN mapserver runs as a plain old
CGI script. Mapserver uses a configuration file *.map
, also called the
mapfile. This contains everything that the mapserver needs to know what to
do.
Mapserver supports lots of formats:
Shapefile and geotiff.
Various raster formats through GDAL: tiff, png, jpg.
OGR simple features library for vector data: tab, mif, dgn, arcinfo coverages, tiger etc.
Databases: postgis, arcsde, oracle spatial.
Some main features of UMN MapServer:
Focus on web mapping, not “real” GIS functionality.
Speedy and stable. A CGI script means that every web request gets a fresh instance of the software: so IF a problem crops up, the damage stays limited to that one request.
Multi-platform (linux/mac/windows).
Runs with every webserver through CGI.
WMS and WFS. Both as server and as client.
Support for lots of input formats.
Completely open source.
Diagrams in the map.
Lots of user.
Overview map, dynamic legend, scale.
UMN MapServer supports WMS. Some comments on that:
You can use every client to view the WMS data. Compatible…
… because WMS is a standard of the OGC. You can read the official specs. The page count of those specs is scary, but every one of those specs has 10-20 pages that form the real content, so it is practical to read it sometimes.
Mapserver can also be used in a cascading way as a WMS client.
WMS has a couple of possible requests: GetCapabilities, GetMap, GetFeatureInfo, GetLegendGraphic, DescribeLayer, Getstyles, PutStyles.
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):