Как стать автором
Обновить

Начинаем работать с цифровыми картами (ГИС)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров13K
Всего голосов 11: ↑9 и ↓2+8
Комментарии12

Комментарии 12

Сервисов ГИС существует огромное множество. Поэтому, что бы не раздувать статью, я старался отбирать именно те, что на слуху у многих людей. И, закономерно, многие хорошие ГИС не будут добавлены в статью.

По желанию комментаторов я могу упомянуть ещё парочку сервисов. Давайте так, если будет 3 или больше комментариев за добавление определённого сервиса, то я его упомяну в статье :)

Важно понимать, что проекция отвечает за внешний вид карты, а система координат – за координаты (единицы измерения).

Пространственные данные состоят из координат в системе координат определённой картографической проекции.

Можно этот момент поподробней раскрыть? Все время запутываюсь

Я взял координаты точки с Яндекса: 56.643434, 37.671169. Для каких задач мне критично знать, что эти числа получены из Web Mercator? Или широта и долгота это всегда одно и то же?

Другой пример: SHP-файлы. Внутри, как я понимаю, значения X и Y. Рядом лежит prj-файл с содержимым GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.017453292519943295]]. Как я понимаю, с помощью этой GEOGCS я могу перевести X и Y из SHP-файла в широту и долготу. А у если бы у меня наоборот были только широта и долгота, то что из этого мне необходимо было бы оставить? Только DATUM?

На счёт картографических проекций, систем координат, датумов и т.д. планируется отдельная подробная статья. К сожалению, не могу знать, когда она примерно выйдет, но думаю в течение пары-тройки месяцев.

Для каких задач мне критично знать, что эти числа получены из Web Mercator? Или широта и долгота это всегда одно и то же?

Это важно знать в тех областях, где важна высокая точность. WebMercator даёт тем больше отклонения, чем дальше от экватора происходит измерение. Так, отклонение может доходит. до 40 км.

https://georeference.org/forum/t143203
https://en.wikipedia.org/wiki/Web_Mercator_projection

Широта и долгота означают одно и то же, однако точность измерения широты и долготы разная. В web mercator скорость обработки важнее точности, из-за чего появляются такие отклонения. Для обычного пользователя в целом может быть достаточно, однако, для, допустим, кадастрового инженера, который замеряет границу участка, отклонение до 40км очевидно недопустимо. Поэтому проекций существует огромное множество.

Другой пример: SHP-файлы. Внутри, как я понимаю, значения X и Y. Рядом лежит prj-файл с содержимым ...

К сожалению, с SHP-файлами я ещё не работал и на их счёт сейчас ничего не могу ответить. Однако, я этот момент себе запишу и, возможно, разберу в более подробной статье по картографическим проекциям.

Давайте я попробую внести ясность, раскрыв смысл нескольких терминов.

Геодезическая широта - угол между нормалью к эллипсоиду и плоскостью экватора. Геодезическая долгота - двугранный угол между плоскостями меридиана и нулевого меридиана.

WGS-84 - это наименование эллипсоида, который описывается определёнными параметрами (SPHEROID["WGS_1984",6378137.0,298.257223563]] из вашего примера). Также WGS-84 это наименование датума. Датум - это то, как этот эллипсоид расположен в теле Земли (грубое упрощение). Когда вы просите любую систему рендеринга нарисовать вам данные в "географической системе координат", вы получаете изображение, которое выглядит как квадратная цилиндрическая проекция. В вашем SHP-файле X и Y это и есть широта и долгота, о чём говорит строка с описанием проекции.

Когда Яндекс показывает вам значения 56.643434, 37.671169, то скорее всего вам показывают исходные данные - геодезическую широту и долготу точки, на которую вы ткнули на карте. Скорее всего это действительно EPSG:4326, но не факт. Широта и долгота это не "всегда одно и то же". Если используется другой датум и другая референц-поверхность (эллипсоид с другими параметрами или сфера), то и значения широт и долгот будут другими.

Отдельно про разницу Меркатора и Веб-Меркатора (в интернете об этом много, но каждый новый раз не лишний)

Проекция Меркатора - это уравнения перехода от географических координат к плоским прямоугольным. Есть уравнения проекции Меркатора для сферы, есть для эллипсоида. Проекция Меркатора для эллипсоида WGS-84 это EPSG:3395 (WGS 84 / World Mercator) и только она. Судя по всему, её и использует Яндекс.

Проекция Меркатора для сферы это, например, ESRI:53004, но в каталоге есть и другие - для разных параметров сферы. Чтобы честно получить проекцию для сферы надо сначала перевести геодезические координаты в геоцентрические. Разница в том, что геодезическая широта - это угол между нормалью к поверхности и плоскостью экватора. А геоцентрическая широта - это угол между радиус-вектором и плоскостью экватора. На сфере нормаль и радус-вектор совпадают, а на эллипсоиде не совпадают. Поэтому чтобы корректно построить проекцию Меркатора для сферы, если у вас есть данные в датуме WGS-84, надо их сначала перевести в геоцентрические, и только потом выполнять проецирование на плоскость.

В веб-меркаторе (EPSG:3857) происходит следующий трюк: координаты используются геодезические на эллипсоиде, а формулы используются для геоцентрических координат на сфере. Из-за этого раньше возникала всяческая путаница и неразбериха, когда люди пытались одновременно использовать EPSG:3395 и веб-меркатор. Если пытаться просто совместить две карты в этих проекциях без дополнительных преобразований, то ничего не получится, всё разъедется.

Поэтому мой ответ на ваш вопрос "Для каких задач мне критично знать, что эти числа получены из Web Mercator?": для любых. Если вы знаете, что у вас данные в проекции веб-меркатора, вы просто указываете в метаданных код проекции 3857 и ГИС-ПО делает все нужные преобразования за вас. Если вы не знаете - у вас разные данные "разъедутся", и довольно сильно.

Не согласен с тем, что веб-меркатор какой-то неточный. Картографическая проекция не может быть точной или не точной. Картографическая проекция это взаимно-однозначное соответствие между географическими координатами и плоскими. Это условие для веб-меркатора сохраняется.

Неточными могут быть измерения, выполненные в этой проекции. Поэтому не надо делать в ней измерений - никакая проекция Меркатора для этого не предназначена, там очень большие искажения длин и площадей.

Неточным может быть преобразование координат - там используются разложения в ряды, там есть ограничения по точности со стороны арифметики с плавающей точкой. Но эти тонкости касаются уже геодезистов и тех, кто с кадастром рабоатет. Если вам надо плюс-минус метр, встроенные в ГИС-ПО преобразования Гельмерта "по умолчанию" вам подойдут.

Спасибо большое за статью! Правильно, что пишете о ГИС, просвещаете. Обожаю это направление.

Статья хорошая. Есть некоторые неточности, но некритичные. Разве что обращу внимание на фразу по поводу растров "получается из фотоаппаратов (в том числе расположенных на спутниках)". Не совсем так. Есть разные способы получения растровых карт и это сложнее, чем просто фотоснимок. Особенно космическая съемка. На спутниках не фотоаппараты стоят)

Хочется также подробнее узнать, какой функционал ГИС используется в проектах БФТ, кроме визуализации, поиска объектов на карте? Пространственный анализ применяется?

Спасибо большое за комментарий, очень приятно )

Не совсем так. Есть разные способы получения растровых карт и это
сложнее, чем просто фотоснимок. Особенно космическая съемка. На
спутниках не фотоаппараты стоят)

Да действительно, всё происходит намного сложнее и мне нужно будет подредактировать этот момент. Благодарю за замечание.

Хочется также подробнее узнать, какой функционал ГИС используется в
проектах БФТ, кроме визуализации, поиска объектов на карте?
Пространственный анализ применяется?

Знаю, что на бекенде происходит огромное кол-во пространственной аналитики, учитывая точность определения координат пространственных объектов; работа со множеством систем координат, проверка топологии; происходит разбор и аналитика с сотнями миллионов пространственных объектов. И, конечно, большое кол-во данных уходит в рендеринг.

Я работаю фронтенд-разработчиком, поэтому подробно об этом не смогу описать. Но, возможно, будет статья от бекенд разработчика на эту тему.

Великолепная статья. Всё кратко и по делу. Такую бы статью несколько лет назад, не пришлось бы набивать свои шишки. )

Спасибо большое за комментарий, очень приятно )

В планах есть ещё статьи, так что постараюсь не ударить лицом в грязь и облегчить вход людей в картографию. Тема действительно довольно сложная, особенно в начале пути.

Пишите про OpenLayers, интересно.
В опросе нет варианта - "Я всё это знаю" ))

В опросе нет варианта - "Я всё это знаю" ))

Да, неплохой вариант, надо было добавить )

а ещё интересно чтобы ваши бэкенд-коллеги рассказали о том, как они на бэке карту рендерят, тайлы хранят... с пространственными данными в БД работают. Там ведь, в НСПД, много всего и данных много

Зарегистрируйтесь на Хабре, чтобы оставить комментарий