QR-Datenformat

QR-Import und QR-Datenformat

QR-Codes in ArxSilex MapTools sind ein versioniertes Austauschformat für kompakte App-Daten. Diese Seite erklärt Nutzung, Datenschutz und technische Details.

Stand: 28. Mai 2026

Zusammenfassung

Überblick für Nutzung und Entwicklung

Dieser Abschnitt fasst zusammen, was QR-Codes enthalten, wie sie technisch erzeugt werden können und warum der Import lokal erfolgt.

QR-Inhalte

QR-Codes können Koordinaten, Objektnamen, Notizen, Projektteile oder Gruppeninformationen enthalten; Gruppen-QRs sind deshalb vertraulich.

Technische Kompatibilität

Eigene Tools können QR-Codes erzeugen, wenn Versionierung, Größenlimits, Kodierung und Validierungsregeln eingehalten werden.

Lokaler Import

Der Link ist kein Upload. Der Server verarbeitet den Payload nicht; die App liest die Daten lokal aus dem QR-Link.

URL-Aufbau

Der QR-Link

QR-Codes verwenden einen verifizierten HTTPS-App-Link. Der Datenblock steht hinter dem Fragmentzeichen.

https://www.arxsilex.de/app/maptools/qr#d=<base64url-json>

Der Teil nach # wird normalerweise nicht an den Webserver gesendet. Deshalb dient derselbe Link als App-Link und als Fallback auf diese Erklärung.

Datenschutz

Vertraulich teilen

QR-Codes können Koordinaten, Objektnamen, Notizen, Projektteile oder Gruppeninformationen enthalten.

Keine automatische Übertragung

Die QR-Daten werden lokal verarbeitet. Diese Webseite decodiert und speichert den Payload nicht.

Geodaten

Standorte und Projektobjekte können personenbezogen sein. Teile QR-Codes nur mit passenden Empfängern.

Gruppen

Gruppen-QRs enthalten den Gruppenschlüssel. Wer den Code scannt, kann der Gruppe beitreten oder Gruppendaten importieren.

Technische Spezifikation

Formatstatus

Aktuell ist Version 1 dokumentiert. Neuere Versionen können von älteren App-Versionen abgelehnt werden.

EintragWertHinweis
Current HTTPS app linkhttps://www.arxsilex.de/app/maptools/qr#d=<payload>Pfad ohne Slash am Ende; so ist der Android-App-Link registriert.
Documentation URLhttps://www.arxsilex.de/app/maptools/qr/index.htmlDiese Web-Dokumentation liegt als index.html im QR-Ordner.
Legacy schemeasmaptools://qr?v=1&d=<payload>Kompatibilitätsformat für ältere oder externe Scanner.
Payload encodingBase64URL, UTF-8 JSONURL-sicheres Base64 ohne Padding; Inhalt ist UTF-8-JSON.
Schema versionv: 1Versionen kleiner 1 sind ungültig, neuere Versionen können abgelehnt werden.
Payload limit2,200 bytesKonservative Grenze für zuverlässige QR-Erzeugung und Dekodierung.
Incoming URI cap64 KiBHarte Obergrenze für eingehende Deep Links.
QR renderingZXing QR, error correction M, 512 pxThe app renders 512 px QR bitmaps and may place a small app logo overlay.

Schema

Kompaktes Objekt-Schema

Objekt-QRs verwenden kurze Schlüssel, damit der QR-Code klein bleibt. Die Schlüssel selbst bleiben technische Begriffe.

SchlüsselBedeutungFelder
vSchema-Versioninteger
mMarkeri, n, inf, la, lo, ic, cl
cKreisei, n, la, lo, r, cl, sc, fc
dDistanzeni, n, la, lo, ea, eo, cl
bPeilungen/Richtungeni, n, la, lo, bg, ln, iv, bc, cl
aFlächeni, n, pts, cl, sc, fc
rRouteni, n, pts, cl

Groups

Typisierte Gruppen-Payloads

Gruppen-QRs verwenden typisierte JSON-Payloads. Der Gruppenschlüssel ist vertraulich.

type: group

Enthält Name, group_id, group_key, Ursprung, Farbe, Beschreibung und optionale Kurzmeldungen.

type: objects

Verpackt Objekt-Daten in einem objects-Feld.

type: group_with_objects

Kombiniert Gruppenprofil und optionale Objekte. Die App kann Gruppe, Objekte oder beides importieren.

Validation

Validierung und Limits

Die App prüft QR-Daten vor dem Import und lehnt ungültige Geometrie oder zu große Daten ab.

Koordinaten

Breite -90 bis 90, Länge -180 bis 180. Exportierte Koordinaten werden auf 5 Dezimalstellen gerundet.

Geometrie

IDs müssen größer 0 sein. Routen brauchen mindestens 2, Flächen mindestens 3 unterschiedliche Punkte.

Peilungen

Peilung 0 bis 360 Grad, Korrektur -180 bis 180 Grad, Länge und Intervall höchstens 1.000 km.

JSON

Beispiele

Beispiele vor der Base64URL-Kodierung. Im echten QR-Link steht das kodierte JSON in #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
}