Расширение формата GPX через extensions

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Расширение формата GPX через extensions

Сообщение vasketsov » 22 ноя 2011, 16:38

Преамбула:
Так уж получилось, что в формате gpx не определены некоторые важные параметры (тэги). Наиболее известным "косяком" такого рода безусловно является отсутствие стандартного документированного способа сохранить скорость движения в конкретной точке (в терминах gpx - стандарт предусматривает сохранение скорости только внутри <extensions> для <trkpt>). Поэтому разные "писатели треков" идут на разные ухищрения, а разные "читатели треков" не всегда за ними поспевают. Например, GPSMapEdit читает/сохраняет тэг <speed> прямо внутри <trkpt> (что, напомню, противоречит стандарту). Из известных расширений gpx наверное самое известное - это гарминовское расширение, когда в extensions пихается глубина и температура. Пожалуй, это практически единственный случай, когда расширение оформлено как подобает (тут и тут, формат тривиальный). Так как формат gpx основан на формате xml, файл расширений в формате xsd используется (в приложении к gpx) для добавления новых полей, описанию их человеческим языком с комментариями, указания возможных типов и диапазонов значений.
Хотелось бы при реализации сохранения в GPX сделать всё по-стандарту (впрочем уж так и быть, с опциональной поддержкой тэга speed для GPSMapEdit, всё же основной инструмент для многих).
Да и всё равно коли когда-нибудь делать привязку видео или аудио к точкам трека, по любому без расширения не обойтись, ибо более или менее стандартных широко распространённых расширений для этого я не знаю.
Как ни крути, gpx пока что самый продвинутый формат для записи треков.

Содержательная часть:
1. Необходимо придумать место (адрес http:) для сохранения файла xsd. Не в викисасии (ибо правиться этот файл не должен не то что кем попало, а вообще никем после публикации). Впрочем в викисасии может быть описание формата и вообще особенностей сохранения и чтения треков в программе (пока что этого нет, даже раздела). Доступность файла необходимо обеспечить для а) корректной работы сторонних парсеров gpx, которые могут как минимум проверять поля и типы в расширениях, б) для ознакомления (всё же несколько глупо полностью дублировать файл в викисасии, там достаточно ссылки на файл). Естественно, этот файл может быть закэширован броузерами, прокси-серверами и т.п. Для работы самой саспланеты он не потребуется.
2. Пока делаю и ещё не опубликовал - прошу дать ссылки на известные расширения (на xsd). Без xsd нашёл "nmea:", но там в разных местах разные параметры, а описаний в виде xsd вообще нет, так что по большому счёту я забил на него (хоть и добавил его опциональную поддержку). Про гармин знаю, но не сделал, ибо там только температура и глубина, для саса скажем так не очень актуально (впрочем, могу и ошибаться).
3. Любые другие комментарии и пожелания приветствуются. Пока что речь касается только записи треков в формате gpx (полёта по треку, привязки аудио и видео, импорта в базу меток я пока не делаю), но тем не менее прочее важное тоже имеет смысл обсудить заранее.
4. Чуть не забыл. В стандарте gpx есть комментарий, что trkseg используется для указания разрыва трека при пропадании сигнала. Однако нет указания на то, что это единственный способ и другие запрещены. Вкупе с отсутствием любых параметров у тэга trkseg и наличии параметров у trk, ну и исходя из возможности простого отдельного выделения треков в редакторах, сделал так, что при разрыве трека будет рваться не сегмент, а trk целиком (ну а при появлении сигнала соответственно новый тэг trk снова откроется). Если есть принципиальные возражения - приводите.
Последний раз редактировалось vasketsov 23 ноя 2011, 10:27, всего редактировалось 1 раз.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Расширение формата GPX через extensions

Сообщение feya » 23 ноя 2011, 07:43

Ну по первому вопросу проблемы нет, в любом месте, где скажете.
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 32 раз.

Re: Расширение формата GPX через extensions

Сообщение Tolik » 23 ноя 2011, 08:25

vasketsov писал(а):1. Необходимо придумать место (адрес http:) для сохранения файла xsd.

Этот момент не понял. Для чего нужен xsd и зачем его делать доступным по http? Наверно, стоит добавить это в преамбулу.

А инициативу всячески поддерживаю! Потом хорошо бы заняться и импортом gpx :)
Tolik
Гуру
 
Сообщения: 2536
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 235 раз.
Поблагодарили: 491 раз.

Re: Расширение формата GPX через extensions

Сообщение vasketsov » 23 ноя 2011, 10:33

Tolik писал(а):Этот момент не понял. Для чего нужен xsd и зачем его делать доступным по http? Наверно, стоит добавить это в преамбулу.

Добавил.

>в любом месте
ps. Пока что в исходниках (которые в багтрекере) фейковый адрес, и поддержка расширения sasx в gpx отключена. Когда понятно будет содержимое xsd (очевидно, как только будет реализация одного из вышеперечисленного) - тогда и надо будет публиковать. Пока что это больше просто "предупреждение" :)
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Расширение формата GPX через extensions

Сообщение vasketsov » 28 ноя 2011, 14:44

Вот первая версия xsd + пример трека в формате gpx с использованием расширения sasx. Трек записан сасом. Пока что xsd не для публикации, а для ознакомлени и обсуждения, может какие-то поля ещё имеет смысл добавить. В треке поправлены координаты + поправлена ссылка в gpx на xsd для того, чтобы можно было запустить валидатор gpx + удалён тэг speed (иначе на него будет прогнозируемая ругань). Результат: 2011.11.28_14-20-08.gpx: 901 ms (54 elems, 13 attrs, 62 spaces, 336 chars). Это к тому что расширение а) описанно корректно и б) используется корректно.
SasGpxExtensionsv1_xsd_gpx_sample.zip
(1.22 KiB) Скачиваний: 78
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Расширение формата GPX через extensions

Сообщение vasketsov » 16 дек 2011, 12:42

Итак, окончательная редакция первой версии расширения.
Файлик в gpx адресуется как http://sasgis.org/xmlschemas/SasGpxExtensionsv1.xsd
В архиве только он.
Относительно предыдущей предварительной версии - добавлена парочка полей.
SasGpxExtensionsv1.rar
(1016 байт) Скачиваний: 70
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Расширение формата GPX через extensions

Сообщение vasketsov » 16 дек 2011, 13:21

А теперь party time!

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

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

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

Запись сделал на основе библиотеки New Audio Components версии 261. Там местами есть косячки, которые пришлось выправлять, поэтому в ini-шке указываем путь до DLL (или кладём её в папку с прогой). Поддерживается кодирование в MP3, OGG, FLAC и WAV (простой). По умолчанию инишка настроена на FLAC и файлики будут валиться в папку с треками. Если нет инишки - будет WAV. Короче, разобраться с параметрами несложно. Исходнии DLL будут, как до ума доведу.

Название: SAS_with_AudioRecorder_Alfa.rar
Размер: 1.90 Мб
Доступен до: 2012-01-15 13:21:03
Ссылка для скачивания файла: http://ifolder.ru/27616818
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Расширение формата GPX через extensions

Сообщение Parasite » 16 дек 2011, 13:39

vasketsov писал(а):версия саса с возможностью записи звуковых файлов

И куда это можно применить? Просто интересно.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5614
ICQ: 15819243
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 119 раз.
Поблагодарили: 439 раз.

Re: Расширение формата GPX через extensions

Сообщение vasketsov » 16 дек 2011, 13:45

Едешь и пишешь комментарии к точкам. Потом дома с кофе и помидорами спокойно разбираешь.
Сейчас Раньше приходилось тыкать в навигатор и кодировать информацию буквами.
А в принципе - это аналогичное привязывание видео (с фотками ситуация совершенно обратная) и "полёт по треку".
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Расширение формата GPX через extensions

Сообщение Parasite » 16 дек 2011, 13:49

vasketsov писал(а):Едешь и пишешь комментарии к точкам. Потом дома с кофе и помидорами спокойно разбираешь.
Сейчас Раньше приходилось тыкать в навигатор и кодировать информацию буквами.

Есть похожая мелкая прожка (только не про звук а про фотки).
Имея трек-файл с навигатора и кучу фоток, сделанных по этому пути - можно скормит прожке, и она поприцепляет фотки к координатам и рассортирует их по всему треку. Гуглить за BindPhoto. Вроде даже опенсорц, хотя не уверен - давно юзал. Имею мнение, что с небольшими доработками она и с аудио справится...:)
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5614
ICQ: 15819243
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 119 раз.
Поблагодарили: 439 раз.

След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1