Для проекции 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)