![Page 1: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/1.jpg)
1
Getting Started with MapServer, Part 1
Jeff McKennaTyler MitchellPerry Nacionales
![Page 2: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/2.jpg)
Open Source Geospatial Foundation2The MapServer Project
Outline
MapServer BackgroundBrief HistoryFeatures/Capabilities
MapServer Demo ApplicationCompilation/DownloadingInstallationDemo Application
Third Party Client/Management ToolsOverview of Third Party Client/Management Tools
![Page 3: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/3.jpg)
3
Background
A Brief History of MapServer(or MapServer's Brief History
![Page 4: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/4.jpg)
4The MapServer Project
MapServer: The Past
1994 - C Program Creates ArcPlot AMLs
1994 - NASA-sponsored ForNet Project1997 - Shapelib Library (LGPL or “MIT-type”)1997 - NASA-sponsored TerraSIP Project1998 - MapServer 3.2 Released as Open Source2001 - MapServer 3.4 2003 - MapServer 4.02007 - MapServer 5.0
ESRI plot file EPS file GIF file45 seconds/map
![Page 5: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/5.jpg)
5The MapServer Project
MapServer: The Present
Version 5.0 Released September, 200710+ Active Developers Around The World2,100+ Subscribers to MapServer-Users List40,000+ Global Applications DeployedFOSS4G 2007
![Page 6: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/6.jpg)
6The MapServer Project
MapServer: The Future
Open Source CommunityOpen Source Geospatial Foundation
https://www.osgeo.org/OGC Compliant
![Page 7: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/7.jpg)
7
Background
MapServer Features and Capabilities
![Page 8: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/8.jpg)
8The MapServer Project
What isn’t MapServer
A Desktop GIS! A Ready-To-Use Application (e.g. parcel mapping)Client-Based (e.g. isn't installed in your computer)Easy-To-Use, “Wizard” ConfigurableExpensive!
![Page 9: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/9.jpg)
9The MapServer Project
configfiles templates data
What is MapServer?
Application Development System for Web-Based MappingServer-BasedOpen SourceSupports OGC Web Services SpecificationsFastExtremely ConfigurableEasy-To-Use
client
Internet
MapServer/MapScript
web application
![Page 10: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/10.jpg)
10
Creating A MapServer Application
The Way to Web Mapping Nirvana
![Page 11: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/11.jpg)
Open Source Geospatial Foundation11The MapServer Project
Required and Optional Software
Any HTTP server that supports the CGI protocolApache, IIS, Tomcat, etc.
MapServer CGI program and utilitiesshp2img, shptree, sortshp, etc.
Other geospatial programs/utilitiesGDAL/OGR utilities (gdalinfo, ogrinfo, ogr2ogr, etc.)Proj.4 utilities (proj, cs2cs)GRASS, QGIS, etc.
![Page 12: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/12.jpg)
Open Source Geospatial Foundation12The MapServer Project
Downloading and Compiling
•Download the Source Codehttp://mapserver.gis.umn.edu/download
•Compile the Source CodeSee http://mapserver.gis.umn.edu/docs/howto/compiling_on_unixSee http://mapserver.gis.umn.edu/docs/howto/win32_compiling
•Download Pre-compiled Binary PackagesIf compiling isn't an optionMS4W for Windows, FGS for Linux, FWToolsMac OS XDebian and other Linux Distributions
![Page 13: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/13.jpg)
Open Source Geospatial Foundation13The MapServer Project
Installating MapServer (Packages)
•For MS4W (windows):Make sure you have no web server installed/runningUnzip the MS4W archive to the C: drive (or any drive)Using Windows Explorer (not Internet Explorer), navigate to C:\ms4wand double-click on README_INSTALL.htmlIf you are averse to reading READMEs (bad!), double-click on apache_install.bat
•For stand-alone binaries on Windows:Unzip archive in a temporary directoryCopy mapserv.exe to web server's CGI-BIN directoryCopy DLL's to system directory or to CGI-BIN directoryCopy Proj.4 directory to C:\
![Page 14: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/14.jpg)
Open Source Geospatial Foundation14The MapServer Project
Installating MapServer (Packages)
•For FGS (Linux):See http://www.maptools.org/fgs/index.phtml?page=install.html and http://www.maptools.org/fgs/index.phtml?page=readme.html
•For FWTools:Follow directions at http://fwtools.maptools.org/windows-main.html or at http://fwtools.maptools.org/linux-main.html
•For more platform specific instructions:Go to http://mapserver.gis.umn.edu/docs/howto and look for documents under the “Compiling” section
![Page 15: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/15.jpg)
Open Source Geospatial Foundation15The MapServer Project
Testing Your MapServer Installation
Open a web browser window and type: http://localhost/cgi-bin/mapserv (Linux/Unix/Mac) or http://localhost/cgi-bin/mapserv.exe (Windows)This should return the following message:
No query information to decode. QUERY_STRING is set, but empty.
If you didn't get the message above, check your installation and make sure that:
The web server has been restartedAll the required libraries are installed either in the system directory (e.g. C:\Windows\system32) or in the CGI-BIN directory (e.g. C:\Apache\cgi-bin)The MapServer CGI program (mapserv or mapserv.exe) is in the CGI-BIN directory
![Page 16: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/16.jpg)
Open Source Geospatial Foundation16The MapServer Project
Application Files and Directories
Application Directory: /data/www/ms101Map and HTML template file are located hereDemo Application template file: ms101final.htmlDemo Application map file: ms101.map
Web Root Directory: /data/www/ms101/htdocsHTML files (index.html) and web-readable imagesWeb Root Alias (Virtual Directory): /ms101Application URL: http://localhost/ms101/index.html
Temporary Files Directory: /ms4w/tmp/ms_tmpFiles created by MapServer goes hereAlias: /ms_tmp
MapServer CGI Program: /cgi-bin/mapserv(.exe)
![Page 17: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/17.jpg)
Open Source Geospatial Foundation17The MapServer Project
Creating a Demo Application
•Demo application directory structure
![Page 18: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/18.jpg)
Open Source Geospatial Foundation18The MapServer Project
Creating a Demo Application
All data are in “data” subdirectory
![Page 19: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/19.jpg)
Open Source Geospatial Foundation19The MapServer Project
Creating a Demo Application
TrueType fonts are in “fonts” subdirectory
![Page 20: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/20.jpg)
Open Source Geospatial Foundation20The MapServer Project
Creating a Demo Application
Template images are under the “images” subdirectory
![Page 21: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/21.jpg)
Open Source Geospatial Foundation21The MapServer Project
Creating a Demo Application
Symbol files are under the “symbols” subdirectory
![Page 22: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/22.jpg)
Open Source Geospatial Foundation22The MapServer Project
Creating a Demo Application
Map files, template files, and other web-readable files are in the “htdocs” subdirectory
![Page 23: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/23.jpg)
Open Source Geospatial Foundation23The MapServer Project
Creating a Demo Application
Define a web “alias” (virtual directory) in your web serverThe demo's alias looks like this in Apache
Alias /ms101 "/ms4w/apps/ms101/htdocs"<Directory "/ms4w/apps/ms101/htdocs">
AllowOverride NoneOptions Indexes MultiViewsOrder allow,denyAllow from all
</Directory>
This definition needs to go into Apache's httpd.confYou can also save it as a file and “Include” it in httpd.conf – see /ms4w/Apache/conf/httpd.conf
This Alias tells the web server where the urlhttp://localhost/ms101 is located.
![Page 24: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/24.jpg)
Open Source Geospatial Foundation24The MapServer Project
Example 1: The Map Object
Open “/ms4w/apps/ms101/htdocs/ms101.map” in your favorite text editor
“EXTENT” is the output extent in output unitsSIZE is the width and height of the web map in pixelsIMAGECOLOR is the default image background colorThe entire MAP FILE REFERENCE is available at:
http://mapserver.gis.umn.edu/docs/mapfile_referenceTo see the example map, open the URL:
http://localhost/cgi-bin/mapserv?map=/path/to/mapfile.map&mode=map
MAPNAME MS101_EXTENT -180 -90 180 90 # GeographicSIZE 800 400IMAGECOLOR 128 128 255
END
![Page 25: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/25.jpg)
Open Source Geospatial Foundation25The MapServer Project
Example 1: The MapServer Request
The request protocol: http://localhost/cgi-bin/mapserv.exe?map=/path/to/ms101.map&mode=mapSo, what's up with the output?
Remember the map file?SIZE 800 400IMAGECOLOR 128 128 255
![Page 26: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/26.jpg)
Open Source Geospatial Foundation26The MapServer Project
Example 2: Adding a Polygon Layer
LAYER # World polygon layer begins hereNAME world_polyGROUP worldDATA 'shapefile/Countries_area.shp'STATUS ONTYPE POLYGON
CLASSNAME 'The World'STYLECOLOR 220 220 220
ENDEND
END # World polygon layer ends here
Open “mapfiles/world_poly_layer.map” and append its contents to “ms101.map”, just before the “END” keywordView the resulting map with the following request:
http://.../cgi-bin/mapserv.exe?map=/.../ms101.map&layer=world_poly&mode=map
![Page 27: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/27.jpg)
Open Source Geospatial Foundation27The MapServer Project
Example 2 Output
![Page 28: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/28.jpg)
Open Source Geospatial Foundation28The MapServer Project
Example 3: Adding a Line Layer
Open “mapfiles/world_line_layer.map” and append its content to “ms101.map” just below the first layer and before the “END” keywordAgain, view the map by typing in the MapServer request
NAME country_lineGROUP worldDATA 'shapefile/Countries_area'STATUS ONTYPE LINE
CLASSNAME 'Country Boundary'STYLECOLOR 64 64 64
ENDEND
![Page 29: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/29.jpg)
Open Source Geospatial Foundation29The MapServer Project
Example 3 Output
![Page 30: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/30.jpg)
Open Source Geospatial Foundation30The MapServer Project
Example 4: Defining Layer Classes
Open the file “mapfiles/continents_layer.map”Here's a snippet of the file:
Add it to “ms101.map”, below the first layer.Make another request to view the map.
LAYER # World polygon classified by continents begins hereNAME continentsDATA 'shapefile/Countries_area'STATUS ONTYPE POLYGON
CLASSITEM 'NA3DESC'CLASSNAME 'Africa'EXPRESSION 'Africa'STYLECOLOR 255 128 128
ENDEND...
![Page 31: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/31.jpg)
Open Source Geospatial Foundation31The MapServer Project
Example 4 Output
![Page 32: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/32.jpg)
Open Source Geospatial Foundation32The MapServer Project
Example 5: Labeling
LAYER # World polygon classified by continents begins here...LABELCOLOR 64 64 64OUTLINECOLOR 212 212 212TYPE TRUETYPEFONT vera_sans-bold-italicSIZE 10ANTIALIAS TRUEPOSITION CCPARTIALS FALSEMINDISTANCE 250BUFFER 4
END...
Open the file “mapfiles/continents_label_layer.map”Here's a part of the file:
Replace the continents layer in “ms101.map” with this file.Make another request to view the map.
![Page 33: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/33.jpg)
Open Source Geospatial Foundation33The MapServer Project
Example 5 Output
![Page 34: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/34.jpg)
Open Source Geospatial Foundation34The MapServer Project
Example 6: Reprojection
...PROJECTION..."init=epsg:42304"...
END...
Open the file “mapfiles/output_projection_block.map”Here's a part of the file:
Append the contents of this file to “ms101.map”, just before the first layer definition.Open the file “mapfiles/layer_projection_block.map” and copy its content to each of the layers defined in ms101.Replace the map EXTENT with the content of “mapfile/ca_lcc_extent.map”Make another request to view the map.
![Page 35: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/35.jpg)
Open Source Geospatial Foundation35The MapServer Project
Example 6 Output
![Page 36: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/36.jpg)
Open Source Geospatial Foundation36The MapServer Project
Example 7: Adding Raster Data
Open “mapfiles/shadedrelief_raster_layer.map”LAYER # Shaded relief raster layer ends hereNAME 'shadedrelief'STATUS ONTYPE RASTERDATA 'GLOBALeb3colshade.jpg'
PROJECTION"init=epsg:4326"
ENDEND # Shaded relief raster layer ends here
Append the contents of this file to “ms101.map”, after the two polygon layers—world_poly and continentsView The MapRaster Data Access for more information
![Page 37: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/37.jpg)
Open Source Geospatial Foundation37The MapServer Project
Example 7 Output
Ugly? APPEND the following line just before the projection object: IMAGETYPE PNG24Refresh the browser
![Page 38: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/38.jpg)
Open Source Geospatial Foundation38The MapServer Project
Example 7 Output, Reloaded
You just changed MapServer’s default output image from 8-bit PNG to truecolor PNG (24-bit, RGB). By doing this, you also increased the file size of the output image—this will result in slightly longer rendering times and higher CPU usage.
![Page 39: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/39.jpg)
Open Source Geospatial Foundation39The MapServer Project
Example 8: Adding OGC WMS Layer
Open “mapfiles/wms_client_modis_layer.map”LAYER # MODIS WMS map from JPL...CONNECTIONTYPE WMSCONNECTION "http://wms.jpl.nasa.gov/wms.cgi?"METADATA"wms_srs" "EPSG:4326""wms_name" "BMNG""wms_server_version" "1.1.1""wms_format" "image/jpeg""wms_style" "Aug"
END...
END # Modis WMS image ends here
Append the contents of this file to “ms101.map”, after the “shadedrelief” layer
![Page 40: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/40.jpg)
Open Source Geospatial Foundation40The MapServer Project
Example 8: Adding OGC WMS Layer
Open “mapfiles/web_object_block.map”WEB...IMAGEPATH '/ms4w/tmp/ms_tmp/'IMAGEURL '/ms_tmp/'...
END
Append the contents of this file to “ms101.map”, before the output projection blockView The Map
![Page 41: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/41.jpg)
Open Source Geospatial Foundation41The MapServer Project
Example 8 Output
![Page 42: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/42.jpg)
Open Source Geospatial Foundation42The MapServer Project
Example 9: Adding Inline Feature
Open “mapfiles/inline_feature_layer.map”...FEATUREPOINTS5 390
ENDTEXT 'Atlas of Canada'
END...
Append the contents of this file to “ms101.map”, after the last layer and before the last “END” keywordView The Map
![Page 43: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/43.jpg)
Open Source Geospatial Foundation43The MapServer Project
Example 9 Output
![Page 44: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/44.jpg)
Open Source Geospatial Foundation44The MapServer Project
Example 10: Antialiasing
Open “mapfiles/agg_outputformat.map”...
OUTPUTFORMATNAME 'AGG_PNG‘DRIVER AGG/PNGIMAGEMODE RGB
END...
Append the contents of this file to “ms101.map”, above the projection objectChange the value of the IMAGETYPE keyword to ‘AGG_PNG’View The MapThe effects of this change will become more apparent once you are able to zoom-in on your map.
![Page 45: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/45.jpg)
Open Source Geospatial Foundation45The MapServer Project
Example 10 Output
![Page 46: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/46.jpg)
Open Source Geospatial Foundation46The MapServer Project
Example 11: SCALEBAR
Open “mapfiles/scalebar_object_block.map”SCALEBAR
IMAGECOLOR 255 255 255LABELCOLOR 0 0 0SIZE TINY
ENDSTYLE 1SIZE 167 3COLOR 0 0 0UNITS KILOMETERSINTERVALS 3TRANSPARENT TRUESTATUS EMBEDPOSITION LR
END
Append the contents of this file to “ms101.map”, after the output projection blockView The Map or just the scalebar itself
![Page 47: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/47.jpg)
Open Source Geospatial Foundation47The MapServer Project
Example 11 Output
Embedded Scalebar
The Scalebar image via “mode=scalebar”
![Page 48: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/48.jpg)
Open Source Geospatial Foundation48The MapServer Project
Example 12: LEGEND
Open “mapfiles/legend_object_block.map”LEGENDSTATUS ONLABELTYPE TRUETYPEFONT vera_sansCOLOR 0 0 0SIZE 8ANTIALIAS TRUE
ENDEND
Append the contents of this file to “ms101.map”, after the scalebar blockView The Legend
![Page 49: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/49.jpg)
Open Source Geospatial Foundation49The MapServer Project
Example 12 Output
The Legend graphic:
![Page 50: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/50.jpg)
Open Source Geospatial Foundation50The MapServer Project
Example 13: REFERENCE
Open “mapfiles/reference_object_block.map”REFERENCE
STATUS ONIMAGE '../images/CA_LCC_ref.png'SIZE 180 90EXTENT -4508654 -712571.045113 4622390.090226
3847236.954887 # CANADA LCCCOLOR -1 -1 -1OUTLINECOLOR 255 0 0
END
Append the contents of this file to “ms101.map”, after the legend blockView The Legend:
![Page 51: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/51.jpg)
Open Source Geospatial Foundation51The MapServer Project
Example 14: HTML Template
The previous examples dealt exclusively with mapfileobjects and how the affect the output map (or legend, reference, scalebar)
The mapfile you have done is practically complete and can be used in many client interfaces (like OpenLayers or ka-Map!)
The remaining examples deal with creating a custom HTML template that uses the mapfile you just created
HTML templates provide an interface that allows MapServer maps to be viewed (and interacted) on your web browser.
![Page 52: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/52.jpg)
Open Source Geospatial Foundation52The MapServer Project
Example 14: HTML Template
Open “templates/ms101.html”<html>...<body bgcolor="#FFFFFF" text="#000000"><h1 align="center">Getting Started with MapServer</h1><div align="center"><img src="[img]" align="center" border="1" />
</div></body>
</html>
Create a table within this file and add image tags for legend and reference:
Reference tag is [ref]Legend tag is [legend]
View The Map
![Page 53: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/53.jpg)
Open Source Geospatial Foundation53The MapServer Project
Example 14 Output
While not interactive, this example shows you simple way to create an HTML template and make use of MapServer CGI variablesTo see an interactive HTML template example, have a look at “ms101final.html”
![Page 54: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/54.jpg)
Open Source Geospatial Foundation54The MapServer Project
Example 15: QUERY
Open “mapfiles/world_query_layer.map”LAYER # World query layer begins here...STATUS ONTYPE QUERY...HEADER 'templates/countries_header.html'FOOTER 'templates/countries_footer.html'TOLERANCE 2CLASSTEMPLATE 'templates/countries_query.html'...
ENDEND # World query layer ends here
Append this file to “ms101.map”In “ms101.map”, replace web object template keyword to: TEMPLATE 'ms101final.html'
View the map, select a “query” mode, click on a country
![Page 55: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/55.jpg)
Open Source Geospatial Foundation55The MapServer Project
Example 15: QUERY, Continued
To see the HTML template query files used in this example…
Open “templates/header.html”<html><head><title>MapServer Demo Interface</title><link type="text/css" rel="stylesheet"
href="/ms101/ms35.css" /></head><body bgcolor=#FFFFFF><h1 align="center">MapServer Query Interface</h1>
Open “templates/footer.html”</body>
</html>
![Page 56: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/56.jpg)
Open Source Geospatial Foundation56The MapServer Project
Example 15: QUERY, Continued
Open “templates/countries_header.html”<h4><b>Layer: Countries</b>
</h4><table cellpadding=5 cellspacing=2 border=0><tr bgcolor=#CCCCCC><th>COUNTRY NAME</th><th>CODE</th><th>CONTINENT</th>
</tr>
Open “templates/countries_footer.html</table><p> </p>
Finally, open “templates/countries_query.html<tr><td>[NA2DESC]</td><td>[NA2]</td><td>[NA3DESC]</td>
</tr>
![Page 57: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/57.jpg)
Open Source Geospatial Foundation57The MapServer Project
Example 15 Output
Query Mode Selection:
![Page 58: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/58.jpg)
Open Source Geospatial Foundation58The MapServer Project
Example 15 Output
Query Result:
![Page 59: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/59.jpg)
Open Source Geospatial Foundation59The MapServer Project
The Finished Demo Application
The final mapfile is at /ms4w/apps/ms101/htdocs/ms101final.map
The final HTML template is at /ms4w/apps/ms101/htdocs/ms101final.html
Open a web browser and enter the following url: http://localhost/ms101/indexfinal.html
![Page 60: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/60.jpg)
60
MapScript
Exposing the MapServer API to Scripting Languages
![Page 61: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/61.jpg)
Open Source Geospatial Foundation61The MapServer Project
MapScript Overview
Extends MapServer capabilitiesSeamless Integration with Other ApplicationsUses SWIG (except PHP)Support for Several Languages:
PHPPythonPerlRubyJavaC#TCL/Tk
See the MapScript API Reference for more informationDemo: Tcl/Tk MapScriptDemo: PHP/MapScript
![Page 62: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/62.jpg)
62
Third Party Tools and Support
Client and Management Tools for MapServer Applications
![Page 63: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/63.jpg)
Open Source Geospatial Foundation63The MapServer Project
Third Party Tools/Support
Open Source Client ToolsMapLabChameleonka-Map! – DemoCartoWeb – DemoMapServer WorkbenchMapBenderMapBuilderOpenLayersPMapper – DemoPrimaGIS – DemoOthers
Proprietary Client ToolsNeapoljs
![Page 64: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/64.jpg)
Open Source Geospatial Foundation64The MapServer Project
Support and Other Resources
Support Available via Mailing ListsMapServer-UsersMapServer-Dev
Additional Support via Consulting/Services CompaniesMapServer Website: http://mapserver.gis.umn.eduMapTools: http://www.maptools.orgGDAL/OGR: http://www.gdal.orgPROJ.4: http://proj.maptools.orgOSGeo: https:www.osgeo.org,OSGeo Wiki: http://wiki.osgeo.org
![Page 65: Getting Started with MapServer, Part 1 - FOSS4G 2007 : Home2007.foss4g.org/workshops/W-09/GettingStartedWithMapServer2007.pdf · 1 Getting Started with MapServer, Part 1 Jeff McKenna](https://reader031.vdocuments.us/reader031/viewer/2022021811/5ccada6888c99364298c0c6d/html5/thumbnails/65.jpg)
Open Source Geospatial Foundation65The MapServer Project
Questions?