Как наложить gps трек на картинку

GPS и спортивное ориентирование — как эти понятия пересекаются? В общем и целом никак. 🙂 На соренованиях по ориентированию спортсмен в лес может с собой взять только карту и компас. (Ну само собой — голову еще 🙂 ) Никакие GPS приемники с картами не разрешены, да в общем-то и точность карт в них не та что нужна спортсмену на дистанции. Но вот в чем GPS может действительно помочь — так это запомнить весь ваш маршрут и потом показать его на карте в компьютере. Вот это уже интересное его применение и именно этот вопрос хочется как-то раскрыть в этой статье.

Устройства GPS применяемые в ориентировании можно условно поделить на 2 группы. Первая группа — это часы со встроеным GPS приемником. Модели с отдельно закрепляемым модулем GPS есть у фирмы Suunto, и очень неплохие модели есть у фирмы Garmin (Forerunner 305, 405, 310). Вторая группа — это так называемые GPS Tracker-ы устройства позволяющие только сохранять данные вашего маршрута и ничего больше. Они попроще по функциональности и подешевле. И те и другие сохраняют точки вашего маршрута в памяти и потом могут быть просмотрены на компьютере. Какую же программу использовать для просмотра вашего маршрута?

Запускаем QuickRoute, создаем новый файл — File — New. В разделе Map Image выбираем только что отсканированый файл, в разделе Route выбираем откуда брать маршрут — или напрямую с часов (From GPS Device) или из файла с gps координатами.

Открывается программа. На фоне карты видем наш маршрут. Трек и карту надо совместить воедино.

В тулбаре есть несколько кнопочек со стрелками: просто стрелка — для просмотра маршрута в «цвете». Стрелка с кривой линией — для перемещения трека, совмещения отметок на пунктах, поправки линии — совмещения с дорожками и так далее. Стрелка с кружочком — для добавления новых отметок КП (или если удерживать Ctrl — для удаления существующих ненужных отметок КП). Совмещаем все кружочки на gps треке с пунктами на карте, поправляем трек где считаем нужным и дальше собственно переключившись в режим «просто стрелочки» смотрим все свои этапы — как бежали, где блуждали и так далее. 🙂

В тулбаре есть цветовая шкала слева и справа от которой можно указать минимум и максимум скорости бега. Быстрая скорость будет отрисовываться ярко зеленым а медленная — красным цветом. То естьтрек на карте будет сразу отрисовываться в цвете:

Ну и конечно — не забываем сохранить файл командой File — Save.

Маршрут посмотрели, проанализировали. Конечно же теперь хочется поделиться впечатлениями с друзьями-знакомыми. Как? Один из вариантов — выложить в интернет. Именно для этих целей был создан еще один интересный проект — программа DOMA — Digital Orienteering Map Archive.

Что приятно — и эта программа бесплатная. Устанавливается она на сервере, написана на PHP, данные хранит в MySQL базе. Инструкции по установке и сами файлы смотрим-качаем с сайта автора.

Когда все настроено — карту с маршрутом из программы QuickRoute загружаем напрямую на сервер командой Tools — Publish Map. Вводим адрес нашего DOMA сервера, ваш логин и пароль, жмем кнопку Connect. После этого — заполняем данные по нашей новой карте и жмем OK внизу. Карта без всякого вашего вмешательства закачивается на веб сервер и ее теперь могут смотреть и ваши друзья и ваши знакомые и ваши соперники! 🙂

Швед Дмитрий, осень 2010, весна 2011

Что-то мне не сильно понравилась программа. Я занимаюсь спортивным ориентированием. После соревнований у меня остается карта и записанный трек в формате GPX. Дома я сканирую карту. Потом в QuickRoute я загружаю отсканированную карту и трек. И что я вижу? Во-первых, трек не совподает с масштабом карты. Хорошо, начальную и конечную точку маршрута я знаю. Допустим, я вижу самый дальний от старта контрольный пункт и могу определить точку его «взятия» на треке. Тем самым, «подтянув» трек к исходной точке (старту) и растянув/сжав его до дальнего КП, я совмещаю масштабы карты и трека. Но ведь этого мало! Нужно совмещать еще много точек трека с точками на карте, чтобы масштаб точно встал и в «ширину» и нарисовалась точная и полная картина прохождения дистанции. Т.е. нужно кучу времени еще «поработать ручками», чтобы добиться желаемого результата. И то, он окажется не точным, т.к. приходится очень много делать «притяжек» к дорогам и прочим ориентирам, по которым бежал. А если дистанция длинная и сложная и не реально запомнить каждый куст, возле которого бежал? Проще маркером нарисовать на карте свой путь на память, то же самое получается , только гораздо быстрее.)))
Или я чего то не так делаю, не так понимаю?

Очень хорошая статья. Спасибо за обзор.
Есть программы с помощью которых можно наблюдать за движением спортсменов на дистанции в реальном времени как на крупных соревнованиях?

Скажите, как использовать информацию из Suunto X10 для вашей программы? Павел.

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

Чтобы облегчить такую работу, ко многим фотоаппаратам делают специальные насадки, которые во время съемки записывают в файл с фотографией текущие координаты, полученные по спутникам GPS. Но, во-первых, они довольно дорогие (например, для фотоаппаратов Nikon такая GPS-насадка GP-1 стоит около 12 тысяч рублей), а, во-вторых, не для каждого фотоаппарата делают такие приблуды.

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

Что нам понадобится? Во-первых, GPS-трек в формате GPX, во-вторых, фотографии, сделанные фотоаппаратом, в котором правильно установлено дата и время, ведь именно по времени фотографии будут привязываться к треку, и в-третьих, программа, которая будет прописывать координаты в EXIF-поля фотографий. В качестве программы возьмем GPS Photo Correlate.

Эта программа бесплатная, с открытыми исходниками, кроссплатформенная (работает под Windows и Linux). В состав пакета GPS Photo Correlate входят две программы — консольная gpscorrelate и программа с графической оболочкой — gpscorrelate-gui.

Пользователи Ubuntu могут установить их из репозитория, выполнив команду

sudo apt-get install gpscorrelate gpscorrelate-gui

Сначала мы будет пользоваться gpscorrelate-gui для наглядности. Итак, запускаем программу и видим следующее окно:

Для любителей консоли приведу пример использования gpscorrelate:

Результат выполнения этой команды будет выглядеть примерно следующим образом:

EXIF-GPS Photo matching program.
Daniel Foote, 2005.

Reading GPS Data…
Legend: . = Ok, / = Interpolated, /.///./////////////.//////////…

Completed correlation process.

Matched: 472 (29 Exact, 443 Interpolated, 0 Rounded).
Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far,
0 No Date, 0 GPS Already Present.)

После этого в EXIF файлов также будут прописаны рассчитанные координаты.

Теперь у нас в каждой фотографии прописаны координаты, но что нам с ними делать? Хотелось бы уметь находить эти координаты на картах Гугла, Яндекса и, особенно, Викимапии.

Сейчас каждый нормальный просмоторщик фотографий умеет показывать информацию из полей EXIF, в том числе и координаты. Для того, чтобы получить координаты в удобном для поиска виде мы воспользуемся программой exiftool. Это также бесплатная (опять же с открытыми исходниками) кроссплатформенная консольная программа для работы с данными EXIF.

Пользоваться этой программой легко, например, если мы выполним команду

то получим всю информацию, что записана в EXIF. Среди них будут и такие строки:

GPS Altitude : 90 m Above Sea Level
GPS Date/Time : 2012:07:14 10:15:29Z
GPS Latitude : 57 deg 36′ 10.31″ N
GPS Longitude : 39 deg 50′ 35.79″ E
GPS Position : 57 deg 36′ 10.31″ N, 39 deg 50′ 35.79″ E

Но для поиска в картах Гугла, Яндекса и других сервисов нам нужно все координаты перевести в градусы. Разумеется, можно сидеть и на калькуляторе высчитывать градусы по формуле: градусы = градусы + минуты / 60 + секунды / 3600. Но это не наш метод, тем более, что exiftool может делать это сама. Для этого добавим еще один параметр:

GPS Altitude : 90 m Above Sea Level
GPS Date/Time : 2012:07:14 10:15:29Z
GPS Latitude : 57.602864 N
GPS Longitude : 39.843275 E
GPS Position : 57.602864 N, 39.843275 E

Дальше нас будет интересовать только нижняя строка, поэтому линуксоиды могут выполнить следующую команду:

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

GPS Position : 57.602864 N, 39.843275 E

[Пользователи Windows в этом месте дружно рыдают.]

Теперь у нас есть координаты, в таком виде их можно вбить в поиск на всяких картографических сервисах. Вот, например, скриншоты Яндекс.Карт, карт Гугла и Викимапии для этих же координат:

Если фотографий много, то для каждого файла можно, конечно, использовать описанный метод, но для облегчения процесса привязки фотографии к карте с прописанными координатами я написал небольшой скрипт на питоне. Линуксоиды, а также те, кому нужны исходники, могут скачать скрипт photocoord.py на github. Для работы скрипта нужен Python 2.7 (думаю, что Python 2.6 тоже подойдет, но не пробовал).

Как им пользоваться. Так как это совсем первая версия, то там никакого инсталятора нет. Я бы посоветовал сделать симлинк на photocoord.py и сохранить в папку, прописанную в $PATH.

После этого скрипт можно использовать следующим образом:

Для пользователей Windows там же есть скомпилированная версия, не требующая установки Python.

В результате работы скрипт по данным из EXIF сформирует ссылки на сервисы Google Maps, Яндекс.Карты, Wikimapia и OpenStreetMap.

Пример работы скрипта:

Надо только предупредить, что на Викимапии, чтобы перекрестие, обозначающее координаты, не сдвинулось при масштабировании, изменять масштаб нужно кнопками +/-, а не колесиком мыши.

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

20 000 точек в каждом.
Размер карты

20 000х20 000 пикселей
Необходимо получить изображение карты с нанесенными треками и обрезать карту до области с треками.

Реализовать необходимо на стороне вебсервера.
Есть ли готовые решения такой задачи?

  • Вопрос задан более трёх лет назад
  • 2371 просмотр

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

Но вообще нужно перевести координаты трека (а там, скорее всего, географические координаты в WGS84) в систему координат изображения (зависит от того, в какой проекции выполнена эта карта).

Затем координаты элементарными линейными преобразованиями переводятся в пикселы на карте, и поверх изображения рисуется трек. Можно сначала обрезать, а потом нарисовать (сдвинуть трек к координатам нового изображения не забудьте).

Читайте также:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Adblock
detector