Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
MapServer DocumentationRelease 6.0.3
The MapServer Team
November 14, 2012
Contents
1 About 3
2 An Introduction to MapServer 52.1 MapServer Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Anatomy of a MapServer Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Installation and Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Windows Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.2 Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.3 Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.4 Skills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Introduction to the Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.1 MAP Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4.2 LAYER Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Raster Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Vector Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.3 CLASS and STYLE Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4.4 SYMBOLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4.5 LABEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.6 CLASS Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.7 INCLUDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4.8 Get MapServer Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.4.9 Get Demo Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Making the Site Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.5.1 Adding Data to Your Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.5.2 Vector Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5.3 Raster Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5.4 Projections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6 Enhancing your site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.6.1 Adding Query Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.6.2 Attribute queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.6.3 Spatial queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.6.4 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.6.5 Data Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
i
2.7 How do I get Help? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.7.1 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.7.2 Users Mailing List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.7.3 IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.7.4 Reporting bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.7.5 Gallery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.7.6 Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.7.7 Test Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.7.8 Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 MapServer Tutorial 273.1 Tutorial background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1 Tutorial Timeframe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.1.2 Tutorial Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.1.3 Before Using the Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.1.4 Windows, UNIX/Linux Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Executable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.5 Other Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2 Section 1: Static Maps and the MapFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3 Section 2: CGI variables and the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 HTML Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.4 Section 3: Query and more about HTML Templates . . . . . . . . . . . . . . . . . . . . . . . . . . 303.5 Section 4: Advanced User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4 Installation 334.1 Compiling on Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.1.2 Obtaining the necessary software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Required External Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Highly Recommended Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Optional External Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.3 libgd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Minimum libgd versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35libiconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Pre-packaged/system libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35MacOSX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35FreeType support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351px Anti-Aliasing and segfaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Curved label support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.4 Anti-Grain Geometry Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.1.5 OGC Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
WMS support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36WFS support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.6 Spatial Warehousing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38PostGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38ArcSDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Oracle Spatial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.7 Compiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.1.8 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
MapServer binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Common problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
ii
Where to go once you’ve got it compiled . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2 Compiling on Win32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.2 Compiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.3 Set up a Project Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2.4 Download MapServer Source Code and Supporting Libraries . . . . . . . . . . . . . . . . . 424.2.5 The MapServer source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Required Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Optional Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2.6 Set Compilation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.7 Compile the Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Compiling libcurl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.8 Compile MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2.9 Compiling MapServer with PostGIS support . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2.10 Common Compiling Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.2.11 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.2.12 Other Helpful Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2.13 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3 PHP MapScript Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Which version of PHP is supported? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48How to Get More Information on the PHP/MapScript Module for MapServer . . . . . . . . . 48
4.3.2 Obtaining, Compiling, and Installing PHP and the PHP/MapScript Module . . . . . . . . . 48Download PHP and PHP/MapScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Setting Up PHP on Your Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Build/Install the PHP/MapScript Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Installing PHP/MapScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Example Steps of a Full Windows Installation . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.3 FAQ / Common Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Questions Regarding Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Questions About Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4 .NET MapScript Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.4.1 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Win32 compilation targeting the MS.NET framework 1.1 . . . . . . . . . . . . . . . . . . . . 54Win32 compilation targeting the MS.NET framework 2.0 . . . . . . . . . . . . . . . . . . . . 54Win32 compilation targeting the MONO framework . . . . . . . . . . . . . . . . . . . . . . 54Alternative compilation methods on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . 55Testing the compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Linux compilation targeting the MONO framework . . . . . . . . . . . . . . . . . . . . . . . 55OSX compilation targeting the MONO framework . . . . . . . . . . . . . . . . . . . . . . . 55
4.4.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.4.3 Known issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Visual Studio 2005 requires a manifest file to load the CRT native assembly wrapper . . . . . 56Manifests for the dll-s must be embedded as a resource . . . . . . . . . . . . . . . . . . . . . 57Issue with regex and Visual Studio 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57C# MapScript library name mapping with MONO . . . . . . . . . . . . . . . . . . . . . . . 57Localization issues with MONO/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4.4 Most frequent errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Unable to load dll (MapScript) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4.5 Bug reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.5 IIS Setup for MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.5.1 Base configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.5.2 Php.ini file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
iii
4.5.3 Internet Services Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.5.4 Under the tree for your new website - add virtual directories for . . . . . . . . . . . . . . . 604.5.5 Test PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.5.6 Mapfiles for IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.5.7 Configuration files: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.6 Oracle Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.6.1 Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.6.2 System Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.6.3 Compile MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.6.4 Set Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
System Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Setting the Apache Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Create mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Testing & Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5 Mapfile 675.1 Cartographical Symbol Construction with MapServer . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.1.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Multiple Rendering and Overlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Symbol Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70MapServer and symbol specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.1.3 Using Cartographical Symbols in MapServer . . . . . . . . . . . . . . . . . . . . . . . . . 71Output formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Symbol units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Scaling of Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.1.4 Construction of Point Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Symbols of TYPE vector and ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Symbols of TYPE truetype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Symbols of TYPE pixmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Symbol definitions for the figure that demonstrates point symbols . . . . . . . . . . . . . . . 74Combining symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.1.5 Construction of Line Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Overlaying lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Use of the PATTERN and GAP parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Use of the OFFSET parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Asymmetrical line styling with point symbols . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.1.6 Area Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Hatch fill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Polygon fills with symbols of TYPE pixmap . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Polygon fills with symbols of TYPE vector . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Polygon outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.1.7 Examples (MapServer 4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Basic Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Complex Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.1.8 Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Changing the center of a point symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.1.9 Mapfile changes related to symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145.1.10 Current Problems / Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
GAP - PATTERN incompatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145.1.11 The End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.2 CLASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.3 CLUSTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.3.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
iv
5.3.2 Supported Layer Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185.3.3 Mapfile Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185.3.4 Mapfile Snippet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185.3.5 Feature attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195.3.6 PHP MapScript Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195.3.7 Example: Clustering Railway Stations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Mapfile Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Map Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.4 Display of International Characters in MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215.4.1 Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.4.2 Related Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.4.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.4.4 How to Enable in Your Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Step 1: Verify ICONV Support and MapServer Version . . . . . . . . . . . . . . . . . . . . . 122Step 2: Verify That Your Files’ Encoding is Supported by ICONV . . . . . . . . . . . . . . . 123Step 3: Add ENCODING Parameter to your LABEL Object . . . . . . . . . . . . . . . . . . 123Step 4: Test with the shp2img utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.4.5 Example Using PHP MapScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245.4.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.5 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1255.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
String quotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Quotes escaping in strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Using attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Character encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.5.2 Expression Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127String comparison (equality) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Regular expression comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.5.3 “MapServer expressions” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Logical expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130String expressions that return a logical value . . . . . . . . . . . . . . . . . . . . . . . . . . 130Arithmetic expressions that return a logical value . . . . . . . . . . . . . . . . . . . . . . . . 131Spatial expressions that return a logical value (GEOS) . . . . . . . . . . . . . . . . . . . . . 132String operations that return a string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Functions that return a string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132String functions that return a number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Arithmetic operations and functions that return a number . . . . . . . . . . . . . . . . . . . . 133Spatial functions that return a number (GEOS) . . . . . . . . . . . . . . . . . . . . . . . . . 133Spatial functions that return a shape (GEOS) . . . . . . . . . . . . . . . . . . . . . . . . . . 133Temporal expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.6 FEATURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355.7 FONTSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.7.1 Format of the fontset file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1365.8 GRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.8.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1375.8.2 Mapfile Parameters: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1375.8.3 Example1: Grid Displaying Degrees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1375.8.4 Example2: Grid Displaying Degrees with Symbol . . . . . . . . . . . . . . . . . . . . . . . 1385.8.5 Example2: Grid Displayed in Other Projection (Google Mercator) . . . . . . . . . . . . . . 139
5.9 INCLUDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1405.9.1 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1415.9.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.10 JOIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425.10.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
v
5.10.2 Supported Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425.10.3 Mapfile Parameters: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425.10.4 Example 1: Join from Shape dataset to DBF file . . . . . . . . . . . . . . . . . . . . . . . . 143
Mapfile Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Ogrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
5.10.5 Example 2: Join from Shape dataset to PostgreSQL table . . . . . . . . . . . . . . . . . . . 144Mapfile Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Ogrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.10.6 Example 3: Join from Shape dataset to CSV file . . . . . . . . . . . . . . . . . . . . . . . . 145Mapfile Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145CSV File Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Ogrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Template (prov.html) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.10.7 Example 4: Join from Shape dataset to MySQL . . . . . . . . . . . . . . . . . . . . . . . . 146Mapfile Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.11 LABEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1475.12 LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515.13 LEGEND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595.14 MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1605.15 OUTPUTFORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1635.16 PROJECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.16.1 Important Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1685.16.2 For More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.17 QUERYMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1685.18 REFERENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1685.19 SCALEBAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1695.20 STYLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1705.21 SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1745.22 Symbology Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5.22.1 Example 1. Dashed Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1765.22.2 Example 2. TrueType font marker symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775.22.3 Example 3. Vector triangle marker symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775.22.4 Example 4. Non-contiguous vector marker symbol (Cross) . . . . . . . . . . . . . . . . . . 1775.22.5 Example 5. Circle vector symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1785.22.6 Example 6. Downward diagonal fill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1785.22.7 Example 7. Using the Symbol Type HATCH (new in 4.6) . . . . . . . . . . . . . . . . . . . 1785.22.8 Example 8. Styled lines using GAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
5.23 Templating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1795.23.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1805.23.2 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181Image Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Map Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.23.3 Example Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1885.24 Union Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
5.24.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1905.24.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
vi
5.24.3 Mapfile Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1905.24.4 Feature attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1915.24.5 Classes and Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1915.24.6 Projections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1915.24.7 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Mapfile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191PHP MapScript Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5.25 Variable Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1945.26 WEB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1945.27 XML Mapfile support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5.27.1 Enabling the support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1965.27.2 Usage: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5.28 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
6 MapScript 1996.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
6.1.1 Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1996.1.2 Documentation Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1996.1.3 fooObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
fooObj Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199fooObj Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
6.1.4 Additional Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2006.2 SWIG MapScript API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
6.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Documentation Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202fooObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202Additional Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.2.2 MapScript Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2026.2.3 MapScript Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
classObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203colorObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205errorObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206fontSetObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206hashTableObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206imageObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207intarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208labelCacheMemberObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208labelCacheObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209labelObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209layerObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211legendObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217lineObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218mapObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218markerCacheMemberObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224outputFormatObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224OWSRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225pointObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226projectionObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227rectObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228referenceMapObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228resultCacheMemberObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229resultCacheObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229scalebarObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
vii
shapefileObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230shapeObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231styleObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233symbolObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235symbolSetObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236webObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
6.3 PHP MapScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386.3.2 Versions Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386.3.3 How to Get More Information on PHP MapScript . . . . . . . . . . . . . . . . . . . . . . . 2396.3.4 Important Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396.3.5 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396.3.6 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2406.3.7 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
classObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241clusterObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242colorObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242errorObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243gridObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244hashTableObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244imageObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245labelcacheMemberObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245labelcacheObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246labelObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246layerObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248legendObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252lineObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253mapObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254outputformatObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260OwsrequestObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260pointObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261projectionObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262querymapObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262rectObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263referenceMapObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264resultObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264scalebarObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265shapefileObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266shapeObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266styleObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268symbolObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270webObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
6.3.8 Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2726.4 Python MapScript Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
6.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2736.4.2 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
imageObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273pointObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274rectObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
6.4.3 Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2756.5 Python MapScript Image Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
6.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
6.5.2 Imagery Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
viii
6.5.3 The imageObj Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276Creating imageObj from a mapObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276Creating a new imageObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
6.5.4 Image Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277Creating files on disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277Direct Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
6.5.5 Images and Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2776.6 Mapfile Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
6.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
6.6.2 Mapfile Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2786.6.3 The mapObj Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
New instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278Cloning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Saving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
6.6.4 Children of mapObj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Referencing a Child . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Cloning a Child . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279New Children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Backwards Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280Removing Children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
6.6.5 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280New API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280Backwards Compatibility for Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
6.7 Querying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2816.7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2816.7.2 Querying Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
The Query Result Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Result Set Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Resulting Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282Backwards Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
6.7.3 Attribute Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282By Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
6.7.4 Spatial Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282By Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282By Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283By Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283By Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
6.8 MapScript Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2836.8.1 Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2846.8.2 Logical Control - Boolean Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2846.8.3 Logical Control - Status Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2846.8.4 Map Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2846.8.5 Layer Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2846.8.6 Font Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2856.8.7 Label Positions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2856.8.8 Label Size (Bitmap only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2856.8.9 Shape Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2856.8.10 Measured Shape Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2856.8.11 Shapefile Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2866.8.12 Query Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2866.8.13 File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2866.8.14 Querymap Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
ix
6.8.15 Connection Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2866.8.16 DB Connection Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2876.8.17 Join Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2876.8.18 Line Join Types (for rendering) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2876.8.19 Image Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2876.8.20 Image Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2886.8.21 Symbol Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2886.8.22 Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2886.8.23 Limiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2886.8.24 Error Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
7 Data Input 2917.1 Vector Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
7.1.1 Data Format Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292File-based Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292Directory-based Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292Database Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
7.1.2 ArcInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
7.1.3 ArcSDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294Supported ArcSDE Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294Unsupported ArcSDE Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295How to make a connection to SDE: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
7.1.4 DGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
7.1.5 ESRI File Geodatabase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Mapfile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
7.1.6 ESRI Personal Geodatabase (MDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Mapfile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
7.1.7 ESRI Shapefiles (SHP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
7.1.8 GML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
7.1.9 GPS Exchange Format (GPX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306Mapfile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
7.1.10 Inline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Map File Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
x
7.1.11 KML - Keyhole Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Links to KML-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Example 1: Displaying a .KML file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310Example 2: Displaying a .KMZ file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
7.1.12 MapInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313Map File Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
7.1.13 MSSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314Creating Spatial Data Tables in MSSQL 2008 . . . . . . . . . . . . . . . . . . . . . . . . . . 314Connecting to Spatial Data in MSSQL 2008 . . . . . . . . . . . . . . . . . . . . . . . . . . . 315More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
7.1.14 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318Connecting to Spatial Data in MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318Connecting to non-Spatial Data in MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 320More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
7.1.15 NTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
7.1.16 OGR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323What is OGR? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324Obtaining and Compiling MapServer with OGR Support . . . . . . . . . . . . . . . . . . . . 325Integrating OGR Support with MapServer Applications . . . . . . . . . . . . . . . . . . . . . 326STYLEITEM “AUTO” - Rendering Layers Using Style Information from the OGR File . . . 331Sample Sites Using OGR/MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335FAQ / Common Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
7.1.17 Oracle Spatial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336What MapServer 5.2 with Oracle Spatial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336Binaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337Two options for using Oracle Spatial with MapServer . . . . . . . . . . . . . . . . . . . . . . 337Mapfile syntax for native Oracle Spatial support . . . . . . . . . . . . . . . . . . . . . . . . . 337Using subselects in the DATA statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338Additional keywords - [FUNCTION] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339Additional keywords - [VERSION] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339More information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340Example of a LAYER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340Mapfile syntax for OGR Oracle Spatial support . . . . . . . . . . . . . . . . . . . . . . . . . 341
7.1.18 PostGIS/PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341PostGIS/PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Data Access /Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Mapfile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Support for SQL/MM Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
7.1.19 SDTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
xi
7.1.20 S57 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
7.1.21 SpatiaLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353OGRINFO Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353Mapfile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
7.1.22 USGS TIGER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356File listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
7.1.23 Virtual Spatial Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358Types of Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358Types of Flat Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359Steps for Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
7.1.24 WFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362Data Access / Connection Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363Map File Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
7.2 Raster Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3647.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3647.2.2 How are rasters added to a Map file? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Classifying Rasters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3657.2.3 Supported Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3677.2.4 Rasters and Tile Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Tile Index Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3687.2.5 Raster Warping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3697.2.6 24bit RGB Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3697.2.7 Special Processing Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3707.2.8 Raster Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3727.2.9 Raster Display Performance Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3737.2.10 Preprocessing Rasters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Producing Tiled Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374Reducing RGB to 8bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374Building Internal Overviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374Building External Overviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
7.2.11 Georeference with World Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
8 Output Generation 3778.1 AGG Rendering Specifics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
8.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3778.1.2 Setting the OutputFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3778.1.3 New Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3788.1.4 Modified Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
8.2 AntiAliasing with MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3798.2.1 What needs to be done . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
8.3 Dynamic Charting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3838.3.1 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Supported Renderers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383Output from AGG and GD Renderers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
8.3.2 Adding a Chart Layer to a Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Layer Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Specifying the Size of each Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
xii
Specifying the Values to be Plotted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Specifying Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
8.3.3 Pie Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3858.3.4 Bar Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Stacked bar Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3878.4 Flash Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
8.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387Links to Flash-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
8.4.2 Installing MapServer with Flash Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388Using Pre-compiled Binaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388Compiling MapServer with Flash Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
8.4.3 How to Output SWF Files from MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . 389Other OutputFormat Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389Composition of the Resulting SWF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389Exporting Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390Events and Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391Outputting Raster SWF for Vector Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
8.4.4 What is Currently Supported and Not Supported . . . . . . . . . . . . . . . . . . . . . . . . 3918.5 HTML Legends with MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
8.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393Legend Object of Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393CGI [legend] tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394HTML Legend Template File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
8.5.2 Sample Site Using the HTML Legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4018.6 HTML Imagemaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
8.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4028.6.2 Mapfile Layer Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4028.6.3 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Point Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403Polygon Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
8.6.4 Request URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4048.6.5 Additional Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4048.6.6 More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
8.7 OGR Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4048.7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4048.7.2 OUTPUTFORMAT Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4048.7.3 LAYER Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4068.7.4 MAP / WEB Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4078.7.5 Geometry Types Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4078.7.6 Attribute Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4078.7.7 Return Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4078.7.8 Test Suite Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
8.8 PDF Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4088.8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4088.8.2 What is currently supported and not supported . . . . . . . . . . . . . . . . . . . . . . . . . 4098.8.3 Implementing PDF Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Build the PDF Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409Build MapServer with PDF support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410Mapfile definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411Possible Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
8.8.4 PHP/MapScript and PDF Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
xiii
How does it work? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411Create the PDF document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411Render PNG views at a suitable resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412Insert the PNG elements into your PDF document . . . . . . . . . . . . . . . . . . . . . . . . 412Buffer the PDF and send it to the user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412Additional stuff to try . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
8.9 SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4138.9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Links to SVG-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4148.9.2 Feature Types and SVG Support Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Annotation Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Circle Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Line Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Point Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Polygon Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Raster Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415Text Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415WMS Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
8.9.3 Testing your SVG Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4168.9.4 goSVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417Support for Specific goSVG Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417Setting up a Mapfile for goSVG Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417Testing your goSVG Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418Sample goSVG File Produced by MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . 419
8.10 Tile Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4198.10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4208.10.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4208.10.3 Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
About Spherical Mercator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421Using Google Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421Using Virtual Earth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
8.11 Template-Driven Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4248.11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4248.11.2 OUTPUTFORMAT Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4248.11.3 Template Substitution Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4258.11.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
8.12 Kml Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4298.12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4298.12.2 General Functionnality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4298.12.3 Output format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4298.12.4 Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4308.12.5 Limiting the number of features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4308.12.6 Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4308.12.7 Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
General notes on layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433Point Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434Line Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434Polygon Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434Annotation Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434Raster Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
8.12.8 Styling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434Point Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435Line Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
xiv
Polygon Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4358.12.9 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4358.12.10 Coordinate system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4358.12.11 Warning and Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
9 OGC Support and Configuration 4379.1 MapServer OGC Specification support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4379.2 WMS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
9.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438Links to WMS-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438How does a WMS Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
9.2.2 Setting Up a WMS Server Using MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . 439Install the Required Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439Setup a Mapfile For Your WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440Test Your WMS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442GetLegendGraphic Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
9.2.3 Changing the Online Resource URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445Apache ReWrite rules (using Apache mod_rewrite) . . . . . . . . . . . . . . . . . . . . . . . 445Apache environment variables - MS_MAPFILE . . . . . . . . . . . . . . . . . . . . . . . . . 446Apache SetEnvIf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446ASP script (IIS - Microsoft Windows) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446Mapscript wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447Wrapper script (Unix) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
9.2.4 WMS 1.3.0 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447Major features related to the WMS 1.3.0 support . . . . . . . . . . . . . . . . . . . . . . . . 447Coordinate Systems and Axis Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447Example of requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448Other notable changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448Some Missing features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448OCG compliance tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
9.2.5 Reference Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449Web Object Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449Layer Object Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453Vendor specific WMS parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458Sample WMS Server Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
9.2.6 FAQ / Common Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4609.3 WMS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
9.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461WMS-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
9.3.2 Compilation / Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461Check your MapServer executable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462Install Optional PROJ4 EPSG Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
9.3.3 MapFile Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463Storing Temporary Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463Adding a WMS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
9.3.4 Limitations/TODO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4689.4 WMS Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
9.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468Links to WMS-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
9.4.2 Enabling Time Support in MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469Time Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469Setting Up a WMS Layer with Time Support . . . . . . . . . . . . . . . . . . . . . . . . . . 469GetCapabilities Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470Supported Time Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
xv
Interpreting Time Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470Limiting the Time Formats to Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471Example of WMS-T with PostGIS Tile Index for Raster Imagery . . . . . . . . . . . . . . . . 471
9.4.3 Future Additions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4729.4.4 Limitations and Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
9.5 Map Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4729.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Links to WMS / Map Context Related Information . . . . . . . . . . . . . . . . . . . . . . . 4739.5.2 Implementing a Web Map Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Special Build Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473Map Context Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473Testing Map Context Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477Sample Map Context Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477Map Context Support Through CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478Map Context Support Through WMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
9.6 WFS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4799.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
WFS-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480Versions of GML Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
9.6.2 Configuring your MapFile to Serve WFS layers . . . . . . . . . . . . . . . . . . . . . . . . 481Example WFS Server Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481Rules for Handling SRS in MapServer WFS . . . . . . . . . . . . . . . . . . . . . . . . . . . 482Axis Orientation in WFS 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483Test Your WFS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
9.6.3 Reference Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484Web Object Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485Layer Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
9.6.4 To-do Items and Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4889.7 WFS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
9.7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489WFS-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
9.7.2 Setting up a WFS-client Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489Storing Temporary Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489WFS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490Example WFS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491Connection - deprecated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
9.7.3 TODO / Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4919.8 WFS Filter Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
9.8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492Links to SLD-related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
9.8.2 Currently Supported Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492Units of measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
9.8.3 Get and Post Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4939.8.4 Use of Filter Encoding in MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Server Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494Client Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
9.8.5 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4969.8.6 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
9.9 SLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4999.9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Links to SLD-related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5009.9.2 Server Side Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
xvi
General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500Specific SLD Elements Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
9.9.3 Client Side Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507PHP/MapScript Example that Generates an SLD from a Mapfile . . . . . . . . . . . . . . . . 508
9.9.4 Named Styles support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5089.9.5 Other Items Implemented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5099.9.6 Issues Found During Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
9.10 WCS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5099.10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Links to WCS-Related Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
9.10.2 Configuring Your Mapfile to Serve WCS Layers . . . . . . . . . . . . . . . . . . . . . . . . 511Example WCS Server Mapfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511Output Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
9.10.3 Test Your WCS 1.0 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513Validate the Capabilities Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513Test With a DescribeCoverage Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513Test With a GetCoverage Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
9.10.4 WCS 1.1.0+ Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514GetCapabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514DescribeCoverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .