Найти тему

Как построить маршрут на карте, если есть только «сырые» географические координаты (широта, долгота)?

Оглавление

Представим, что у нас есть много географических координат, например, в таком виде: 43°28'4.5120" 41°15'27.7200" 43°28'4.5120" 41°15'27.7200" 43°28'5.2320" 41°15'26.3880" 43°28'5.5200" 41°15'25.2000" 43°28'4.5120" 41°15'23.2560"...

Допустим, есть такой список координат
Допустим, есть такой список координат

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

Самым распространённым форматом для импортирования/экспортирования треков является GPX (расширение файла .gpx). GPX хорош тем, что позволяет хранить и передавать информацию о точках, высотах, времени, направлении и даже есть возможность выгружать описание и комментарии. На самом деле, если есть просто координаты, то расширение итогового трека не особо важно, но т.к. .gpx принимает любая карта и навигатор, то лучше работать с ним.

Итак, теперь осталось разобраться, как из нашего списка координат получить файл .gpx с этими координатами внутри и увидеть маршрут на карте.

Использовать конверторы

В моём случае, координаты записаны в документе Microsoft Excel, то есть формат .xlsx, а нужен .gpx.

Значит, можно найти конвертер XLSX to GPX и... получить полную дичь в качестве результата.

Проблема конвертеров в том, что они не указывают каким образом должны быть организованы координаты и в каком формате сами координаты должны быть записаны, чтобы конвертация прошла успешно. Поэтому, используя конверторы результаты могут быть совершенно разные: ошибка конвертации, файл с одной случайной точкой на карте или в лучшем случае нужный нам маршрут, но без линий между точками, то есть не маршрут вовсе!

Не отрицаю, что есть нормальные конверторы с пояснениями и нужным результатом, но если честно я такие не нашёл. Если знаете нормальные конверторы, пришлите ссылку в комментарии, пожалуйста.

Но к счастью можно решить задачу отталкиваясь от фундамента и получить 100% нормальный результат.

Создать .gpx самостоятельно

Этот способ 100%, но необходимо немного заморочиться.

Для начала идём на любую карту, рисуем маршрут из 2-х точек и выгружаем его в формате GPX. Например, на mapmagic

-3

Теперь, необходимо открыть этот файл в блокноте и посмотреть как организован GPX.
Для этого нужно включить отображение расширения файлов в Windows и переименовать
.gpx в .txt.

-4

Открываем этот файл:

Структура .gpx
Структура .gpx

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

Видим, что формат записи координат гг.ггг° (43.432650), а у меня формат гг°мм'сс" (43°28'4.5120"). Соответственно, первое что нужно сделать, это перевести имеющиеся координаты в формат гг.ггг°. Это можно сделать с помощью этого конвертера, который позволяет загрузить файл Excel и всё быстро пересчитать.

Пересчёт координат на https://geoproj.ru/
Пересчёт координат на https://geoproj.ru/

Ок, теперь необходимо подготовить GPX файл для записи наших координат. Для этого нужно удалить лишние атрибуты в файле, оставив только сами координаты. В нашем случае, лишними будут атрибуты времени (<time></time>) и высоты (<ele></ele>).

В итоге, файл станет выглядеть вот так:

-7

Теперь необходимо по шаблону преобразовать все имеющиеся у нас координаты в стандарт GPX.

В Microsoft Excel нужно добиться того, чтобы в первом столбце (A) была широта (lat), а во втором (B) долгота (lon), а каждая точка координат должна быть записана с новой строки.

Теперь, согласно стандарту разметки GPX нужно прописать следующую формулу в третьем столбце:

=СЦЕПИТЬ("<trkpt lat=";"""";A1;"""";" lon=";"""";B1;"""";"></trkpt>")

Формула в Excel для создания строки для файла .gpx
Формула в Excel для создания строки для файла .gpx

Остаётся протянуть эту формулу на все строки, где есть координаты:

-9

Теперь, в третьем столбце (C) у нас фактически находится готовый маршрут. Копируем все строки и вставляем в наш блокнот:

-10

Сохраняем, закрываем блокнот и переименовываем его обратно (изменяем расширение файла) .txt → .gpx

Готово! Теперь импортируем получившийся файл на любую карту и наблюдаем нормальный маршрут по координатам. Карта автоматически добавить в этот трек высоты и иногда даже рассчитает время.

Загрузил созданный трек на OsmAnd
Загрузил созданный трек на OsmAnd

По аналогии можно работать и с другими форматами, необязательно с GPX. Процесс и результат будет плюс минус одинаковые.

Способ может показаться сложным, но это дело привычки и навыков, освоив которые можно быстро и самостоятельно составлять маршруты, если так оказалось, что есть только сырые координаты.