какую систему координат использует гугл карты
Работа с картами Гугл (использование, поиск, координаты)
Не нашли нужную информацию?
Как использовать карты Гугл — общая информация
В данной заметке рассказываются, общие принципы работы с сервисом «Карты Гугл». Эта заметка предназначена для тех, кто ни разу раньше не открывал эти карты (или открывал, но мельком, не вникая в их возможности).
Если вы имеете понятие о чем речь (являетесь уверенным пользователем этого сервиса от Гугла) — можете смело эту заметку пропустить.
В принципе, этот сервис сделан американцами и «для американцев» (или, как еще говорят, «имеет интуитивно понятный интерфейс»), поэтому разобраться с ним несложно даже ребенку.
Скажу одну очевидную, но важную вещь:
Это умение может также пригодиться и для подготовки поездок (дальних, и не очень) по России или по другим странам. Карты также позволяют планировать свои передвижения в отпуске и без автомобиля (общественным транспортом).
Основные возможности и управление картами Гугл
В принципе, сервис «карты Гугл» настолько прост, что осваивается «методом тыка» с легкостью за полчаса.
Тем не менее, если интересно, то ниже приводится инструкция по использованию возможностей и режимов работы данного сервиса, с указанием возможностей их потенциального применения для практики поездок.
Основы управления картами
Масштаб карты (крупнее — мельче) регулируется вращением колесика мыши.
Перемещение по карте (сдвиг карты вправо/влево и вверх/вниз) — осуществляется либо стрелочками на клавиатуре, либо (для сдвига в произвольном направлении) — перетаскиванием (поставьте курсор в любое пустое место на карте, затем, нажав и удерживая нажатой левую кнопку мыши — перетаскивайте карту как вам удобно).
Проекция карт — использована цилиндрическая, поэтому, не обращайте внимания на то, например, что Великобритания кажется больше Испании. Это не играет роли. Все расчеты будут верными, компьютер учтет все погрешности проекции.
Получение информации об объектах на карте
Если вы наведете курсор на любое название на карте, он примет вид «руки», а название выделится синим цветом (например «Германия»):
Любая надпись на этой карте — это ссылка, которая ведет на описание объекта. При нажатии на эту ссылку (в нашем случае, на слово «Германия») — выбранный объект откроется в максимальном масштабе (в таком масштабе, в котором он будет занимать всю правую часть экрана, а в окне слева откроется описание этого объекта:
Если вы продолжите эксперимент, и нажмете на название любого города, то, соответственно, аналогично увидите этот город с его описанием (например, Кёльн):
Границы города выделены красным цветом. Немого укрупнив масштаб (колесико мыши крутить «от себя»), вы увидите названия районов города. Нажав на название любого района, вы увидите его границы (например, Эренфельд):
Для того, чтобы убрать левую панель (ту, где дается описание объекта), кликните по любому свободному месту карты. Продолжая укрупнять масштаб, вы увидите на карте различные объекты (достопримечательности, торговые центры, гостиницы, остановки общественного транспорта и т.п.).
Популярные места — оранжевый цвет на картах Гугл
Оранжевым цветом на картах Гугл выделяются места, наиболее посещаемые туристами (т.е. места, где регулярно находится большое количество людей, а значит, там есть что-то интересное) :
Таким образом, вы можете, например, оценить: как далеко ваш отель расположен от наиболее популярных мест (если это для вас важно).
Серые районы на карте, обозначают обычные, ничем не примечательные места (жилые районы, например).
Организации и достопримечательности на картах Гугл
Кликнув на каком-либо объекте на карте, вы получите в левой части окна его описание, контактные данные: адрес, телефоны, сайт (если есть), оценку людей его посетивших, график посещаемости по времени суток и дням недели (когда больше людей посещает этот объект, когда меньше, причем, посещаемость можно анализировать по дням недели) и другую полезную и не очень информацию (для того, чтобы ее увидеть, нужно навести курсор на левое окошко (с описанием) и покрутить колесико.
Список данных в левом окошке будет прокручиваться. Если курсор будет находиться над картой в момент прокручивания колесика, то будет меняться масштаб карты.
Например, Кёльнский собор:
Для того, чтобы закрыть окно с описанием объекта, кликните на пустом месте карты, или нажмите крестик в верхнем правом углу панели с описанием.
Для того, чтобы просто скрыть окно описания (не закрывая его), используйте стрелочку которая правее крестика (на рисунке отмечена красной стрелкой). Для того, чтобы снова отобразить — используйте ее же.
Общественный транспорт
Если вы наведете курсор, например, на остановку общественного транспорта, то увидите название остановки, и список маршрутов транспорта, проходящих через эту остановку.
Если вы кликните по значку остановки, то в левой части экрана откроется описание маршрутов, если вы кликните по ссылке «Табло отправления» (или по любому номеру маршрута) — то получите расписание транспорта на этой остановке.
Эта функция полезна при перемещениях по городу без автомобиля, например. Не во всех странах она работает в полную меру, но… проект развивается, и информация о маршрутах транспорта потихоньку добавляется.
В общем, как и отмечал выше, интерфейс сервиса очень прост. Покрутите его, поэкспериментируйте, понажимайте кнопки, и вы все поймете. Разобраться можно за несколько минут, на самом деле.
Маршруты Гугла — разный цвет на участках маршрута
При прокладке маршрутов на картах Гугла, участки проложенных маршрутов (в основном это касается маршрутов для автомобилей), выделяются различным цветом, в зависимости от степени их загруженности в данный момент.
То есть, это некий аналог «Яндекс-пробок», хотя, у Гугла есть и собственный аналогичный сервис «Гугл-пробки». Тем не менее, при построении маршрута на карте, Гугл подсказывает, какие его участки перегружены.
Синий цвет — нормальная, обычная загрузка участка, средняя скорость движения по нему соответствует расчетной. То есть, движение без особенностей.
Оранжевый — повышенная загрузка (незначительное снижение скорости движения от нормальной), красный — высокая загрузка (значительное снижение скорости), темно-бордовый — очень высокая загруженность (почти стоим).
Напоминаю, что все эти цвета показывают реальную (действительную на момент построения маршрута) загрузку. Посмотрев на одно и то же место в разное время суток, можно увидеть, что цвет маршрута проложенного через него — меняется. Ночью, почти всегда все маршруты синие, а днем, загруженные места становятся красными.
Поэтому, если вы планируете маршрут «на сейчас», то обращайте внимание на эти цвета. Если планируете общий маршрут на поездку «на потом», то на них можно не смотреть.
Маршруты Гугл — знак «въезд запрещен» на маршруте
Иногда, при построении маршрутов, на них можно увидеть знак «въезд запрещен» (в просторечии «кирпич»:
Не нужно пугаться его. Этот знак просто обозначает, что на данном маршруте некоторый его участок закрыт (обычно на реконструкцию), и там будет объезд этого участка.
Если увеличить масштаб карты в районе этого знака, то этот объезд можно увидеть:
Режимы просмотра карт Гугл
Карты Гугла имеют три режима просмотра: собственно, «карта», «спутник», и «просмотр улиц». Как переключаться между ними, и для каких целей можно (целесообразно) использовать каждый режим просмотра, я и расскажу ниже.
Режим просмотра «Карта»
Основной режим просмотра карт. По умолчанию, карты открываются для просмотра именно в нем. Как использовать этот режим, было рассказано чуть выше.
Режим просмотра «Спутник»
Режим включается кнопкой «Спутник», которая всегда находится в левом нижнем углу карты, и переключает режимы просмотра: «Карта» — «Спутник». Режим «Спутник» — это режим отображения на вид улиц, снятый со спутника. Например, дворец Версаль: «карта» — «спутник«.
На любой из открытых карт, найдите эту кнопку и нажмите на нее несколько раз — посмотрите, как это работает. Навигация по спутниковым картам и управление масштабом — выполняются также, как и в режиме «Карта».
Зачем нужен режим просмотра «Спутник»
Режим «Спутник», может быть полезен чтобы уточнить местоположение какого-либо конкретного объекта, который разглядеть в режиме «Карта» достаточно сложно, а затем, снять его координаты для ввода в навигатор.
Например, я чаще всего использую этот режим, для поиска места автомобильной стоянки возле какого-либо объекта. Допустим, вы решили посетить замок Шенонсо:
Это хороший выбор (фото выше — мое, поэтому, знаю о чем говорю).
Открыли карту района объекта — посмотрели. Но, по карте несколько непонятно, с какой стороны лучше подъехать к замку? Где конкретно автостоянка? (В Европе не очень-то бросишь автомобиль «где-нибудь недалеко, где придется», хотя есть и такие варианты).
Вот тут-то и пригодится режим «Спутник». Включаете его, меняете (укрупняете) масштаб, двигаете карту и глазами ищете скопление упорядочено стоящих автомобилей в районе объекта. Нашли? Отлично. Это — стоянка при объекте.
Снимаете координаты точки стоянки (см. ниже), и заносите их в навигатор, после чего, уверенно едете уже конкретно на стоянку.
Кстати, подписывать парковки при объектах на картах Гугл стали совсем недавно, (наконец-то!), так что, этот режим для таких целей становится и не нужен — все видно и в режиме «Карта». Ну, сервис развивается. Это хорошо.
Этим элементом (заблаговременным поиском стоянки), конечно, можно и пренебречь, действуя по принципу «подъеду — разберусь на месте» (и разберетесь на самом деле без проблем (или с ними, но разберетесь все равно)), но я, допустим, люблю точно знать куда я еду.
А вот нарезать круги вокруг чего-то в поисках парковки, я не люблю. Как вы будете поступать в ваших поездках — это остается на ваше усмотрение. Любое решение будет верным.
Режим «просмотр улиц», для чего он нужен
Режим просмотра улиц позволяет вам виртуально прогуляться по улицам города. Бестолковое развлечение как на мой взгляд, (лучше гулять там лично), но иногда, этот режим может оказаться полезным.
Например, заранее посмотреть своими глазами, как выглядит въезд куда-нибудь (например, на подземную парковку гостиницы) чтобы по приезду на место, приезжать уже в «знакомое» (визуально) место, и правильно составить маршрут подъезда сразу.
Также, используя этот режим, можно примерно оценить (своими глазами): а хочется ли вам там прогуляться, и увидеть все это вживую? Т.е., стоит ли посещать этот объект или нет? Тогда включаете этот режим и смотрите. После чего — принимаете решение.
Других предназначений этого режима я придумать не могу, сам его использую по первому варианту (посмотреть какую-то конкретную деталь).
Включение, выключение и использование режима «просмотра улиц»
Для того чтобы включить/выключить режим просмотра улиц, кликните по пиктограмме маленького оранжевого человечка, который нарисован в правом нижнем углу экрана (из любого режима просмотра «Карты» или «Спутник»). Карта (или спутниковая схема) приобретет такой вид:
«Человечек», который включает/выключает режим, обозначен красной стрелкой.
Синим линиями на карте будут отмечены улицы, панорамы которых отсняты (т.е. те, по которым вы можете гулять виртуально). Синими кружочками — отдельные точки съемки (т.е. точки, с которых отснята панорама — «гулять» там нельзя, но можно встать на это место, и осмотреться вокруг, на 360 градусов).
Кликните мышкой на карте в любое место, которое вы хотите посмотреть глазами, и вы попадете на это место. Примерно так:
Стрелочка «1» — обозначает обзорную карту района где вы находитесь (масштаб этой карты можно регулировать нажимая значки плюс и минус, или поместив курсор над ней, и вращая колесико мышки).
Перемещение по улицам (повороты вправо-влево и вверх-вниз, движение) выполняются с помощью мыши (просто нажимаете левую кнопку, и удерживая ее двигаете мышь), или стрелочками на клавиатуре. Колесико мыши удаляет/приближает объекты.
Нажатие на стрелочку обозначенную стрелкой «2», или кнопку «Esc» (всегда, на любой клавиатуре — самая левая верхняя кнопка) — приводит к выходу из этого режима. Попробуйте, погуляйте, вы быстро освоитесь.
Практический пример использования режима «просмотр улиц»
Например, в планах на поездку, было посещение Мадрида. Уже забронирована конкретная гостиница. У нее есть парковка. Как мне на нее попасть? Где ее там искать? Как выглядит въезд на нее?
Зачем это нужно знать заранее?
Бывает, въезд на паркинг отеля, расположен прямо у входа в отель. Т.е. ты подъезжаешь к отелю, и видишь въезд на парковку. Это хороший вариант, когда так получается, например, отель «Эсатитьюд» в Ницце (жили там три ночи):
А бывает, что этот въезд расположен в сотне другой метров от самого отеля (например, гостиница Ибис «Санта-Колома», в Барселоне):
и чёрта с два вы догадаетесь, что это въезд на паркинг отеля (несмотря на то, что он подписан — вы просто не ожидаете, что въезд на паркинг будет чуть ли не за двести метров до него).
В результате, вы припаркуетесь (с нарушением правил) возле отеля, зайдете внутрь и спросите на ресепшене: «А где у вас тут парковка?». После чего вам покажут на нее пальцем, и вы будете объезжать три квартала, чтобы попасть ко въезду на паркинг.
А ведь можно еще дома, (сидя на диване) включить режим просмотра улиц на картах Гугл, и заранее «прогуляться» виртуально вокруг отеля, внимательно «глядя» по сторонам.
Посмотреть сразу на разметку на проезжей части (что там со сплошными линиями?), на знаки. Осмотреть район входа в отель, не видно ли там въезда на паркинг возле него? Не видно.
Тогда, надо немного «прогуляться» по улице вперед-назад. Вуаля!
Вот и въезд на парковку нужного мне отеля (надпись «Ibis» на фирменном значке отеля, и рядом слово «parking» со стрелочкой указывающей направление заезда):
Вот выделенный выше фрагмент более крупно:
Всё. Остается снять координаты этой точки (заезд на парковку) и использовать их при вводе данных в навигатор при поездке в отель.
Кроме того, теперь я точно знаю (я это посмотрел своими глазами), что мне не нужно ехать до входа в отель, парковки там рядом нет (как и места под нее), нет там и въезда на подземный паркинг.
Более того, если я доеду до входа, мне придется объезжать потом два квартала, чтобы попасть ко въезду на парковку, поскольку подъезд осуществляется по улице с односторонним движением.
Когда я приехал в Мадрид — то все оказалось ровно так, как и было на картах. Парковку отеля нашел без проблем и езды кругами (что очень раздражает после 12 часов за рулем — мы приехали туда из Парижа).
Вот такое, например, практическое применение этого режима просмотра использую я. Нужно ли это вам — решать вам. Но рекомендую. Это несложно, но порой, как видите, полезно.
Как снять (определить) координаты объекта (точки) на картах Гугл
Снять координаты любой точки (объекта) на карте Гугл, не просто, а очень просто: надо просто кликнуть мышкой на то место, координаты которого вам надо определить, и в окошке внизу экрана, появится адрес точки и ее координаты:
Координаты вычисляются в системе WGS-84 (для тех, кто знает что это такое, остальные — не заморачивайтесь) в градусах, с точностью до шести знаков после запятой (что соответствует в линейных величинах примерно 0,1 метра).
Точность совершенно избыточная для практики, поскольку бытовые навигаторы и GPS-ки не работают с такими порядками точности. (Профессиональные приборы работают, но вам это ни к чему).
Для бытового использования (ввод координат в автомобильный навигатор, например) достаточно точности до дестятитысячных долей градуса (4 знака после запятой), что примерно соответствует ±10 метрам на местности.
Пять знаков после запятой дают точность координат уже совершенно избыточную — порядка 1 метра.
В определенных системой координатах, ВСЕГДА вначале идет широта точки, следующие цифры — долгота точки.
Северная широта и восточная долгота имеют положительные значения, соответственно южная широта и западная долгота — отрицательные.
Поиск объектов на картах Гугл
Для того, чтобы найти нужный вам город, объект, адрес, или просто точку с определенными координатами, можно воспользоваться поиском по картам.
Окошко поиска расположено в верхнем левом углу карт. Начните вводить в него название объекта, который вы хотите найти. Выберите из предложенного списка нужный вам объект (город, место) и нажмите на него:
Откроется карта выбранного объекта (в случае с примером — города Мадрид).
Поиск объекта (точки) по координатам
Координаты можно вводить в поле поиска в различных форматах:
При вводе координат в указанных выше форматах — вас поймут, и эту точку найдут.
Особенности ввода координат при поиске:
На этом, обзор сервиса «Карты Гугл», посвященный общим принципам работы с ним, я закончу. Кому недостаточно информации по данному вопросу, можете ознакомиться с основными возможностями этого сервиса поближе, в Справке самого Гугла (на русском языке). Или освойтесь с программой методом «тыка». Тоже хороший способ.
Google Web Mercator: неоднозначная система координат
Первого октября 2014 года американское Национальное Агентство Геопространственной Разведки (NGA) опубликовало отчет, в котором изложена критика системы координат Web Mercator, используемой во множестве картографических веб-сервисов. К документу прилагалось подробное разъяснение проблемы и рекомендации для партнеров NGA. Документ получил большой резонанс, но далеко не все статьи, основанные на этом отчете, отличались точностью и грамотностью изложения. Это касается, например, статьи на сайте ГИС Ассоциации, которую, по причине грубейших ошибок в терминологии, можно считать безграмотной. Поскольку именно с этой системой координат разработчики веб-сервисов сталкиваются чаще всего, я считаю, что есть смысл разобраться в проблеме.
Для начала — пара определений, без которых некоторые детали не могут быть ясны. Важно понимать, что Web Mercator — это система координат, а не только проекция, хотя ее название и напоминает известную многим проекцию Меркатора. Именно это терминологическое разночтение вводит в заблуждение читателей статьи на сайте ГИС Ассоциации. Разница между проекцией и системой координат состоит в том, что проекция — это только способ, которым сложная форма модели фигуры Земли разворачивается на плоскость, тогда как система координат включает в себя также математическое определение модели (эллипсоида или сфероида), аппроксимирующей сложную фигуру Земли.
На этой иллюстрации красным отмечено то, что относится только к механизму проекции (в данном случае — цилиндрической). К системе координат же относится вообще все, что здесь изображено.
В свою очередь, именно эта самая аппроксимирующая модель поверхности (пунктирная сфера на рисунке выше, на которой определены координаты λ,φ) и является источником проблемы, о которой дальше пойдет речь.
Я не могу сказать достоверно, кому первому и когда все это пришло в голову. Но, на сколько мне известно, первым крупным проектом, который стал использовать систему координат Web Mercator, был сервис Google Maps, и случилось это в 2005 году. Перед разработчиками стояла тогда задача упростить вычисления, необходимые для работы с картографическими данными, и самое очевидное, что можно было сделать — это использовать в системе координат сферу вместо эллипсоида. Занятно, что сам Герард Меркатор, скорее всего, исходил из таких же геометрических представлений, создавая свой способ проецирования карт на плоскость, потому что только Ньютон, живший несколько позже, предложил гипотезу о том, что Земля из-за центробежной силы имеет форму эллипсоида вращения, а не шара. Таким образом, разработчики Google, в каком-то смысле, вернулись в шестнадцатый век.
Критика в адрес этого подхода в профессиональных кругах звучит уже не в первый раз. Начиная с 2005 года, организация European Petroleum Survey Group (EPSG), занимающаяся стандартизацией в области систем координат и являющаяся держателем реестра их идентификаторов — кодов EPSG — отказывалась присвоить системе Web Mercator свой собственный официальный код, мотивируя это ее заведомым геометрическим несовершенством. Потому в сети можно встретить ссылки на эту систему через неофициальные коды: EPSG:900913, EPSG:102113 и другие. Однако, в 2008 году этой организации пришлось сдаться и присвоить код, так как популярность системы выросла, и ее нужно было как-то однозначно обозначать, чтобы не породить еще большую анархию. Первая попытка дать определение системе была не совсем удачной, но в конце концов ей был присвоен официальный SRID EPSG:3857.
Поскольку проекции — предмет изучения математики, я начну с формул, а потом дам им графическую иллюстрацию. Строго говоря, не обязательно даже хорошо владеть тригонометрией, чтобы понять разницу между реализацией систем координат на основе проекции Меркатора, сферы в одном случае и эллипсоида — в другом. Формулы заметно различаются внешне.
Проекция Меркатора эллипсоида на плоскость задается следующим образом:
где:
x и y — прямоугольные координаты,
λ — долгота на эллипсоиде в радианах,
φ — широта на эллипсоиде в радианах,
a — значение большой полуоси эллипсоида,
e — значение эксцентриситета эллипсоида (отношения большой и малой полуосей).
Если же вместо эллипсоида используется сфера, как это происходит в системе координат Web Mercator, все становится существенно проще, так как формула для ординат (оси Y) вырождается, давая следующее:
Согласитесь, выглядит куда проще и короче, чего и добивались разработчики Google. Это позволяет довольно заметно сократить количество математических операций при работе с картографическими материалами в клиентских и серверных приложениях.
Геометрия и картография
Даже если вообще не вдаваться в формулы, простые иллюстрации неплохо демонстрируют суть проблемы. Поясню сначала, что принцип построения проекции Меркатора состоит в том, что любая точка поверхности эллипсоида или сфероида проецируется на цилиндр, внутрь которого этот эллипсоид помещен так, чтобы их вертикальные оси совпадали, а поверхности либо касались по одной линии (наиболее частый случай), либо пересекались по двум. (Смотрите иллюстрацию выше). Далее, условные лучи проекции выходят из центра эллипсоида, пересекают его поверхность в точке P и попадают на поверхность цилиндра в точке P’, куда и переносится соответствующая точка поверхности Земли. Легко мысленно представить себе, что если реальная поверхность Земли при этом сначала спроецирована не на довольно близкий к ее форме эллипсоид, а на идеализированную сферу, то при проекции на цилиндр точек сферы, одни и те же исходные точки земной поверхности окажутся на ином расстоянии от линии экватора по вертикальной оси, чем в случае с эллипсоидом.
Попробую проиллюстрировать «масштабы бедствия». Возьмем в архиве NASA EOSDIS спутниковый снимок в естественных цветах Центрального Федерального округа России, сделанный аппаратом MODIS Aqua с разрешением 250 метров на пиксель 21 сентября 2014 года (именно этот день — потому что он был ясным, так будет красивее) — это будет наш фон.
Далее, запросом через Overpass Turbo выгрузим из базы OpenStreetMap административные границы Московской области в формате GeoJSON. Код запроса:
Теперь, используя Global Mapper, трансформируем данные границ Московской области из географической проекции в проекцию Меркатора эллипсоида WGS84. А далее, чтобы имитировать ситуацию, когда система координат будет опознана неправильно, скопируем получившиеся данные и вручную сменим определение системы координат на Web Mercator. В реальности, скорее, возможна обратная ситуация: данные в Web Mercator могут быть приняты за данные в WGS84/Mercator (это более чем возможно, потому что у Web Mercator есть еще куча названий, в некоторых из которых присутствует «WGS84»), однако от нашей имитации она будет отличаться только направлением сдвига. Получившиеся данные загрузим в Global Mapper, наложим поверх сетку с шагом 100 километров и посмотрим, что получилось.
Зеленый контур на карте находится там, где нужно, а красный — сдвинут. Величина этого сдвига — 19,6 километров. Это не значит, что такая ошибка существует во всех картографических сервисах, использующих эту систему координат, вовсе нет. Но она проявится в случае, если взять данные в этой системе и попытаться совместить с другими данными без ее верного учета. В этом случае, к ней будет применено неверное обратное преобразование в географические координаты, что и приведет к ошибке.
Некоторые картографические проекции обладают особыми свойствами, которые критичны для решения навигационных задач. Проекция Меркатора входит в их число, потому что ее широко используют для создания морских и аэронавигационных карт. Это возможно благодаря такому геометрическому свойству этой проекции, как конформность. В данном случае, оно означает, что форма объектов достаточно большого размера на этой карте сохраняется, так как сохраняются величины углов между линиями. Для навигации это означает, что глядя на карту, можно вычислить направление на искомую точку относительно меридиана (направления на географический север) и, двигаясь в этом направлении по магнитному компасу или под постоянным углом к линии на Полярную звезду, оказаться в нужном месте. Такой путь называется «локсодрома» и не является кратчайшим путем между двумя точками на поверхности Земли, а современные навигационные устройства позволяют вычислять путь по «ортодроме» — действительно кратчайшей линии, но от проекции Меркатора не отказываются, потому что карта, выполненная в ней, дает возможность в экстренной ситуации использовать для навигации подручные средства, не полагаясь на GPS-приемник и прочую электронику.
И вот здесь система координат Web Mercator оказывается обманчивой. Хотя она и основана на проекции Меркатора, но использование сферы с постоянным радиусом, как предельного упрощения модели поверхности Земли, лишает ее свойства конформности. Это значит, что двигаясь с постоянным курсовым углом, измеренным по такой карте, не удастся попасть в искомую точку из-за искажений углов в этой системе координат. Казалось бы, это не так важно для веб-сервисов, потому что по ним никто в своем уме не будет прокладывать путь в экстренной ситуации. Однако, разнообразие веб-сервисов велико, и гарантировать, что кто-то из разработчиков не вздумает считать какие-то направления в этой проекции — нельзя. При вычислениях в этой проекции ошибка может очень сильно накапливаться. Плюс, сейчас весьма популярны средства вроде САС.Планета, выкачивающие данные из веб-сервисов, и никто не может предугадать, что дальше с этими данным сделает пользователь.
Масштабы проблемы в данном случае тоже довольно легко измерить. Возьмем тот же снимок для фона, те же данные о положении административной границы Московской области. Теперь нам нужны три линии: ортодрома (кратчайшая с учетом кривизны Земли) и две локсодромы, построенные в системах Mercator/WGS84 и Web Mercator. Строить эти линии будем между самой южной точкой в Серебрянопрудском районе области, недалеко от населенного пункта с занятным названием «Мочилы» и самой северной — в Талдомском районе.
Построим ортодрому. Теперь измерим ее длину (получилось чуть меньше трехсот семи километров) и начальный угол относительно меридиана. Дальше — самое интересное. Перепроецируем рабочее пространство в проекцию Меркатора и построим из той же начальной исходной точки прямую в этой проекции линию, задав измеренный угол и длину 307 километров, не глядя, куда она попадет другим концом. Повторим то же самое, но в системе координат Web Mercator. Две локсодромы готовы. Для наглядности еще найдем на ортодроме центральную точку, поделив ее пополам и поставив в этом месте маркер. Перепроецируем рабочее пространство в UTM 37N WGS84, чтобы добиться минимального искажения углов, пропорций и прочих свойств карты.
В таком масштабе почти ничего нельзя разобрать — все линии практически сливаются. Но взглянем поближе на центр линий, включив предварительно сетку с шагом 100 метров.
Зеленая линия с черной точкой на карте — это ортодрома. Желтая — локсодрома, которая построена в Mercator/WGS84, красная — локсодрома в Web Mercator. Как и ожидалось, локсодромы ушли от ортодромы, потому что они не являются кратчайшими расстояниями и относительно прямой ортодромы являются дугами. Основательно ушли — более чем на 500 метров. Но куда же они нас привели?
Желтая локсодрома, построенная в проекции Меркатора эллипсоида WGS84, описав правильную дугу, «волшебным образом» вернулась к нужной точке. Это означает, что в данной проекции можно попасть в нужную точку, зная начальный курсовой угол и двигаясь все время под этим углом к направлению на географический север. А с красной так не вышло — она промахнулась более чем на полторы сотни метров. Полторы сотни на три сотни тысяч метров пути. Четыре сотых доли процента. Много это, или мало? Это достаточно, чтобы не считать ее конформной и не использовать для вычислений, где это важно.
Проблема с определением того, что используется система координат Web Mercator — не выдумана. Из-за ее, скажем так, «анархического» прошлого у нее столько имен, что все просто невозможно перечислить. Однако, я попробую продемонстрировать, на сколько все ужасно, перечислив только некоторые из известных имен и кодов этой системы координат:
Web Mercator, Google Web Mercator, Spherical Mercator, WGS 84 Web Mercator, WGS 84/Pseudo-Mercator (при том, что «псевдо» тут как раз не Меркатор, а WGS84), WGS84 Web Mercator (Auxiliary Sphere), Popular Visualisation CRS / Mercator, WGS84 / Simple Mercator.
EPSG:900913, EPSG:3785, EPSG:3857, EPSG:102113, ESPG:102100, EPSG:41001.
Вот так эта система выглядит в формате PROJ.4:
+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
Здесь следует обратить внимание на равные значения параметров размеров полуосей эллипсоида a и b. Их равенство и означает использование сферы. В случае, если это «честная» проекция Меркатора эллипсоида WGS84, она же EPSG:3395, в формате PROJ.4 она определяется вот так:
+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
Я не пытаюсь тут доказать, что система координат Web Mercator никуда не годится. Годится, конечно. И ровно тот же вывод (кроме вопросов, где важно соответствие военным стандартам США) можно обнаружить в отчете NGA. Просто важно понимать разницу между системами координат и их возможностями. Важно понимать, что Web Mercator используется почти везде: Google, OpenStreetMap, Bing, Yahoo и несчетное число других сервисов. Она также заложена в формат Slippy Map Tiles, в котором хранятся многие тайловые источники растровых данных. Она столь популярна, что далеко не все, кто ее используют, задумываются над тем, как же именно она устроена. А задуматься иногда стоит, особенно если планируемый сервис должен выполнять функции, более сложные чем простой показ картинки с картой.
Несколько занятных фактов вместо заключения
Агентство NGA, с отчета которого начался новый виток этой истории, до появления таких сервисов как NASA World Wind, Google Maps, Яндекс.Карты и других, было единственным доступным любому источником спутниковых снимков сравнительно высокого разрешения (10 метров на пиксель, черно-белое изображение) на территорию России, которые можно было бесплатно скачать через сервис NIMA Raster Roam (тогда NGA еще носило название NIMA — National Imagery and Mapping Agency). Эти снимки были частью разведывательной программы, выполнявшейся спутниками начиная с пятидесятых годов, и попавшие в программу рассекречивания в 1995 году.
Сервис Яндекс.Карты не использует систему координат Web Mercator, он использует честную проекцию Меркатора эллипсоида WGS84, код EPSG:3395. С чем это связано изначально, мне неизвестно, но было бы весьма интересно услышать комментарии сотрудников Яндекса, которые здесь, на Хабре, присутствуют в немалом количестве.
Местные картографические сервисы скандинавских стран часто не используют проекцию Меркатора вообще, предпочитая те системы координат, которые приняты в этих странах, например, норвежский государственный сервис Norge i Bilder использует три зоны проекции UTM и датум EUREF89. Это вызвано тем, что в северных широтах проекция Меркатора дает слишком сильные деформации масштаба.