Eu tenho um mapa daqui . Eu quero ser capaz de converter simplesmente pares lon / lat arbitrários em pixels no mapa (também a capacidade de fazer a conversão reversa). Os mapas vêm com informações sobre o arquivo .tfw e a projeção, aqui está:
0.02222222222222
0.00000000000000
0.00000000000000
-0.02222222222222
-180.00000000000000
90.00000000000000
e informações de projeção:
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
Sou completamente novo em assuntos relacionados à cartografia e, tanto quanto descobri, deveria primeiro fazer a transformação de WGS84 (par lon / lat) em projeção geográfica (eles não são os mesmos?). Parece-me que eles são os mesmos, na verdade, mas o raio da esfera nas informações de projeção acima é 6370997 e é diferente da página spatialreference.com que encontrei para a projeção Plate Carree. Enfim, eu achei a biblioteca DotSpatial.Projections pode fazer isso por mim, com o seguinte código:
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);
E então devo converter as coordenadas resultantes em pixels no mapa usando o arquivo world. Estou ciente da seguinte fórmula:
Mas parece que existem graus e não metros no arquivo mundial e eu não sei o que fazer com eles. Geralmente, estou fazendo as coisas certas? Ou existe uma maneira mais fácil, considerando meus dados?