Содержимое QR
QR-коды могут содержать координаты, имена объектов, заметки, части проекта или сведения о группе; поэтому групповые QR конфиденциальны.
Формат данных QR
QR-коды в ArxSilex MapTools являются версионированным форматом обмена компактными данными приложения.
Обновлено: 28 мая 2026
Кратко
Этот раздел кратко описывает, что содержат QR-коды, как их можно технически создавать и почему импорт выполняется локально.
QR-коды могут содержать координаты, имена объектов, заметки, части проекта или сведения о группе; поэтому групповые QR конфиденциальны.
Собственные инструменты могут создавать QR-коды при соблюдении версии, лимитов размера, кодирования и правил валидации.
Ссылка не является загрузкой. Сервер не обрабатывает payload; приложение локально читает данные из QR-ссылки.
Структура URL
QR-коды используют проверенную HTTPS app link. Блок данных находится после знака фрагмента.
https://www.arxsilex.de/app/maptools/qr#d=<base64url-json>
Часть после # обычно не отправляется веб-серверу. Поэтому одна ссылка работает как app link и как переход к этому объяснению.
Конфиденциальность
QR-коды могут содержать координаты, имена объектов, заметки, части проекта или сведения о группе.
QR-данные обрабатываются локально. Этот сайт не декодирует и не сохраняет payload.
Местоположения и объекты проекта могут быть персональными данными. Делитесь QR-кодами только с подходящими получателями.
Групповые QR-коды содержат ключ группы. Тот, кто сканирует код, может присоединиться к группе или импортировать ее данные.
Техническая спецификация
Сейчас документирована версия 1. Более новые версии могут отклоняться старыми версиями приложения.
| Пункт | Значение | Примечание |
|---|---|---|
| Текущая HTTPS app link | https://www.arxsilex.de/app/maptools/qr#d=<payload> | Путь без конечного слеша; так зарегистрирована Android app link. |
| URL документации | https://www.arxsilex.de/app/maptools/qr/index.html | Эта веб-документация доступна как index.html в папке QR. |
| Устаревшая scheme | asmaptools://qr?v=1&d=<payload> | Формат совместимости для старых или внешних сканеров. |
| Кодирование payload | Base64URL, UTF-8 JSON | URL-safe Base64 без padding; содержимое UTF-8 JSON. |
| Версия схемы | v: 1 | Версии ниже 1 недействительны; новые версии могут быть отклонены. |
| Лимит payload | 2,200 bytes | Консервативный лимит для надежного создания и декодирования QR. |
| Лимит входящего URI | 64 KiB | Жесткая верхняя граница для входящих deep link. |
| Отрисовка QR | ZXing QR, error correction M, 512 px | Приложение создает QR-битмапы 512 px и может добавить небольшой логотип. |
Schema
QR-коды объектов используют короткие ключи, чтобы код оставался небольшим. Ключи являются техническими идентификаторами.
| Ключ | Значение | Поля |
|---|---|---|
| v | Версия схемы | integer |
| m | Маркеры | i, n, inf, la, lo, ic, cl |
| c | Окружности | i, n, la, lo, r, cl, sc, fc |
| d | Расстояния | i, n, la, lo, ea, eo, cl |
| b | Пеленги/направления | i, n, la, lo, bg, ln, iv, bc, cl |
| a | Области | i, n, pts, cl, sc, fc |
| r | Маршруты | i, n, pts, cl |
Группы
Групповые QR-коды используют типизированные JSON payload. Ключ группы конфиденциален.
Содержит name, group_id, group_key, исходную точку, цвет, описание и необязательные быстрые сообщения.
Упаковывает данные объектов в поле objects.
Объединяет профиль группы и необязательные объекты. Приложение может импортировать группу, объекты или оба набора.
Валидация
Приложение проверяет QR-данные перед импортом и отклоняет неверную геометрию или слишком большие данные.
Широта -90 до 90, долгота -180 до 180. Экспортированные координаты округляются до 5 знаков.
ID должны быть больше 0. Маршрутам нужны минимум 2, областям минимум 3 разные точки.
Пеленг 0-360 градусов, коррекция -180 до 180 градусов, длина и интервал до 1 000 км.
JSON
Примеры до кодирования Base64URL. В реальной QR-ссылке закодированный JSON находится в #d=...
{
"v": 1,
"m": [
{"i":1,"n":"Start","la":48.13715,"lo":11.57612,"ic":"PIN"}
]
}{
"v": 1,
"type": "group",
"name": "Team Alpha",
"group_id": 123456,
"group_key": "shared-secret",
"originLat": 48.13715,
"originLon": 11.57612
}