QR data format

QR Import and QR Data Format

QR codes in ArxSilex MapTools are a versioned exchange format for compact app data. This page explains use, privacy and technical details.

Last updated: May 28, 2026

Summary

Overview for use and development

This section summarizes what QR codes contain, how they can be generated technically, and why import happens locally.

QR contents

QR codes can contain coordinates, object names, notes, project parts or group information; group QR codes are therefore confidential.

Technical compatibility

Custom tools can generate QR codes if they follow versioning, size limits, encoding and validation rules.

Local import

The link is not an upload. The server does not process the payload; the app reads the data locally from the QR link.

URL structure

The QR link

QR codes use a verified HTTPS app link. The data block is placed after the fragment sign.

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

The part after # is normally not sent to the web server. The same link can therefore work as an app link and as a fallback to this explanation.

Privacy

Share confidentially

QR codes can contain coordinates, object names, notes, project parts or group information.

No automatic transfer

QR data is processed locally. This website does not decode or store the payload.

Geodata

Locations and project objects can be personal data. Share QR codes only with suitable recipients.

Groups

Group QR codes contain the group key. Anyone who scans the code can join the group or import group data.

Technical specification

Format status

Version 1 is currently documented. Newer versions can be rejected by older app versions.

ItemValueNotes
Current HTTPS app linkhttps://www.arxsilex.de/app/maptools/qr#d=<payload>Path without trailing slash; this is how the Android app link is registered.
Documentation URLhttps://www.arxsilex.de/app/maptools/qr/index.htmlThis web documentation is served as index.html in the QR folder.
Legacy schemeasmaptools://qr?v=1&d=<payload>Compatibility format for older or external scanners.
Payload encodingBase64URL, UTF-8 JSONURL-safe Base64 without padding; content is UTF-8 JSON.
Schema versionv: 1Versions below 1 are invalid; newer versions can be rejected.
Payload limit2,200 bytesConservative cap for reliable QR generation and decoding.
Incoming URI cap64 KiBHard upper bound for incoming 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

Compact object schema

Object QR codes use short keys to keep the QR code small. The keys themselves remain technical identifiers.

KeyMeaningFields
vSchema versioninteger
mMarkersi, n, inf, la, lo, ic, cl
cCirclesi, n, la, lo, r, cl, sc, fc
dDistancesi, n, la, lo, ea, eo, cl
bBearings/directionsi, n, la, lo, bg, ln, iv, bc, cl
aAreasi, n, pts, cl, sc, fc
rRoutesi, n, pts, cl

Groups

Typed group payloads

Group QR codes use typed JSON payloads. The group key is confidential.

type: group

Contains name, group_id, group_key, origin, color, description and optional quick messages.

type: objects

Wraps object data in an objects field.

type: group_with_objects

Combines group profile and optional objects. The app can import the group, the objects or both.

Validation

Validation and limits

The app checks QR data before import and rejects invalid geometry or oversized data.

Coordinates

Latitude -90 to 90, longitude -180 to 180. Exported coordinates are rounded to 5 decimals.

Geometry

IDs must be greater than 0. Routes need at least 2, areas at least 3 distinct points.

Bearings

Bearing 0 to 360 degrees, correction -180 to 180 degrees, length and interval at most 1,000 km.

JSON

Examples

Examples before Base64URL encoding. In the real QR link, encoded JSON is placed 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
}