Прилагаемая карта из векторной сохранена в растр basemap.png с файлом привязки basemap.pgw:
Код: Выделить всё
10000
0
0
-10000
-4395000
3795000
R — радиус сферы Google (задан);
λ₀ = 100°— долгота осевого меридиана (задана) (этот и другие угловые параметры используются в радианах);
Φ — «широта» точки, где на плоскости пересекаются меридианы (вычислен);
β — коэффициент сближения меридианов (вычислен);
ρ₀ — радиус кривизны параллели на начальной широте ϕ₀ (которая задана) (вычислен);
X₀, Y₀, k — плоские координаты верхнего левого угла растра и его разрешение в метрах на пиксел (взяты из basemap.pgw).
Входные данные — широта пункта ϕ и долгота λ; X и Y — координаты в проекции в метрах; x и y — координаты на растре в пикселах, причём начало координат в верхнем левом углу картинки.
Для Москвы (ϕ = 55°45′, λ = 37°37′) у меня получились координаты на растре x = 106, y = 194.