Hallo,
ich habe eine Postgres-DB mit PostGIS aufgesetzt und möchte nun die Geofunktionalität nutzen. Dabei steht leider in der geometry-Spalte in jeder Zeile derselbe Wert.
Ich habe eine Tabelle mit Adressen mit folgender Definition erstellt:
CREATE TABLE adress (
adress_id INT NOT NULL,
street VARCHAR(64) NOT NULL,
street_number VARCHAR(10),
latitude FLOAT(20),
longitude FLOAT(20),
postal_code_id INT NOT NULL,
PRIMARY KEY (adress_id)
);
Die Werte für latitude und longitude hole ich mir zu einer Adresse via eines Services von Yahoo. Die Werte sind auch korrekt (Bspw. 53.124 8.19416, 53.135 8.18427, etc.). Nun füge ich der Tabelle eine geometry-Spalte hinzu und update diese mit Hilfe der Werte von longitude und latitude:
SELECT AddGeometryColumn( 'public', 'adress', 'geom', 4326, 'POINT', 2 );
UPDATE adress
SET geom = transform(PointFromText('POINT(' || longitude || ' ' || latitude || ')',25832),4326) ;
Nun steht in der Geometry-Spalte in jedem Eintrag derselbe Wert (“0101000020E61000005F411CB9860B12400000000000000000”), obwohl die Werte für longitude und latitude jeweils unterschiedlich sind. Das kann nicht richtig sein, oder? Ich befürchte ich benutze nicht die richtigen SRIDs. Ich benötige nur Koordinaten im Norden Deutschlands.
Wenn ich nun folgende Query ausführe, bekomme ich je nach Einstellung des Parameters entweder alle Kombinationen, oder gar keine Ergebnisse.
SELECT a.adress_id, a.street, a.street_number, a.latitude, a.longitude, b.adress_id, b.street, b.street_number, b.latitude, b.longitude
FROM adress a, adress b
WHERE distance_sphere(centroid(a.geom), centroid(b.geom)) < 60;
Kann mir jemand sagen wo mein Fehler liegt?
Vielen Dank für die Mühen!