Dokumentation

Für Entwickler, Organisationen und Integratoren.

Diese Seite bündelt die wichtigsten Integrationswege: Go-Bibliothek, HTTP-API, Portable-Code und eigene Bundles.

Start lokal

Bundle laden, Codec initialisieren, Koordinate codieren oder Wortadresse decodieren.

Start per HTTP

Eigene API betreiben oder später die öffentliche API als Komfortweg nutzen.

Start ohne Server

Portable-Code nutzt dieselbe Bundle-Idee in kleinen Standalone-Dateien.

Was im Repository enthalten ist

  • öffentliche Spezifikation und Architekturhinweise
  • Bundle-Format für eigene oder später stabil veröffentlichte Wortlisten
  • Go-Bibliothek, CLI und HTTP-Server
  • Portable-Code für Python, JavaScript, PHP und Go
  • lauffähige Beispiele für Library-Nutzung, Fehlerkorrektur, Server-Embedding und Batch-Client
  • Tests, Golden Vectors, OpenAPI-Datei und GitHub-Pages-Demo

Aktuelle Wortliste ist nicht final

Das aktuelle eu1-Bundle ist nur für Demonstration, Entwicklung und Experimente bestimmt. Die Wortliste wird aktiv geprüft und kann geändert, neu sortiert, erweitert oder ersetzt werden. Verwende sie nicht für produktive Systeme oder permanente WortOrt-Adressen.

Vollständigen Hinweis öffnen

Beispiel: Go-Bibliothek

Für normale Go-Integrationen wird das Top-Level-Paket geladen. Das Bundle kann aus einer bewusst ausgewählten Datei oder als eingebettete JSON-Datei kommen.

package main

import (
    "fmt"
    "log"

    wortort "github.com/karte-bayern/wortort"
)

func main() {
    codec, err := wortort.Load("eu1.bundle.json")
    if err != nil {
        log.Fatal(err)
    }

    code, err := codec.Encode(48.1372, 11.5756)
    if err != nil {
        log.Fatal(err)
    }

    location, err := codec.Decode(code)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(code)
    fmt.Printf("%s %.6f %.6f\n", location.Namespace, location.Lat, location.Lon)
}

Beispiel: Portable-Code ohne Server

Der Portable-Code ist bewusst klein gehalten. Er lädt ein angegebenes Bundle und rechnet lokal. Die aktuelle Alpha-Datei liegt unter https://wortort.eu/eu1.bundle.json.

curl -L https://wortort.eu/eu1.bundle.json -o eu1.bundle.json
python3 portable/python/wortort.py eu1.bundle.json encode 48.1372 11.5756
node portable/javascript/wortort.mjs eu1.bundle.json decode \
  'karpfen.wirkungsort.wassersaeule.schulversuch'
php portable/php/wortort.php eu1.bundle.json encode 48.1372 11.5756
go run portable/go/wortort.go eu1.bundle.json decode \
  'karpfen.wirkungsort.wassersaeule.schulversuch'

Beispiel: geplante öffentliche API

Eine öffentliche WortOrt-API ist künftig unter wortort.karte.bayern geplant. Sie ist als Komfortangebot für Integrationen, Tests und einfache Anwendungen gedacht; lokale Berechnung mit einem geeigneten Bundle bleibt weiterhin möglich.

# Sobald die öffentliche API verfügbar ist:
curl -sS -H 'Content-Type: application/json' \
  -d '{"namespace":"eu1","lat":48.1372,"lon":11.5756}' \
  https://wortort.karte.bayern/v1/encode

Beispiel: eigene API betreiben

Eine Organisation kann denselben Go-HTTP-Server selbst betreiben und aus ihrer Anwendung per HTTP aufrufen. Dadurch bleiben Betrieb, Logging, Datenschutz und Verfügbarkeit unter eigener Kontrolle.

curl -L https://wortort.eu/eu1.bundle.json -o eu1.bundle.json
go run ./cmd/wortort-server \
  --bundle eu1.bundle.json \
  --addr :8080

curl -sS -H 'Content-Type: application/json' \
  -d '{"namespace":"eu1","lat":48.1372,"lon":11.5756}' \
  http://localhost:8080/v1/encode

Wichtige Integrationsregel

Die API ist Komfort. Entscheidend bleiben Spezifikation und ein bewusst gewähltes Bundle. WortOrt soll nicht davon abhängen, dass ein bestimmter zentraler Server erreichbar ist.

Direkte Dateien

Sicherheit und Einsatzkontext

WortOrt kann präzise Ortskommunikation unterstützen, ersetzt aber keine offiziellen Einsatzprozesse. Für BOS, Leitstellen, Feuerwehr und Rettungsdienst ist eine organisatorische Prüfung und saubere Integration erforderlich.