Страница 1 из 1

Преобразование координат - яндекс

Добавлено: 03 май 2012, 10:45
Namolem
Накладываю свои данные на яндекс карту.

В процессе столкнулся с такой бякой на стыке двух тайлов (вложение).

Есть подозрение что не совсем точно считаются WGS координаты из XY тайла.

Вот код, который этой делает - как работает без понятия

Код: Выделить всё

var worldSize = Math.Pow(2.0, Zoom);
var equatorLength = 40075016.685578488;
var Rn = 6378137.0;
var a = worldSize / equatorLength;
var b = equatorLength / 2.0;

var MercatorX = X / a - b;
var MercatorY = b - Y / a;

var ab = 0.00335655146887969400;
var bb = 0.00000657187271079536;
var cb = 0.00000001764564338702;
var db = 0.00000000005328478445;

var xphi = Math.PI / 2 - 2 * Math.Atan(1 / Math.Exp(MercatorY / Rn));
var latitude = xphi + ab * Math.Sin(2 * xphi) + bb * Math.Sin(4 * xphi) + cb * Math.Sin(6 * xphi) + db * Math.Sin(8 * xphi);
latitude = latitude * 180 / Math.PI;

var longitude = MercatorX * 180 / Math.PI / Rn;