Problem bei Berechnung mit length()

Probleme, Fragen die mit der Installation und Anwendung der PostGIS-Erweiterung zu tun haben.

Problem bei Berechnung mit length()

Beitragvon Klink » Di 17. Aug 2010, 14:06

Hallo,

ich bin echt am verzweifeln und habe schon einiges gegoogelt zu meinem Problem aber nichts passendes gefunden. Ich erhalte unterschiedliche Werte bei Verwendung der Funktion length().

Ich habe mit osm2pgsql (srid: 900913 default) den BadenWürttemberg-Ausschnitt der OSM von geofabrik in meine postgresql importiert.


Mein Problem ist, dass ich die Länge einer Straße berechnen möchte ABER die Resultate nicht übereinstimmen. Der Wert res3067 [color=black]stimmt (siehe Code-Ausschnitt).[/color]

Warum sind die Ergebnisse res900913 und res3067 verschieden? Sollte da nicht dasselbe rauskommen?

Code: Alles auswählen
SELECT name,
length(transform(way, 900913)) as res900913,
length(transform(way, 3067)) as res3067,
length(transform(transform(way, 3067), 4326)) as res4326
FROM osm_bawue_line WHERE (osm_id=247xxxxx)


res900913 liefert: 422.028625231041 // zu lang
res3067 liefert: 283.189400417123 // stimmt ungefähr
res4326 liefert: 0.00359531747427311 [color=black] // wert vermutl. in Grad?!

Ich hoffe, dass das Problem jemand nachvollziehen kann und auch eine Lösung für mich hat.

Viele Grüße,
Klink
[/color]
Klink
Neuer Benutzer
 
Beiträge: 2
Registriert: Di 17. Aug 2010, 13:36

Beitragvon Gisman » Do 19. Aug 2010, 21:37

Vermutlich liegt es am jeweils zur Projetion verwendeten Ellipsoid. Zumindest könnte ich mir das anhand der Längendifferenz vorstellen. Sind die Abweichungen richtungsabhängig? Was kommt an Länge raus wenn du GK3 (31467) nimmst?

Gruß Uwe
Have a lot of fun!
Gisman
Erfahrener Benutzer
 
Beiträge: 863
Registriert: Fr 20. Jan 2006, 16:30
Wohnort: Pfalz

Beitragvon Klink » Fr 20. Aug 2010, 22:48

Danke für die Antwort.

Nein, die sind nicht richtungsabhängig.
Ich arbeite bereits mit 31467 für Deutschland, da stimmen auch die Werte.

Was mir nicht ganz klar ist, warum da solche Unterschiede auftauchen? Müsste nicht durch eine Konversion von einer Projektion in eine andere sowas berücksichtigt werden? Weil sonst hätte ich ja auch Probleme wenn ich WGS48(epsg:4326) vom GPS Logger auf 31467 umrechne, oder?

Grüße
Klink
Neuer Benutzer
 
Beiträge: 2
Registriert: Di 17. Aug 2010, 13:36

Beitragvon Gisman » Mo 23. Aug 2010, 12:10

Klink hat geschrieben:
Was mir nicht ganz klar ist, warum da solche Unterschiede auftauchen?


Manchmal werden solche Unterschiede auch in Beton gegossen. Z.b. hat eine Autobahn zwischen der ehm. DDR und der BRD eine Art Schikane, die daraus resultiert, das im Osten mit dem Krassovski-Ellipsoid gerechnet wurde und in der BRD mit Bessel. Der Lageunterschied macht ca. 200 m aus.

Deine verschiedenen Projektionen benutzen alle unterschiedliche Ellipsoide, wie man der Tabelle spatial_ref_sys entnehmen kann (900913 scheint die Erde sogar als [Goo|Ku]gel zu sehen :) ). Ich kann mir schon vorstellen, das dort solche Abweichungen auftreten können, je nach dem wie stark die Ellipsoide am gesuchten Ort differieren. Somit können eigentlich auch alle Ergebnisse für ihr Ellipsoid korrekt sein, das gewählte Ellipsoid passt halt mit seiner Krümmung nicht zu gewünschten Ort. Du kannst ja mal nach geographische Projektion googeln, da sollte es einiges zu lesen geben.

Gruß Uwe
Have a lot of fun!
Gisman
Erfahrener Benutzer
 
Beiträge: 863
Registriert: Fr 20. Jan 2006, 16:30
Wohnort: Pfalz


Zurück zu PostGIS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron