Saya punya peta dari sini . Saya ingin dapat dengan mudah mengkonversi pasangan lon / lat sewenang-wenang ke piksel pada peta (juga kemampuan untuk melakukan konversi balik). Peta datang dengan file .tfw dan info proyeksi, ini dia:
0.02222222222222
0.00000000000000
0.00000000000000
-0.02222222222222
-180.00000000000000
90.00000000000000
dan info proyeksi:
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
Saya benar-benar baru dalam hal-hal yang berkaitan dengan kartografi, dan sejauh yang saya tahu saya harus terlebih dahulu melakukan transformasi dari WGS84 (pasangan lon / lat) ke proyeksi Geografis (bukankah sama?). Sepertinya saya sama, sebenarnya, tetapi radius sphere dalam info proyeksi di atas adalah 6370997 dan berbeda dari halaman spatialreference.com yang saya temukan untuk proyeksi Plate Carree. Lagi pula, saya menemukan perpustakaan DotSpatial.Projections dapat melakukan ini untuk saya, dengan kode berikut:
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);
Dan kemudian saya harus menerjemahkan koordinat yang dihasilkan ke piksel pada peta menggunakan file dunia. Saya mengetahui rumus berikut:
Tetapi tampaknya ada derajat bukan meter dalam arsip dunia dan saya tidak tahu apa yang harus dilakukan dengan mereka. Secara umum, apakah saya melakukan hal yang benar? Atau ada cara yang lebih mudah, mengingat data saya?