Geometry-Spalte enthält immer die gleichen Werte

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!

Hallo!

EPSG 25832 ist ein Koordinatensystem auf UTM-Basis und erwartet Koordinaten in m-Einheit, EPSG 4326 ist ein Koordinatensystem aus Winkelkoordinaten und erwartet Winkelangaben in Grad. Was du von Yahoo bekommst scheinen bereits Winkelkoordinaten zu sein. Wenn du das Transform also weglässt und die Yahoo-Koordinaten folgendermaßen bearbeitest

UPDATE adress
SET geom = PointFromText('POINT(' || longitude || ' ' || latitude || ')',4326)

sollte es eigentlich funktionieren.

Gruß Uwe

Noch als Hinweis:
Die ca. ersten 25 Zeichen sind gleich da bei jeder Geometrie die SRID als erstes steht, welche in einer Tabelle ja immer die selbe sein sollte.
In PgAdminIII können große Geometrien leer sein. Das ist nur ein Anzeigefehler durch die extreme größe.

MfG
yobiSource