994
MapServer Documentation Release 6.0.3 The MapServer Team November 14, 2012

MapServer Documentation · 5.24.3 Mapfile Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190 5.24.4 Feature attributes

  • 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .