Здравствуте!
Долблюсь уже который день над такой задачкой. Кто-нибудь сталкивался? Необходимо преобразовать координаты тайлов(текстур, фотографий поверхности Земли) в широту долготу. Обратная формула есть но она какая-то не очень точная....по-моему...
Код:
procedure LonLatToXY( Lon,Lat:Extended; zoom:integer; var projected_x,projected_y:Extended );
var z : Extended;
begin
z := 1 shl (zoom-1);
projected_x := (LON+180)/(360.0/z );// с X всё просто - пропорционально
projected_y := z*(1 - Ln(Tan(LAT * pi_div_180) + 1 / Cos (LAT * pi_div_180 )) / PI) * 0.5; // а Y - ( ! )
end;
Мне нужно координатную сетку на сфере(Земли) наложить на вертикальный цилиндр, который разрезается по 180 мередиане, разворачивается в плоскость. Собственно на котороую наклеиваются тайлы. Причём земля не идеальный шар, а сплюснутый, эллепсоидальной формы, где по стандарту WGS84 длина бОльшей оси(горизонтальной, экваториальный) = 6 378 137 м, мАлой(веритмкальной, полярной) = 6 356 752 м.
Я вот ума не дам, почему во всех найденных мной формулах перевода нигде нет этих цифр(6378137, 6356752)? Или хотябы соотношение их. Разве они никак не влияют на преобразование? Зато почти везде используют натуральный лагорифм(Ln). Откуда он появился? Помогите, пожалуйста, разобраться. Очень надо.