Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занимательная геодезия.doc
Скачиваний:
9
Добавлен:
24.11.2019
Размер:
465.41 Кб
Скачать

Координаты на геоиде

Итак, мы сумели определить свою широту и долготу с погрешностью в несколько градусов, т.е. пару сотен километров. Для записки в бутылке такой точности, быть может, ещё хватит, а вот для географических карт уже нет. Частично эта погрешность обусловлена несовершенством используемых инструментов, но есть и другие источники ошибок. Землю можно считать шаром только в первом приближении — вообще же Земля совсем не шар, а геоид — тело, больше всего похожее на сильно неровный эллипсоид вращения. Для того, чтобы точно приписать каждой точке земной поверхности координаты нужны правила — каким образом конкретную точку на геоиде спроецировать на сферу. Такой набор правил должен быть универсальным для всех географических карт в мире — иначе одни и те же координаты будут в разных системах обозначать разные точки земной поверхности. В настоящий момент практически все географические сервисы используют единую систему присвоения точке координат — WGS 84 (WGS = World Geodetic System, 84 — год принятия стандарта). WGS 84 определяет т.н. референсный эллипсоид — повехность, к которой приводятся координаты для удобства вычислений. Параметры этого эллипсоида следующие: — большая полуось (экваториальный радиус): a = 6378137 метров; — сжатие: f = 1 / 298.257223563. Из экваториального радиуса и сжатия можно получить полярный радиус, он же малая полуось (b = a * (1 — f) ≈ 6356752 метра). Любой точке земной поверхности, таким образом, ставится в соответствие три координаты: долгота и широта (на референсном эллипсоиде) и высота над его поверхностью. В 2004 году WGS 84 был дополнен стандартом Earth Gravitational Model (EGM96), который уточняет уровень моря, от которого отсчитываются высоты. Интересно, что нулевой меридиан в WGS 84 вовсе не гринвичский (проходящий через ось пассажного инструмента Гринвичской обсерватории), а т.н. IERS Reference Meridian, который проходит на 5.31 угловой секунды восточнее гринвичского.

Плоские карты

Допустим, мы научились определять свои координаты. Теперь нужно научиться отображать накопленные географические знания экране монитора. Да вот незадача — сферических мониторов в мире как-то не очень много (не говоря уже о мониторах в форме геоида). Нам нужно каким-то образом отобразить карту на плоскость — спроецировать. Один из самых простых способов — спроецировать сферу на цилиндр, а потом развернуть этот цилиндр на плоскость. Такие проекции называются цилиндрическими, их характерное свойство — все меридианы отображаются на карте вертикальными прямыми. Проекций сферы на цилиндр можно придумать много. Наиболее известная из цилиндрических проекций — проекция Меркатора (по имени широко использовавшего её в своих картах фламандского картографа и географа Герарда Кремера, более известного под латинизированной фамилией Меркатор). Математически она выражается следующим образом (для сферы): x = R · λ; y = R · ln(tg(π/4 + φ/2), где R — радиус сферы, λ — долгота в радианах, φ — широта в радианах. На выходе получаем обычные декартовы координаты в метрах. Карта в проекции Меркатора выглядит вот так: Легко заметить, что проекция Меркатора очень существенно искажает формы и площади объектов. Например, Гренландия на карте занимает в два раза большую площадь, чем Австралия — хотя в реальности Австралия в 3.5 раза больше Гренландии. Чем же так хороша эта проекция, что стала так популярна несмотря на существенные искажения? Дело в том, что у проекции Меркатора есть важное характеристическое свойство: она сохраняет углы при проецировании. Допустим, мы хотим проплыть от Канарских островов к Багамским. Проведём прямую линию на карте, соединяющую точки отправления и прибытия. Так как все меридианы в цилиндрических проекциях параллельны, а проекция Меркатора ещё и сохраняет углы, то наша линия пересечёт все меридианы под одинаковым углом. А это означает, что проплыть вдоль этой линии нам будет очень просто: достаточно сохранять на всём протяжении путешествия один и тот же угол между курсом судна и направлением на полярную звезду (или направлением на магнитный север, что менее точно), причём нужный угол можно легко измерить банальным транспортиром. Подобные линии, пересекающие все меридианы и параллели под одинаковым углом, называются локсодромами. Все локсодромы в проекции Меркатора изображаются прямыми на карте, и именно это замечательное свойство, крайне удобное для морской навигации, и принесло меркаторовской проекции широкую популярность среди моряков. Следует заметить, что сказанное не совсем верно: если мы проецируем сферу, а движемся по геоиду, то путевой угол определится не совсем верно и приплывём мы не совсем туда. (Расхождение может быть довольно заметным — всё-таки, экваториальный и полярный радиусы Земли различаются более чем на 20 километров.) Эллипсоид тоже можно спроецировать с сохранением углов, хотя формулы для эллиптической проекции Меркатора значительно сложнее, чем для сферической (обратное преобразование вообще не выражается в элементарных функциях). Полное и подробное описание математики проекции Меркатора на эллипсоиде можно найти здесь. Когда мы в Яндексе начинали делать свои карты, нам показалось логичным использовать эллиптическую меркаторовскую проекцию. К сожалению, многим другим картографическим веб-сервисам так не показалось, и они используют сферическую проекцию. Поэтому долгое время нельзя было показывать поверх карты Яндекса тайлы, скажем, OSM — они расходились по оси y, чем ближе к полюсу — тем заметнее. В версии API 2.0 мы решили не плыть против течения, и предоставили возможность как работать с картой в произвольной проекции, так и показывать на карте одновременно несколько слоёв в разных проекциях — как удобнее.