contents


foreword
preface
acknowledgments
about this book
about the cover illustration

Part 1 Learning PostGIS

1 What is a spatial database?
1.1 Thinking spatially
1.2 Modeling
1.3 Introducing PostgreSQL and PostGIS
1.4 Getting started with PostGIS
1.5 Working with real data
1.6 Using spatial queries to analyze data
1.8 Summary
2 Geometry types
2.1 Geometry columns in PostGIS
2.2 A panoply of geometries
2.3 Summary
3 Organizing spatial data
3.1 Spatial storage approaches
3.2 Modeling a real city
3.3 Using rules and triggers
3.4 Summary
4 Geometry functions
4.1 Constructors
4.2 Outputs
4.3 Accessor functions: getters and setters
4.4 Measurement functions
4.5 Decomposition
4.6 Composition
4.7 Simplification
4.8 Summary
5 Relationships between geometries
5.1 Introducing spatial relationship functions
5.2 Intersections
5.3 Specific intersection relationships
5.4 The remainder: ST_Difference and ST_SymDifference
5.5 Nearest neighbor
5.6 Bounding box and geometry comparators
5.7 The many faces of equality
5.8 Underpinnings of relationship functions
5.9 Summary
6 Spatial reference system considerations
6.1 Spatial reference system: What is it?
6.2 Selecting a spatial reference system to store data
6.3 Determining the spatial reference system of source data
6.4 Summary
7 Working with real data
7.1 Tools for importing/exporting data
7.2 Loading data
7.3 Exporting data from PostGIS
7.4 Summary

Part 2 Putting PostGIS to work

8 Techniques to solve spatial problems
8.1 Proximity analysis
8.2 Data tagging
8.3 Slicing and splicing linestrings
8.4 Slicing and splicing polygons
8.5 Translating, scaling, and rotating geometries
8.6 Summary
9 Performance tuning
9.1 The query planner
9.2 Using explain to diagnose problems
9.3 Indexes and keys
9.4 Common SQL patterns and how they affect performance
9.5 System and function settings
9.6 Optimizing geometries
9.7 Summary

Part 3 Using PostGIS with other tools

10 Enhancing SQL with add-ons
10.1 Georeferencing with the TIGER geocoder
10.2 Solving network routing problems with pgRouting
10.3 Extending PostgreSQL power with PLs
10.4 Graphing and accessing spatial analysis libraries with PL/R
10.5 PL/Python
10.6 Summary
11 Using PostGIS in web applications
11.1 GIS and the web
11.2 Using MapServer
11.3 Using GeoServer
11.4 Basics of OpenLayers and GeoExt
11.5 Displaying data with server-side web scripting
11.6 Summary
12 Using PostGIS in a desktop environment
12.1 At a glance
12.2 OpenJUMP Workbench
12.3 Quantum GIS
12.4 uDig
12.5 gvSIG
12.6 Summary
PostGIS raster
13.1 What is PostGIS raster?
13.2 Storing and loading raster data
13.3 Raster maintenance tables and functions
13.4 Commonly used functions
13.5 Combining raster processing with vector processing
13.6 Exporting raster data into other raster formats
13.7 Viewing raster data with MapServer
13.8 The future of PostGIS raster support
13.9 Summary

appendix A Additional resources
appendix B Installing, compiling, and upgrading
appendix C SQL primer
appendix D PostgreSQL features
index