Re: Перевод географических координат в прямоугольные
Добавлено: 08 июн 2012, 19:45
Лезть в формулы не так уж и страшно.
Прилагаемая карта из векторной сохранена в растр basemap.png с файлом привязки basemap.pgw:
Она создана в известной равнопромежуточной конической проекции для Российской Федерации (ϕ₀=54°, λ₀=100°, ϕ₁=49°, ϕ₂=68.5°, FN=0, FE=0), только не на эллипсоиде Красовского, а на сфере Google. Как видно в первом вложении, формулы этой проекции весьма просты. Больше места занимает определение параметров. Кстати о них:
R — радиус сферы Google (задан);
λ₀ = 100°— долгота осевого меридиана (задана) (этот и другие угловые параметры используются в радианах);
Φ — «широта» точки, где на плоскости пересекаются меридианы (вычислен);
β — коэффициент сближения меридианов (вычислен);
ρ₀ — радиус кривизны параллели на начальной широте ϕ₀ (которая задана) (вычислен);
X₀, Y₀, k — плоские координаты верхнего левого угла растра и его разрешение в метрах на пиксел (взяты из basemap.pgw).
Входные данные — широта пункта ϕ и долгота λ; X и Y — координаты в проекции в метрах; x и y — координаты на растре в пикселах, причём начало координат в верхнем левом углу картинки.
Для Москвы (ϕ = 55°45′, λ = 37°37′) у меня получились координаты на растре x = 106, y = 194.
Прилагаемая карта из векторной сохранена в растр 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.