Отображение координат страны в пикселях экрана при удержании - PullRequest
0 голосов
/ 28 мая 2018

У меня есть координаты трех городов в Латвии

57.4093885,21.5246563

56.9713962,23.9890814

55.8958226,26.4671762

Мне нужно их разместитьна моей карте Латвии.Я не могу понять алгоритм, как он размещен на моей карте.Какой алгоритм я могу использовать для перевода моей широты и долготы в точки на моей карте.

моя карта

1 Ответ

0 голосов
/ 28 мая 2018

Для проекции Merkator довольно просто.

Карта имеет ограничивающие координаты - LatMin, LonMin, Lattin, LonMax.Это соответствует прямоугольнику экрана с координатами 0, 0, Ширина, Высота.

Долгота имеет линейное отображение

X = Width * (Lon - LonMin) / (LonMax- LonMin)

Широта должна быть рассчитана с некоторой математикой :

 a = 6378137    //geo-ellipsoid parameters
 b = 6356752.31
 f=(a-b)/a
 e=sqrt(2*f-f^2)  //excentricitet
 YY = a * ln(Tan(pi / 4 + Lat / 2) * 
     ((1 - e * sin(Lat)) / (1 + e * sin(Lat)))**(e/2)); 

Более простая, менее точная версия:

 YY = a * ln(Tan(pi / 4 + Lat / 2))

Найдите YY для LatMin, для LatMax, для городской широты Lat и примените аналогичную линейную интерполяцию

 Y = Height * (YY_Lat - YY_LonMin) / (YY_LonMax- YY_LonMin)
...