PostGIS DB: wie einrichten?
Hallo zusammen
Habe mir wie folgt eine Datenbank angelegt:
su postgres
# psql starten
psql
-- User und Datenbank erstellen
CREATE USER testdb WITH PASSWORD 'passwort';
-- USER testdb anlegen mit Passwort
CREATE DATABASE testdb OWNER testdb ENCODING 'UTF8';
-- Datenbank testdb anlegen mit Besitzer testdb
-- psql verlassen mit \q
\q
# PostGIS-Erweiterungen aktivieren
createlang plpgsql testdb
cd /usr/share/postgresql-8.3-postgis
psql -f lwpostgis.sql -d testdb
psql -f spatial_ref_sys.sql -d testdb
Die Tabellen habe ich allerdings vor den PostGIS-Erweiterungen eingerichtet.
Wusste nicht, dass man die speziell aktivieren muss. Scheinbar klappt die
Aktivierung aber nicht. Die sql-Skripts liegen allerdings druch ohne
Fehlermeldungen. Folgende Abfrage liefert:
SELECT daten.datenid, daten.zeitpunkt, daten.zeitpunkt-letzter.zeitpunkt AS
letzterpunktvor, daten.punkt, distance(daten.punkt, letzter.punkt) FROM
rohdaten daten LEFT JOIN rohdaten letzter ON daten.datenid-1=letzter.datenid
WHERE daten.protokollid=21 ORDER BY daten.zeitpunkt;
jedoch:
FEHLER: Funktion distance(point, point) existiert nicht
LINE 1: ...etzter.zeitpunkt AS letzterpunktvor, daten.punkt, distance(d...
^
HINT: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen
überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
Die Tabelle wurde wie folgt definiert:
CREATE TABLE rohdaten (
datenid SERIAL PRIMARY KEY NOT NULL,
protokollid INTEGER NOT NULL REFERENCES protokoll,
zeitpunkt TIMESTAMP NOT NULL,
punkt POINT,
qualitaetid SMALLINT NOT NULL REFERENCES qualitaet,
numsat SMALLINT NOT NULL,
hdop REAL NOT NULL,
altitude REAL,
seperation REAL
);
Wo finde ich die PostGIS Funktionen und wie installiere ich die?
Gruss
Thomas
Reply to: