Ich habe eine Karte von hier . Ich möchte in der Lage sein, einfach ein beliebiges Lon / Lat-Paar in Pixel auf der Karte zu konvertieren (auch die Möglichkeit, eine umgekehrte Konvertierung durchzuführen). Die Karten werden mit .tfw-Datei- und Projektionsinformationen geliefert. Hier ist es:
0.02222222222222
0.00000000000000
0.00000000000000
-0.02222222222222
-180.00000000000000
90.00000000000000
und Projektionsinfo:
Projection: Plate Carree aka Geographic or "LatLong"
Earth ellipsoid: Sphere, radius 6370997 m
Datum: WGS84
Extent: 180 West to 180 East, 90 North to 90 South
Size: 16,200 height samples wide x 8,100 high
Resolution: 2.47 km/pixel
Ich bin völlig neu in kartografischem Material, und soweit ich herausgefunden habe, sollte ich zuerst die Transformation von WGS84 (Lon / Lat-Paar) zu geografischer Projektion durchführen (sind sie nicht gleich?). Es scheint mir, dass sie tatsächlich gleich sind, aber der Kugelradius in den obigen Projektionsinformationen beträgt 6370997 und unterscheidet sich von der Seite "räumlich referenz.com", die ich für die Plate Carree-Projektion gefunden habe. Wie auch immer, ich habe festgestellt, dass die DotSpatial.Projections-Bibliothek dies für mich mit dem folgenden Code tun kann:
var kievCoordinates = new[] { 50.4546600, 30.5238000 };
var z = new[] { 1.0 };
var wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984;
var dest = new ProjectionInfo();
dest.ParseEsriString(
"PROJCS[\"WGS 84 / Plate Carree (deprecated)\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]],PROJECTION[\"Equidistant_Cylindrical\"],PARAMETER[\"central_meridian\",0],PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]");
Reproject.ReprojectPoints(kievCoordinates, z, wgs84, dest, 0, 1);
Und dann muss ich die resultierenden Koordinaten mithilfe der Weltdatei in Pixel auf der Karte übersetzen. Mir ist folgende Formel bekannt:
Aber es scheint, dass es Grade nicht Meter in der Weltdatei gibt und ich weiß nicht, was ich damit machen soll. Mache ich im Allgemeinen die richtigen Dinge? Oder gibt es angesichts meiner Daten einen einfacheren Weg?