OpengeoDB mit PostGIS: Unterschied zwischen den Versionen

OpenGeoDB & GISWiki - Das freie Portal für Geoinformatik (GIS)
Wechseln zu: Navigation, Suche
K (Formatierung korrigiert; keine inhaltlichen Änderungen)
 
Zeile 2: Zeile 2:
  
 
<code mysql>
 
<code mysql>
- -- [SQL] Datenbank anlegen:
+
- -- [SQL] Datenbank anlegen:
- -- DROP DATABASE opengeodb;
+
- -- DROP DATABASE opengeodb;
CREATE DATABASE opengeodb
+
CREATE DATABASE opengeodb
  WITH OWNER = postgres
+
  WITH OWNER = postgres
      ENCODING = 'UTF8'
+
        ENCODING = 'UTF8'
      TABLESPACE = pg_default;
+
        TABLESPACE = pg_default;  
  
# Dann (auf der Kommandozeile, die *.sql können je nach Version
+
# Dann (auf der Kommandozeile, die *.sql können je nach Version
# woanders liegen):
+
# woanders liegen):
# PostGIS
+
# PostGIS
createlang plpgsql opengeodb
+
createlang plpgsql opengeodb
psql -d opengeodb -f /usr/share/postgresql-8.1-postgis/lwpostgis.sql
+
psql -d opengeodb -f /usr/share/postgresql-8.1-postgis/lwpostgis.sql
psql -d opengeodb -f /usr/share/postgresql-8.1-postgis/spatial_ref_sys.sql
+
psql -d opengeodb -f /usr/share/postgresql-8.1-postgis/spatial_ref_sys.sql
  
# Opengeodb Daten importieren
+
# Opengeodb Daten importieren
psql -d opengeodb -f opengeodb-0.2.4d-UTF8-postgres.sql
+
psql -d opengeodb -f opengeodb-0.2.4d-UTF8-postgres.sql
  
- -- [SQL] Jetzt muss noch eine Geometry-Column angelegt werden und
+
- -- [SQL] Jetzt muss noch eine Geometry-Column angelegt werden und
- -- gefüllt werden:
+
- -- gefüllt werden:
SELECT
+
SELECT
AddGeometryColumn('opengeodb','geodb_coordinates','the_geom','4326','POINT',2);
+
AddGeometryColumn('opengeodb','geodb_coordinates','the_geom','4326','POINT',2);
UPDATE geodb_coordinates SET the_geom = SetSRID(MakePoint(lon, lat), 4326);
+
UPDATE geodb_coordinates SET the_geom = SetSRID(MakePoint(lon, lat), 4326);
- -- Indexieren
+
- -- Indexieren
CREATE INDEX coord_geom_idx ON geodb_coordinates USING GIST (the_geom);
+
CREATE INDEX coord_geom_idx ON geodb_coordinates USING GIST (the_geom);
VACUUM ANALYSE;
+
VACUUM ANALYSE;
  
- -- Eine Abfrage machen (das dauert hier 155 ms, 21 Treffer)
+
- -- Eine Abfrage machen (das dauert hier 155 ms, 21 Treffer)
SELECT * FROM geodb_coordinates
+
SELECT * FROM geodb_coordinates
WHERE distance(the_geom,SetSRID(MakePoint(9.0, 50.0), 4326)) < 0.1
+
WHERE distance(the_geom,SetSRID(MakePoint(9.0, 50.0), 4326)) < 0.1
 
</code>
 
</code>
  

Aktuelle Version vom 23. Dezember 2013, 11:12 Uhr

Das SQL-Script importiert Daten in eine PostgreSQL-Datenbank. Für die Nutzung in PostGIS wird eine Geometry-Spalte verwendet (Script von Martin Weis, OpenGeoDB Newsgroup)

- -- [SQL] Datenbank anlegen:
- -- DROP DATABASE opengeodb;
CREATE DATABASE opengeodb
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default; 
# Dann (auf der Kommandozeile, die *.sql können je nach Version
# woanders liegen):
# PostGIS
createlang plpgsql opengeodb
psql -d opengeodb -f /usr/share/postgresql-8.1-postgis/lwpostgis.sql
psql -d opengeodb -f /usr/share/postgresql-8.1-postgis/spatial_ref_sys.sql
# Opengeodb Daten importieren
psql -d opengeodb -f opengeodb-0.2.4d-UTF8-postgres.sql
- -- [SQL] Jetzt muss noch eine Geometry-Column angelegt werden und
- -- gefüllt werden:
SELECT
AddGeometryColumn('opengeodb','geodb_coordinates','the_geom','4326','POINT',2);
UPDATE geodb_coordinates SET the_geom = SetSRID(MakePoint(lon, lat), 4326);
- -- Indexieren
CREATE INDEX coord_geom_idx ON geodb_coordinates USING GIST (the_geom);
VACUUM ANALYSE;
- -- Eine Abfrage machen (das dauert hier 155 ms, 21 Treffer)
SELECT * FROM geodb_coordinates
WHERE distance(the_geom,SetSRID(MakePoint(9.0, 50.0), 4326)) < 0.1