Table of Contents for
Web Mapping Illustrated

Version ebook / Retour

Cover image for bash Cookbook, 2nd Edition Web Mapping Illustrated by Tyler Mitchell Published by O'Reilly Media, Inc., 2005
  1. Web Mapping Illustrated
  2. Cover
  3. Web Mapping Illustrated
  4. A Note Regarding Supplemental Files
  5. Foreword
  6. Preface
  7. Youthful Exploration
  8. The Tools in This Book
  9. What This Book Covers
  10. Organization of This Book
  11. Conventions Used in This Book
  12. Safari Enabled
  13. Comments and Questions
  14. Acknowledgments
  15. 1. Introduction to Digital Mapping
  16. 1.1. The Power of Digital Maps
  17. 1.2. The Difficulties of Making Maps
  18. 1.3. Different Kinds of Web Mapping
  19. 2. Digital Mapping Tasks and Tools
  20. 2.1. Common Mapping Tasks
  21. 2.2. Common Pitfalls, Deadends, and Irritations
  22. 2.3. Identifying the Types of Tasks for a Project
  23. 3. Converting and Viewing Maps
  24. 3.1. Raster and Vector
  25. 3.2. OpenEV
  26. 3.3. MapServer
  27. 3.4. Geospatial Data Abstraction Library (GDAL)
  28. 3.5. OGR Simple Features Library
  29. 3.6. PostGIS
  30. 3.7. Summary of Applications
  31. 4. Installing MapServer
  32. 4.1. How MapServer Applications Operate
  33. 4.2. Walkthrough of the Main Components
  34. 4.3. Installing MapServer
  35. 4.4. Getting Help
  36. 5. Acquiring Map Data
  37. 5.1. Appraising Your Data Needs
  38. 5.2. Acquiring the Data You Need
  39. 6. Analyzing Map Data
  40. 6.1. Downloading the Demonstration Data
  41. 6.2. Installing Data Management Tools: GDAL and FWTools
  42. 6.3. Examining Data Content
  43. 6.4. Summarizing Information Using Other Tools
  44. 7. Converting Map Data
  45. 7.1. Converting Map Data
  46. 7.2. Converting Vector Data
  47. 7.3. Converting Raster Data to Other Formats
  48. 8. Visualizing Mapping Data in a Desktop Program
  49. 8.1. Visualization and Mapping Programs
  50. 8.2. Using OpenEV
  51. 8.3. OpenEV Basics
  52. 9. Create and Edit Personal Map Data
  53. 9.1. Planning Your Map
  54. 9.2. Preprocessing Data Examples
  55. 10. Creating Static Maps
  56. 10.1. MapServer Utilities
  57. 10.2. Sample Uses of the Command-Line Utilities
  58. 10.3. Setting Output Image Formats
  59. 11. Publishing Interactive Maps on the Web
  60. 11.1. Preparing and Testing MapServer
  61. 11.2. Create a Custom Application for a Particular Area
  62. 11.3. Continuing Education
  63. 12. Accessing Maps Through Web Services
  64. 12.1. Web Services for Mapping
  65. 12.2. What Do Web Services for Mapping Do?
  66. 12.3. Using MapServer with Web Services
  67. 12.4. Reference Map Files
  68. 13. Managing a Spatial Database
  69. 13.1. Introducing PostGIS
  70. 13.2. What Is a Spatial Database?
  71. 13.3. Downloading PostGIS Install Packages and Binaries
  72. 13.4. Compiling from Source Code
  73. 13.5. Steps for Setting Up PostGIS
  74. 13.6. Creating a Spatial Database
  75. 13.7. Load Data into the Database
  76. 13.8. Spatial Data Queries
  77. 13.9. Accessing Spatial Data from PostGIS in Other Applications
  78. 14. Custom Programming with MapServer’s MapScript
  79. 14.1. Introducing MapScript
  80. 14.2. Getting MapScript
  81. 14.3. MapScript Objects
  82. 14.4. MapScript Examples
  83. 14.5. Other Resources
  84. 14.6. Parallel MapScript Translations
  85. A. A Brief Introduction to Map Projections
  86. A.1. The Third Spheroid from the Sun
  87. A.2. Using Map Projections with MapServer
  88. A.3. Map Projection Examples
  89. A.4. Using Projections with Other Applications
  90. A.5. References
  91. B. MapServer Reference Guide for Vector Data Access
  92. B.1. Vector Data
  93. B.2. Data Format Guide
  94.  
  95. ESRI Shapefiles (SHP)
  96.  
  97. PostGIS/PostgreSQL Database
  98.  
  99. MapInfo Files (TAB/MID/MIF)
  100.  
  101. Oracle Spatial Database
  102.  
  103. Web Feature Service (WFS)
  104.  
  105. Geography Markup Language Files (GML)
  106.  
  107. VirtualSpatialData (ODBC/OVF)
  108.  
  109. TIGER/Line Files
  110.  
  111. ESRI ArcInfo Coverage Files
  112.  
  113. ESRI ArcSDE Database (SDE)
  114.  
  115. Microstation Design Files (DGN)
  116.  
  117. IHO S-57 Files
  118.  
  119. Spatial Data Transfer Standard Files (SDTS)
  120.  
  121. Inline MapServer Features
  122.  
  123. National Transfer Format Files (NTF)
  124. About the Author
  125. Colophon
  126. Copyright

OGR Simple Features Library

OGR is part of the FWTools package that’s available at http://fwtools.maptools.org. The OGR project home page (http://www.gdal.org/ogr) describes OGR as:

... a C++ open source library (and command line tools) providing read (and sometimes write) access to a variety of vector file formats including ESRI Shapefiles, S-57, SDTS, PostGIS, Oracle Spatial, and Mapinfo mid/mif and TAB formats.

Tip

The historical definition of the acronym OGR is irrelevant today, but it’s used throughout the code base, making it difficult to change.

OGR supports more than 16 different vector formats and has utilities similar to GDAL’s raster utilities.

Vector Formats Supported by OGR

The following list of the vector data formats supported by OGR was taken from the OGR formats web page at http://www.gdal.org/ogr/ogr_formats.html. The web page also shows which formats can be written or only read by OGR.

Arc/Info Binary Coverage
ESRI shapefile
DODS/OPeNDAP
FMEObjects Gateway
GML
IHO S-57 (ENC)
Mapinfo file
Microstation DGN
OGDI vectors
ODBC
Oracle Spatial
PostgreSQL
SDTS
UK .NTF
U.S. Census TIGER/Line
VRT: Virtual Datasource

OGR is part of the GDAL/OGR project and is packaged with GDAL. GDAL deals with raster or image data, and OGR deals with vector data. GDAL is to painting as OGR is to connect-the-dot drawings. These data access and conversion libraries cover the breadth of mapping data.

OGR Utilities and Examples

Like GDAL, OGR consists of a set of libraries that can be used in applications. It also comes with some powerful utilities:

ogrinfo

Interrogates a vector dataset and gives information about the features. This can be done with any format supported by OGR. The following code shows ogrinfo being used to show information about a shapefile:

                        # ogrinfo -summary placept.shp placept
    Had to open data source read-only.
    INFO: Open of `placept.shp'
    using driver `ESRI Shapefile' successful.

    Layer name: placept
    Geometry: Point
    Feature Count: 497
    Extent: (-140.873489, 42.053455) - (-52.808067, 82.431976)
    Layer SRS WKT:
    (unknown)
    AREA: Real (12.3)
    PERIMETER: Real (12.3)
    PACEL_: Integer (10.0)
    PACEL_ID: Integer (10.0)
    UNIQUE_KEY: String (5.0)
    NAME: String (50.0)
    NAME_E: String (50.0)
    NAME_F: String (50.0)
    UNIQUE_KEY: String (5.0)
    UNIQUE_KEY: String (5.0)
    REG_CODE: Integer (2.0)
    NTS50: String (7.0)
    POP91: Integer (7.0)
    SGC_CODE: Integer (7.0)
    CAPITAL: Integer (3.0)
    POP_RANGE: Integer (3.0)

This example shows many vital pieces of information including geographic extent of features, a list of the attributes, their types, and how many features are in the file. Additional parameters can be added that help access desired information more specifically.

Running it in different modes (the example shows summary mode) will reveal more or less detail. A complete listing of all the values and geographic locations of the features is possible if you remove the -summary option. You can also specify criteria using standard database query statements (SQL), as shown in the following code. This is a very powerful feature that provides access to spatial data using a common database querying language. Even file-based OGR data sources can be queried using SQL statements. This function isn’t limited to database data sources. For more information on OGR’s SQL query capabilities, see http://www.gdal.org/ogr/ogr_sql.html.

    # ogrinfo placept.shp -sql "select NAME, NTS50, LAT, LONG, POP91 from placept
    where NAME = 'Williams Lake'"

    OGRFeature(placept):389
      NAME (String) = Williams Lake
      NTS50 (String) = 093B01
      POP91 (Integer) = 10395
      POINT (-122.16555023 52.16541672)
ogr2ogr

Takes an input OGR-supported dataset, and converts it to another format. It can also be used to reproject the data while converting into the output format. Additional actions such as filtering remove certain features and retain only desired attributes. The following code shows a simple conversion of a shapefile into GML format.

    # ogr2ogr -f "GML" places.gml placept.shp

This code takes an ESRI shapefile and easily converts it to GML format or from/into any of the other formats that OGR supports writing to. The power of these capabilities is surpassed by few commercially available packages, most notably SAFE Software’s Feature Manipulation Engine (FME).

Warning

Note that the syntax for ogr2ogr puts the destination/output filename first, then the source/input filename. This order can be confusing when first using the tool. Many command-line tools specify input and then output.

OGR, like GDAL, aids in accessing, converting, and manipulating data, specifically vector data. OGR can also be used with scripting languages, allowing programmatic manipulation of data. GDAL/OGR packages typically come with OGR modules for Python. In addition to Python bindings, Java and C# support for GDAL/OGR are in development as of Spring 2005. Perl and PHP support may also be available in the future.

Tip

A PHP extension for OGR is available but isn’t supported or actively developed. It was developed independent of the main GDAL/OGR project and is available at: http://dl.maptools.org/dl/php_ogr/. If you can’t wait for official PHP support through the GDAL/OGR project, give this one a try.