Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org.

Post on 05-Jan-2016

231 views 3 download

Transcript of Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org.

Spatial DatabaseTips & Tricks

Paul Ramseypramsey@opengeo.org

It’s not dead, it’s just resting…It’s not dead, it’s just resting…

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

Find intersecting shapes…

Start with all boxes,

find intersecting boxes,

then find intersecting shapes.

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,radiu

s)– ST_Union(geometry,geometry)

Locator

Spatial

• No buffer operation

• No union operation

• No intersection operation

• No centroid point

• No area or length calculation

L O C A T O R

• 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

S P A T I A L

• SFSQL compliant• New release, not as many features• No coordinate reference system

transforms• Windows only• Grid index

SELECT * FROM the_tableWHERE the_geom.STIntersects( geometry::STGeomFromText('POINT(0 0)',0) );

SELECT * FROM the_tableWHERE ST_Intersects( the_geom, ST_GeomFromText('POINT(0 0)',0) );

• PostgreSQL / PostGIS• SFSQL compliant• Open source (GPL)• Proprietary / open source clients• “geographic” coordinates require

care