Shape-Daten aus der Post-GIS Datenbank ausgeben

Aus kvwmap
Version vom 18. Oktober 2006, 14:27 Uhr von Heinz Schmidt (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

--Heinz Schmidt 15:27, 18. Okt 2006 (CEST)
Es ist nicht nur möglich Shape-Daten in die Post-GIS Datenbank einzulesen, sondern auch aus der Datenbank auszugeben. Diese Möglichkeit ist insbesondere für unsere Shape-Kunden interessant. Ermöglicht wird das mit dem Kommando pgsql2shp, das im Verzeichnis pgsql/bin steht.

Beispiel: Ausgabe der Flurstücke in ein Shapefile. Die Daten dafür kommen aus einer Sicht, die entsprechend des select statements aus dem Flurstückslayer aufgebaut ist:

View flurst in pgAdmin III erzeugen:

CREATE OR REPLACE VIEW flurst AS 
 SELECT o.objnr AS oid, o.objart, o.folie, o.the_geom, f.flurstkennz, f.gemkgschl, t.label
   FROM alkobj_e_fla o, alknflst f, alkobj_t_pkt t
  WHERE o.folie::text = '001'::text AND o.objnr::text = f.objnr::text AND o.objnr::text = t.objnr::text;
ALTER TABLE flurst OWNER TO kvwmap;

Die Daten dieses Views über pgsql2shp in ein Shape-File (flurst.shp) schreiben:

/usr/local/pgsql/bin/pgsql2shp -f flurst datenbankname public.flurst

Wichtig ist, dass man als user postgres in einem Verzeichnis steht, in dem man Schreibrechte hat. Die Pfade sind enstsprechend anzupassen. Die Ausgabe geschieht auf leistungsfähigen Maschinen sehr schnell und die Files sind überraschend kompakt. Nach diesem Beispiel lassen sich nahezu beliebige Daten aus der DB selektieren und in ein Shapefile schreiben.