Hallo,
ich habe ein Shape-File welches mehrere Polygone im Raum Dhaka enthält.
Diese liegen mit der SRID: 32646 vor und werden auch so in meiner PostGIS-DB gespeichert.
Wenn ich jetzt die Daten in eine KML-Datei exportieren möchte um diese dann bei Google Maps anzuzeigen, sollten diese ja zuerst in die SRID: 4326 umgewandelt werden.
Ich habe mich jetzt den ganzen Abend belesen aber bin mir immernoch nicht sicher, wie das nun alles funktioniert.
Ich habe da mehrere Möglichkeiten und Probleme entdeckt:
1) neue Spalte mit SRID 4326 anlegen und dann die Koordinaten umwandeln
Das funktioniert anscheinend auch nichtmal richtig (also das UPDATE) denn ich muss stattdessen folgendes Ausführen um eine Wirkung zu erzielen (allerdings auf die Original-Spalte, die neue brauch man dafür ja dann nicht, weil man ja die SRID gleich von den ganzen Daten ändert, außer man kopiert die vorher nochmal in ne Spalte)Code:SELECT AddGeometryColumn('schema','table','geo_column',4326,'MULTIPOLYGON', 2); UPDATE schema.table SET geo_column = transform(the_geom, 4326);
Funktioniert also transform nicht? Aber den Tipp hab ich bei Google ganz oft gefunden...Code:SELECT UpdateGeometrySRID('public', 'yourtablenamehere','yourcolumnnamehere', 4236);
2) Finde 1) aber recht kompliziert, denn eigentlich sollte das doch auch funktionieren:
Allerdings werden mir hier Koordinaten der Form 88.xxx, 0.xxx erzeugt, was bei SRID 4326 irgendwo im Meer istCode:SELECT askml('my_title', 'description', transform(the_geom, 4326)) FROM schema.table;
3) Und nun kommt das was mich verwirrt:
Wenn ich das folgende Aufrufekommt das gleiche wie bei 2) raus..Code:SELECT askml('my_title', 'description', the_geom FROM schema.table;
Das ganze habe ich nun versucht zu überprüfen und bin dann auf astext gekommen. Allerdings liefert
die komischen 88.xxx 0.xxx Koordinaten undCode:SELECT astext(transform(the_geom, 4326)) FROM schema.table;
die "richtigen" 90.xxx 23.xxx.. was ja eigentlich falschrum ist oder?!Code:SELECT astext(transform(the_geom, 32646)) FROM schema.table;
Die Daten liegen doch in der DB als SRID 32646. Wenn ich jetzt transform mit 4326 aufrufe müsste mir doch egtl die "richtigen" Koordinaten ausgegeben werden?
Und warum ändert sich die Ausgabe in askml() nicht wenn ich in askml das transform mit einbaue, aber bei astext werden unterschiedliche Ausgaben erzeugt?
Vielleicht kann mich ja einer aufklären..
Vielen Dank
Eric
Geändert von erpelinho (21.01.2010 um 00:30 Uhr)
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen