Ich begann mit Wie kann ich die Koordinaten eines Shapefile transformieren? .
Die Antwort dort hat mich auf den richtigen Weg gebracht, aber ich konnte mein Problem immer noch nicht lösen.
Ein Problem ist, dass ich noch nicht die richtige Projektion gefunden habe: https://gis.stackexchange.com/questions/13330/how-can-i-correctly-transform-unproject-from-lcc
EDIT: Die Frage auf der gis-Website wurde beantwortet, und ich konnte eine korrekte Transformation mit dem PROJ-Befehlszeilentool cs2cs reproduzieren. Sie sieht folgendermaßen aus:
larry$ cs2cs -f "%.8f" +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs +to +proj=lonlat +datum=WGS84 +ellps=WGS84
6011287.4999795845 2100857.2499904726
-122.40375492 37.74919006 0.00000000
Nun, da ich die richtige Transformation hatte, konnte ich dasselbe in einer einfachen Form mit RGeo versuchen:
ruby-1.9.2-p180 :001 > projection_str = ' +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs'
=> " +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"
ruby-1.9.2-p180 :002 > projection = RGeo::CoordSys::Proj4.new(projection_str)
=> #<RGeo::CoordSys::Proj4:0x805cba18 " +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs +towgs84=0,0,0">
ruby-1.9.2-p180 :003 > desired_str = '+proj=lonlat +datum=WGS84 +ellps=WGS84'
=> "+proj=lonlat +datum=WGS84 +ellps=WGS84"
ruby-1.9.2-p180 :004 > desired = RGeo::CoordSys::Proj4.new(desired_str)
=> #<RGeo::CoordSys::Proj4:0x805271ac " +proj=lonlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0">
ruby-1.9.2-p180 :005 > RGeo::CoordSys::Proj4::transform_coords(projection, desired, 6011287.4999795845, 2100857.2499904726 )
=> [-140.92282523143973, 30.16981659183029]
- Warum sind die Ergebnisse zwischen RGeo und cs2cs unterschiedlich?
- Sobald ich RGeo die korrekte Übersetzung durchführen kann, gibt es eine Möglichkeit, wie ich die richtige Fabrik erstellen kann, um eine komplette Geometrie anstelle eines Punktes zu transformieren?
- Gibt es ein Befehlszeilentool, das ich als Workaround verwenden kann, um alle Punkte in meinem Shapefile zu transformieren, so dass ich mit meinem Leben weitermachen kann?
Generell: Könnte mir bitte jemand erklären, wie man diese Bibliothek richtig benutzt?
Vielen Dank für Ihren Besuch.