PostGIS - Tipps und Tricks: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(Koordinatenreferenzsystem-Angaben (SRID))
(Von PostGIS direkt nach Google Earth)
Zeile 48: Zeile 48:
 
   \o
 
   \o
  
Dann Doppelklick auf die [[KML]]-Datei und [[Google Earth]] startet!
+
Dann Doppelklick auf die [[KML]]-Datei und [[Google Earth]] startet!  
 +
 
 +
Hinweis: Das KML muss ev. mit KML-Kopf und -Fuss ergänzt werden.
  
 
Beispiel für einen Ausschnitt der Schweiz:
 
Beispiel für einen Ausschnitt der Schweiz:
   SELECT askml('the_geom', 'SRID=21781;LINESTRING(  
+
 
    480000 300000, 835000 300000, 835000 70000, 480000 70000, 480000 300000
+
   SELECT AsKML('the_geom',  
  )'::geometry);
+
              'SRID=21781;LINESTRING(480000 300000, 835000 300000, 835000 70000, 480000 70000, 480000 300000)'::geometry
 +
        );
 +
 
 +
Beispiel für gisdb:
 +
  SELECT ST_AsKML(geomunion(transform(the_geom,4326))) as the_geom from towns where town='BOSTON';

Version vom 13. Januar 2008, 19:42 Uhr

Siehe auch

Koordinatenreferenzsystem-Angaben (SRID)

Der SRID (projection identifier) wird an drei Orten verwaltet:

  • In der geometry column: select SRID(the_geom) from mytable limit 5;
  • As a constraint on the table for the geometry column: \d mytable
  • In the geometry_columns system table: select * from geometry_columns;

Mit der Methode UpdateGeometrySRID([<schema_name>], <table_name>, <column_name>, <srid>) kann man die Kolonne aktualisieren.

Das wohl bekannteste Koordinatenreferensystem ist wohl WGS 84 (long/lat), das von GPS und KML geprägt ist und den Identifier 'EPSG:4326' hat.

Liste von SRID/SRS/CRS: http://www.spatialreference.org/

Shapefiles importieren (shp2pgsql)

Man beachte beim Import von Shapefiles das .prj File. Ohne weitere Angaben wird der SRID auf -1 gesetzt. Siehe SRID (Quelle).

Shapefile-Daten in Datenbank geo1 laden:

 % shp2pgsql -s 21781 -I -W ISO-8859-1 gemeinden public.gemeinden > gemeinden.sql
 % psql -d geo1 -U geo1 -f gemeinden.sql

Eine Alternative zu shp2pgsql ist ogr2ogr von OGR.

PostGIS über http-Tool mit Google Earth verknüpfen

Von PostGIS direkt nach Google Earth

Man starte psql (Beispiel mit Box um Victoria, BC, Kanada):

 -- Set output to unaligned
 \a
 -- Show only tuples
 \t
 -- Dump query to a file
 \o my_kml_file.kml
 -- Run your query
 SELECT askml('my_line', 'description', 'SRID=3005;LINESTRING( 1190000
 390000, 1200000 390000, 1200000 380000, 1190000 380000, 1190000 390000
 )'::geometry);
 -- Flush output your file and close the output stream
 \o

Dann Doppelklick auf die KML-Datei und Google Earth startet!

Hinweis: Das KML muss ev. mit KML-Kopf und -Fuss ergänzt werden.

Beispiel für einen Ausschnitt der Schweiz:

 SELECT AsKML('the_geom', 
              'SRID=21781;LINESTRING(480000 300000, 835000 300000, 835000 70000, 480000 70000, 480000 300000)'::geometry
        );

Beispiel für gisdb:

 SELECT ST_AsKML(geomunion(transform(the_geom,4326))) as the_geom from towns where town='BOSTON';