У меня есть эта координата: 778597.3125000001, 9148353
. Мне сказали, что это координата Arc 1960 / UTM zone 36S
.
Когда я перехожу здесь, нажимаю "Получить позицию на карте" и ввожу приведенные выше координаты, точка размещается в правильном место на карте (в углу поля).
Какое преобразование/проекцию мне нужно сделать, чтобы сделать широту и долготу, а затем перейти к той же точке в Картах Google?
Я пробовал разные способы, но, кажется, в конечном итоге получил 400 - 200m
диагональное смещение.
Правильные широта и долгота должны быть: Lat: -7.699944 Long: 35.5262575
(угол поля, см. ссылка а>):
Я использую DotSpatial.
var Arc1960UTMZone36S = KnownCoordinateSystems.Projected.UtmOther.Arc1960UTMZone36S;
Arc1960UTMZone36S.AuthorityCode = 21036;
var WGS1984 = KnownCoordinateSystems.Geographic.World.WGS1984;
//4326 google earth
//3857 for google maps
WGS1984.AuthorityCode = 3857;
double[] xy = new double[2] { 778597.3125000001, 9148353 };
double[] z = new double[1] { 0d };
Reproject.ReprojectPoints(xy, z, Arc1960UTMZone36S, WGS1984, 0, 1);
var latitude = xy[1];
var longitude = xy[0];
Debug.WriteLine($"Lat: {latitude} Long: {longitude}");
Кто-нибудь знает, почему это смещено?
-7.69721021, 35.52550186
, так почему вы считаете, что это должно быть-7.7009819, 35.5280201
? - person MrUpsidown   schedule 22.12.2020