1.18k likes | 1.41k Views
2009.foss4g.org. Spatial Database Tips & Tricks. Paul Ramsey pramsey@opengeo.org. Housekeeping. Copy workshop from DVD Download from http://xx.xx.xx.xx/xxx/spdb-003.zip Install or not Ignore me or not Examples also at http://xx.xx.xx.xx:8080/spatialdbtips. Impatient People.
E N D
Spatial DatabaseTips & Tricks Paul Ramseypramsey@opengeo.org
Housekeeping • Copy workshop from DVD • Download fromhttp://xx.xx.xx.xx/xxx/spdb-003.zip • Install or not • Ignore me or not • Examples also athttp://xx.xx.xx.xx:8080/spatialdbtips
Impatient People They try to install without reading instructions When you see an error box during PostGIS install, click “Ignore” Remember to create “medford” (not “postgis”) database during PostGIS install
Motivation • Spatial databases are powerful • Godlike, really • You do not need “GIS software” • Your database is “GIS software” • You do not need “spatial middleware” • See above
Standard Database • Has data types • varchar • integer • real • date
Spatial Database • Has spatial data types • point • linestring • polygon • multipoint • multilinestring • multipolygon
Standard Database • Has one-dimensional indexes • b-tree • hash
Spatial Database • Has spatial indexes • r-tree • quad-tree • grid
Standard Database • Has functions • Work against standard types • lower() • round() • substring() • trim() • dayofweek ()
Spatial Database • Has spatial functions • Work against spatial types • ST_Area(geometry) • ST_Distance(geometry,geometry) • ST_Intersects(geometry,geometry) • ST_DWithin(geometry,geometry,radius) • ST_Union(geometry,geometry)
Open Geospatial Consortium (OGC) Simple Features for SQL (SFSQL)
Spatial Locator
L O C A T O R • No buffer operation • No union operation • No intersection operation • No centroid point • No area or length calculation
S P A T I A L • Linear referencing system (LRS) support • Spatial analysis and mining functions and procedures (SDO_SAM package) • Geocoding support (SDO_GCDR package) • GeoRaster support • Topology data model • Network data model
SFSQL compliant • New release, not as many features • No coordinate reference system transforms • Windows only • Grid index
SELECT*FROM the_table WHERE ST_Intersects( the_geom, ST_GeomFromText('POINT(0 0)',0) ); SELECT*FROM the_table WHERE the_geom.STIntersects( geometry::STGeomFromText('POINT(0 0)',0) );
PostgreSQL / PostGIS • SFSQL compliant • Open source (GPL) • Proprietary / open source clients • “geographic” coordinates require care
ST_Distance(‘POINT(0 0)’,’POINT(1 1)’) • What units? • ST_Distance_Spheroid() • ST_Distance_Sphere() • Indexes are not sphere aware • Spherical distance functions defined on points only
Data • Shape files • .shp, .shx, .dbf, .prj • shp2pgsql • Other? • FME • ogr2ogr