spatial database tips & tricks paul ramsey [email protected]

25
Spatial Database Tips & Tricks Paul Ramsey [email protected]

Upload: loreen-palmer

Post on 05-Jan-2016

223 views

Category:

Documents


3 download

TRANSCRIPT

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

Spatial DatabaseTips & Tricks

Paul [email protected]

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

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

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

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

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

Standard Database

• Has data types– varchar– integer– real– date

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

Spatial Database

• Has spatial data types– point– linestring– polygon– multipoint– multilinestring– multipolygon

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

Standard Database

• Has one-dimensional indexes– b-tree– hash

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

Spatial Database

• Has spatial indexes– r-tree– quad-tree– grid

Page 8: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org
Page 9: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org
Page 10: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org
Page 11: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org
Page 12: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org

Find intersecting shapes…

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

Start with all boxes,

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

find intersecting boxes,

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

then find intersecting shapes.

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

Standard Database

• Has functions• Work against standard types

– lower()– round()– substring()– trim()– dayofweek ()

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

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)

Page 18: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org
Page 19: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org
Page 20: Spatial Database Tips & Tricks Paul Ramsey pramsey@opengeo.org

Locator

Spatial

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

• No buffer operation

• No union operation

• No intersection operation

• No centroid point

• No area or length calculation

L O C A T O R

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

• 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

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

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

transforms• Windows only• Grid index

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

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) );

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

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

care