First version of Karten App
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# Offline-Karten- und Ortungsanwendung
|
||||
|
||||
Stand: 8. Oktober 2026. Diese Datei dokumentiert den bisherigen Planungsstand. Eine Anwendung wurde noch nicht implementiert.
|
||||
|
||||
## Ziel und Plattformen
|
||||
|
||||
Eine offlinefähige Kartenanwendung für **iOS und Android** soll amtliche DTK25-Karten anzeigen und eingegebene Zielkoordinaten darauf markieren. Die Verteilung soll ohne App Store über eine installierbare **Progressive Web App (PWA)** erfolgen.
|
||||
|
||||
Der Mac dient als Entwicklungsrechner und zur Aufbereitung der Kartendaten. Die ursprünglich erwogene macOS-Desktop-App und deren Python/Qt-Architektur sind verworfen.
|
||||
|
||||
**Ortung bei geöffneter App reicht aus.** Hintergrundortung und Tracking bei gesperrtem Bildschirm sind nicht erforderlich.
|
||||
|
||||
## Wichtigste Funktion: MGRS-Zieleingabe
|
||||
|
||||
Der Nutzer hat die Eingabe von Koordinaten in dieser Form als wichtigste Funktion festgelegt:
|
||||
|
||||
```text
|
||||
32U MA 67030 78109
|
||||
```
|
||||
|
||||
Die eingegebene Position muss auf der passenden Karte sichtbar sein. MGRS ist ein eigenes Koordinatenformat und darf nicht als einfache UTM-Zahlenangabe interpretiert werden.
|
||||
|
||||
Geplantes Verhalten:
|
||||
|
||||
- Eingaben mit und ohne Leerzeichen akzeptieren.
|
||||
- Zone, Buchstaben, Ziffernanzahl und die Gültigkeit der Kombination prüfen; ungültige Angaben verständlich zurückweisen.
|
||||
- MGRS lokal dekodieren und die Position nach EPSG:25832 umrechnen.
|
||||
- Passendes bereits heruntergeladenes Kartenmaterial auswählen.
|
||||
- Auf das Ziel zentrieren und eine deutliche Zielmarkierung anzeigen.
|
||||
- Die eingegebene MGRS-Angabe zur Kontrolle sichtbar lassen.
|
||||
- Fehlendes Offline-Kartenmaterial ausdrücklich melden, statt eine leere Ansicht als erfolgreiche Kartenanzeige darzustellen.
|
||||
- Als geplante Ergänzung auch kürzere MGRS-Angaben unterstützen und deren größere Bezugsfläche sichtbar darstellen. Die genaue Konvention für Marker und Flächendarstellung ist noch festzulegen.
|
||||
|
||||
Fünf Ziffern je Achse, wie im Beispiel, beschreiben eine MGRS-Zelle von 1 × 1 Meter. Diese Auflösung ist keine Zusage über die Genauigkeit der zugrunde liegenden Position oder Karte.
|
||||
|
||||
## Weitere Anforderungen
|
||||
|
||||
- Karte mit Touch-Gesten verschieben und zoomen.
|
||||
- Benötigte Karten automatisch anhand des sichtbaren Ausschnitts beziehungsweise der Zielposition laden.
|
||||
- Zusätzlich UTM- und WGS84-Koordinaten als Eingabe anbieten.
|
||||
- Eigenen Standort mit Betriebssystem-/Browserfreigabe anzeigen; manuelle Standortangabe als Alternative.
|
||||
- Luftlinienentfernung zwischen eigenem Standort und Ziel anzeigen.
|
||||
- Auf eigenen Standort oder Ziel zentrieren.
|
||||
- Nach vollständigem Download ohne Internet starten und arbeiten, einschließlich Koordinatenumrechnung.
|
||||
- Große Kartendaten effizient verarbeiten und den Arbeitsspeicherverbrauch begrenzen.
|
||||
|
||||
Routenberechnung, Navigation entlang von Wegen und Hintergrundtracking gehören nicht zum bisher vereinbarten Umfang.
|
||||
|
||||
## Quelldaten
|
||||
|
||||
Der vorgesehene Kartenordner lautet **`./Karten`**, relativ zum künftigen Projektverzeichnis. Bei der letzten Prüfung war dieser Ordner im aktuellen Arbeitsverzeichnis noch nicht vorhanden. Es wurden noch keine Originaldateien geprüft.
|
||||
|
||||
Nach Angaben des Nutzers liegen für Hessen deutlich mehr als 1 GB Kartenmaterial vor:
|
||||
|
||||
- DTK25, Maßstab 1:25.000.
|
||||
- TIFF-Bilddateien mit zugehörigen TFW-Dateien.
|
||||
- Originalkacheln von 12 × 12 km.
|
||||
- Vorgesehenes Koordinatenreferenzsystem: ETRS89 / UTM Zone 32N, **EPSG:25832**.
|
||||
- Beispielname: `DTK25_584000_5660000_col.tif` und zugehörige `.tfw`.
|
||||
|
||||
Beispiel einer TFW-Datei aus der bisherigen Unterhaltung:
|
||||
|
||||
```text
|
||||
1.2500000000
|
||||
0.0000000000
|
||||
0.0000000000
|
||||
-1.2500000000
|
||||
584000.6250000000
|
||||
5671999.3750000000
|
||||
```
|
||||
|
||||
Die sechs Zeilen enthalten Pixelmaß und affine Georeferenzierung; die letzten beiden Werte bezeichnen den Mittelpunkt des oberen linken Pixels. Die TFW-Datei selbst benennt kein Koordinatenreferenzsystem.
|
||||
|
||||
Für dieses Beispiel ergeben sich bei 12 km Kantenlänge rechnerisch 9.600 × 9.600 Pixel mit 1,25 m Pixelgröße. Die äußeren Grenzen wären Ostwerte 584000 bis 596000 und Nordwerte 5660000 bis 5672000. Diese Annahmen sind beim Import gegen Bildabmessungen und Metadaten zu prüfen.
|
||||
|
||||
## Vorgesehene Architektur
|
||||
|
||||
| Baustein | Festgelegte Richtung |
|
||||
| --- | --- |
|
||||
| Anwendung | Smartphone-taugliche PWA für iOS und Android |
|
||||
| Entwicklung | TypeScript und Vite |
|
||||
| Kartenanzeige | OpenLayers |
|
||||
| Kartenprojektion | EPSG:25832 zunächst beibehalten |
|
||||
| Koordinatenumrechnung | Proj4js plus separate MGRS-Bibliothek |
|
||||
| Offline-Programm | Service Worker und Cache Storage für Oberfläche und Programmressourcen |
|
||||
| Offline-Kartendaten | Kleine Rasterkacheln in Cache Storage |
|
||||
| Katalog und Downloadstatus | IndexedDB |
|
||||
| Kartenaufbereitung | Python und GDAL auf dem Mac |
|
||||
| Bereitstellung | Statisches HTTPS-Hosting; kein laufender Kartenserver erforderlich |
|
||||
|
||||
Konkrete Bibliotheksversionen, MGRS-Bibliothek und Hosting-Anbieter sind noch nicht ausgewählt. Alle für den Offlinebetrieb nötigen Bibliotheken, Projektionsdefinitionen und Ressourcen müssen mit der Anwendung verfügbar sein; Laufzeitabhängigkeiten von externen CDNs sind zu vermeiden.
|
||||
|
||||
```text
|
||||
./Karten: TIFF + TFW
|
||||
↓ einmalige Aufbereitung auf dem Mac
|
||||
Kleine Rasterkacheln in mehreren Auflösungen + Gebietskatalog
|
||||
Reference in New Issue
Block a user