* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download PostGIS - Installation to Use
Survey
Document related concepts
Oracle Database wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Concurrency control wikipedia , lookup
Ingres (database) wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Functional Database Model wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Relational model wikipedia , lookup
ContactPoint wikipedia , lookup
Transcript
An OSGeo Training workshop at Centre For Space Science And Techonology Education In Assia And The Pacific 12th – 14th January 2011 Dehradun PostgreSQL/PostGIS Santosh Gaikwad, Salim Ali Centre For Ornithology And Natural History (SACON), Hyderabad [email protected] What is Spatial data? Data which describes either location or shape e.g.House or Fire Hydrant location Roads, Rivers, Pipelines, Power lines Forests, Parks, Municipalities, Lakes What is a Spatial Database? Database that: • Stores spatial objects • Manipulates spatial objects just like other objects in the database Three aspects • Spatial data types • Spatial indexing • Spatial functions What is PostGIS? PostGIS turns the PostgreSQL Database Management System into a spatial database by adding adding support for the three features: spatial types, indexes, and functions Why choose PostgreSQL? PostgreSQL has: • • • • • • • Proven reliability and respect No cost (open source) Supports most of the SQL standard Ability to add new data-types TOAST - no limit on column size GiST index / Index extensions Easy to add custom functions Why not Shapefiles? Files require special software to read and write Concurrent users can cause corruption Complicated questions require complicated software to answer What applications support PostGIS? Open Source/ Free •Loading/Extracting • Shp2Pgsql • ogr2ogr • Dxf2PostGIS •Web-Based • Mapserver • GeoServer (Java-based WFS / WMS -server ) • SharpMap SDK - for ASP.NET 2.0 • MapGuide Open Source (using FDO) •Desktop • uDig • QGIS • mezoGIS • OpenJUMP • OpenEV • SharpMap SDK for Microsoft.NET 2.0 • ZigGIS for ArcGIS/ArcObjects.NET • GvSIG Closed /Proprietary •Loading/Extracting • Safe FME Desktop Translator/Converter •Web-Based • Ionic Red Spider (now ERDAS) • Cadcorp GeognoSIS • Iwan Mapserver • MapDotNet Server • MapGuide Enterprise (using FDO) • ESRI ArcGIS Server 9.3+ •Desktop • Cadcorp SIS • Microimages TNTmips GIS • ESRI ArcGIS 9.3+ • Manifold • GeoConcept • MapInfo (v10) • AutoCAD Map 3D (using FDO) Practical PostgreSQL/Postgis Installation Creating a Spatial Database How to Spatially Enable an Existing Database Loading spatial data • • • • • • Command prompt (shp2pgsql) (GUI) shp2pgsql loader OpenJUMP QGIS (SPIT) GDAL Geokettle Loading data from non-spatial sources Viewing the data Querying the data PostgreSQL/PostGIS Installation OpenGeo Suite It is the complete , OGC standards- compliant web mapping platform built on powerful, cuttingedge, open source geospatial components. It is the bundle of following software • • • • • PostgreSQL/PostGIS GeoServer GeoWebCache OpenLayers GeoExt PostgreSQL/PostGIS database run on 54321 port http://opengeo.org OpenGeo Installation Creating Spatial Database (using template_postgis) Creating Spatial Database (without template_postgis) Create a new database Connect to the database Load/run the PostGIS extension (postgis.sql) Earlier version has lwpostgis.sql Load/run the PostGIS spatial reference systems (spatial_ref_sys.sql) Metadata Tables spatial_ref_sys: defines all the spatial reference systems known to the database. geometry_columns: provides a listing of all “features” and the basic details of those features. Metadata Tables Loading Shape Files shp2pgsql [opts] shapefile tablename > file.sql • Shp2pgsql –s 32644 –D C:\churches.shp churches(table) > chueches.sql Read in .shp file Write out .sql file Load .sql file into PostgreSQL • using psql • using PgAdmin Command Line Options -D = Use “dump” format -i = Do not use “bigint”, even for long numbers -I = Create a GiST index on the geometry column -g = Specify the name of the geometry column -s <#> = Use this SRID -W <encoding> = Use this character encoding -a = Run in append mode Loading Shape Files psql –d postgis –U postgres –f bc_data.sql psql –d database –U postgres –f file.sql To convert database table to shapefiles pgsql2shp -f "test.shp" -u postgres -p 5432 -P password database schema.table QGIS Installation OpenJUMP • • 1. 2. 3. OpenJUMP is Open Source GIS software written in Java Programming language Installation: Install Java Install OpenJUMP Install PostGIS database driver (Put PostGIS132.jar file in /lib/ext folder of OpenJUMP) Java Installation OpenJUMP Installation Geometry Input and Output Well-known text (WKT) • • • Well-known binary (WKB) • • • ST_GeomFromKML(text) returns geometry ST_AsKML(geometry) returns text GeoJSON • ST_GeomFromGML(text) returns geometry ST_AsGML(geometry) returns text Keyhole Mark-up Language (KML) • • ST_GeomFromWKB(bytea) returns geometry ST_AsBinary(geometry) returns bytea ST_AsEWKB(geometry) returns bytea Geographic Mark-up Language (GML) • • ST_GeomFromText(text) returns geometry ST_AsText(geometry) returns text ST_AsEWKT(geometry) returns text ST_AsGeoJSON(geometry) returns text Scalable Vector Graphics (SVG) • ST_AsSVG(geometry) returns text Geoprocessing with PostGIS PostGIS functions (~700) are available through SQL Coordinate transformation Identify Buffer Touches Crosses Within Overlaps Contains Area Length Point on surface Return geometry as SVG Many, many, many more Viewing Data in PostGIS Quick desktop viewing options • • • • • uDig QGIS gvSIG CadCorp SIS* FME Viewer* Web based application options • MapGuide • Mapserver • Geoserver uDig Installation Loading data from non spatial sources Create table using pgAdminIII Copy data to the database using copy command Create the Geometry field using AddGeometryColumn() spatial function Populate the Geometry field using the Longitude and Latitude fields Querying the data Calculate area in Hectare • Load area_slums.shp into database with SRID 32644 • Add the area field with data type double precision • Update the area field using spatial function ST_area() • UPDATE area_slums set area=ST_area(geometry)/10000; Querying the data What is the total length of all roads in Rajahmundry corporation in Kilometers • Add rjyroads_Names.shp data to database with SRID 32644 • SELECT sum(ST_length(the_geom))/1000 as kilometers from rjyroads_names; Querying the data Which the biggest slums in Rajahmundry Corporation by area in Hectare • Add area_slums.shp data to the database with SRID 32644 • SELECT max(ST_area(geometry))/10000 from area_slums; Querying the data Find churches within a radius of distance from slums • Use ST_dwithin() function • SELECT distinct c.name,c.address from area_slums as s , churches as c WHERE ST_dwithin(s.geometry, c.the_geom, 200) = TRUE;