RU:Convert GPS tracks

From OpenStreetMap Wiki
Jump to navigation Jump to search

an unequal sign

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

OpenStreetMap использует для загрузки и публикации GPS-треков так называемый GPS Exchange Format (GPX,RU:GPX), основанный на XML. Большинство GPS-приёмников имеют собственные форматы данных, но многие из них позволяют сохранять данные в GPX.

См. также, как записывать треки и как закачивать.

Какие форматы поддерживаются?

Сервер понимает обычный формат GPX версий 1.0 и 1.1 (за исключением того, что тег <time> должен быть проставлен на каждом треке или точке (waypoint). Как загрузить треки с отсутствующими временными метками – см. здесь.

На OpenStreetMap используется датум WGS-84, поэтому, пожалуйста, убедитесь в том, что ваши треки именно в формате WGS-84 lat/lon (широта/долгота). GPX-файлы всегда должны быть в WGS-84, но нужно быть внимательным, если треки конвертируются из других форматов или датумов.

Несколько треков в одном GPX-файле

Не нужно закачивать несколько треков в одном файле. Формат GPX это поддерживает, но сервер свяжет их все в один большой трек. Скажем, если у вас в одном GPX-файле был трек по Москве и трек по Хабаровску, то OSM соединит их в один гигантский трек через всю страну. В общем, закачивайте разные треки в отдельных файлах.

Конвертация форматов

Список форматов данных GPS и методы конвертирования их в GPX и обратно можно найти здесь. Большинство соответствующего софта для различных платформ (в т.ч. для мобильных) перечислено на странице Software.

GpsMapEdit подходит для Garmin и Ozi — форматов. Исправляет ошибки (в отличие от gpsBabel).

g7toWin [1] — достаточно всеядная (и бесплатная) софтина.

Кодировку в русских названиях точек они, к сожалению, портят.

Треки PocketGIS конвертируем с помощью LMTtoGPX: [2]

Конвертация треков в GpsBabel (командная строка)

Простейший способ:

gpsbabel.exe -w -i mapsource -f MyFile.mps -o gpx -F Tracks.gpx

(остальные форматы искать в справке gpsbabel: [3])

Склейка всех MPS-файлов папки в GPX

Требуется Python и GpsBabel

convertMpsGpx.py

from glob import glob
import os

os.system("del Tracks.mps");

fs=glob("*.mps")
s=""
for fname in fs:
	s=s+" -f "+"\""+fname+"\""
	print "found file %s"%fname

fs="gpsbabel.exe -w -i mapsource"+s+" -o gpx -F Tracks.gpx";
print fs
os.system(fs);

fs="gpsbabel.exe -t -i mapsource"+s+" -o mapsource -F Tracks.mps";
print fs
os.system(fs);


Конвертация точек c использованием GPSBabel (командной строки) BAT — файл Windows, переводит в gpx пачку wpt, plt и gdb (OziExplorer, ГисРусса, Гармин)

@echo off
SETLOCAL
FOR %%i in (%*) do (
IF "%%~xi"==".gdb" (
   echo %%i ".gdb(mapsouce)" %%~dpni.gpx
   gpsbabel.exe -i gdb -o gpx %%i %%~dpni.gpx
)ELSE IF "%%~xi"==".plt" (
   echo %%i ".plt(ozi)" %%~dpni.gpx
 . gpsbabel.exe -i ozi -c CP1251 -f %%i -o gpx -F %%~dpni.gpx
)ELSE IF "%%~xi"==".wpt" (
 . echo %%i ".wpt(ozi)" %%~dpni.gpx
   gpsbabel.exe -i ozi -c CP1251 -f %%i -o gpx -F %%~dpni.gpx
)ELSE (
   echo %%i -- skip
)
)

(прочие исходные форматы добавляются по вкусу) [автор zgremlin, с форума]

Попроще (poi2gpx.bat):

gpsbabel -w -i gdb -c cp1251 -f %1 -o GPX -c UTF-8 -F %1.gpx