| Filename | Latest commit message | Latest commit date |
|---|---|---|
| themes | ||
| README.md | ||
Zugängliche öffentliche Toiletten?
Wie viele öffentliche Toiletten* gibt es? Und wie zugänglich sind sie?
* Auf OpenStreetMap eingetragene Toiletten.
Ein angepasstes MapComplete-Theme, um öffentliche Toiletten aus OpenStreetMap anzuzeigen, nach Zugangstyp zu kategorisieren (öffentlich / nur für Kund:innen / privat / Schlüssel erforderlich) und direkt zu editieren.
Statt einer eigenen Anwendung wird der bestehende, eingebaute MapComplete-Layer toilet
wiederverwendet (er deckt bereits Access, Fee, Wheelchair, Changing Table, Öffnungszeiten,
Toilettentyp etc. ab, inklusive Bearbeitung über OSM-Login). Ergänzt wurden:
- Vier Filter nach Zugangskategorie (
access_public,access_customers,access_private,access_key) — zusätzlich zu den bereits vorhandenen Filtern (rollstuhlgerecht, Wickeltisch, kostenlos, gerade geöffnet). - Marker-Einfärbung nach Zugangskategorie: grün (öffentlich/kein Tag), orange (nur Kund:innen), rot (privat/kein Zugang), blau (Schlüssel erforderlich).
- Standardposition der Karte: Ulm.
Datei: themes/toilets-access.json
Nutzung
- Öffne MapComplete Studio.
- Lade die Theme-Datei über den Tab mit dem Disketten-Symbol ("Load a theme file") und wähle
themes/toilets-access.jsonaus diesem Repo. - Studio validiert das Theme beim Laden. Falls Fehler angezeigt werden (z. B. wegen einer API-Änderung von MapComplete), bitte die betroffene Stelle in der JSON-Datei entsprechend der Studio-Fehlermeldung anpassen.
- Aus der Vorschau heraus kannst du das Theme direkt live nutzen/testen — Kartenausschnitt ist standardmäßig auf Ulm gesetzt, lässt sich aber frei verschieben/zoomen (z. B. für andere Städte).
- Zum Editieren: In MapComplete oben rechts mit dem eigenen OSM-Account einloggen. Kein eigener Server und keine eigene OAuth-Registrierung nötig — das übernimmt mapcomplete.org.
Wichtiger Hinweis
Änderungen, die im Editier-Modus gespeichert werden, erzeugen echte OSM-Changesets und sind öffentlich sichtbar für alle OSM-Nutzer:innen. Das ist gewollt (Ziel ist ja, die Daten zu verbessern) — aber jede Bearbeitung sollte bewusst und inhaltlich geprüft erfolgen, nicht als Testklick.
Kategorien im Detail
| Kategorie | OSM-Tag | Marker-Farbe |
|---|---|---|
| Öffentlich | access fehlt oder access=yes |
Grün |
| Nur für Kund:innen | access=customers |
Orange |
| Privat / kein Zugang | access=private oder access=no |
Rot |
| Schlüssel erforderlich | access=key |
Blau |
Zusätzlich zeigen Badges auf dem Marker (geerbt vom Basis-Layer) ein Schloss- bzw. Schlüssel-Symbol für eingeschränkten Zugang, sowie ein Symbol für aktuell geöffnet/geschlossen.
Sonstiges
Abfrage Rohdaten mit overpass turbo
Um dir unabhängig von MapComplete einen schnellen Überblick über die rohen OSM-Daten zu verschaffen, kann folgende Overpass-QL-Abfrage direkt in Overpass Turbo eingefügt werden:
[out:json][timeout:25];
area["name"="Ulm"]["boundary"="administrative"]["admin_level"~"^(6|8)$"]->.searchArea;
(
node["amenity"="toilets"](area.searchArea);
way["amenity"="toilets"](area.searchArea);
relation["amenity"="toilets"](area.searchArea);
);
out center meta;
area[...]->.searchAreasucht die administrative Fläche mit dem Namen "Ulm". Dasadmin_levelist in Deutschland uneinheitlich (6 = Kreis/kreisfreie Stadt, 8 = Gemeinde), daher deckt der Regex beide Fälle ab.- Die Klammer sucht alle
node/way/relationmitamenity=toiletsinnerhalb dieser Fläche. out center meta;liefert für Ways/Relations einen Mittelpunkt (Lat/Lon) sowie Metadaten (z. B. letzte Änderung).- Für ein anderes Gebiet einfach
"Ulm"durch den gewünschten Ortsnamen ersetzen.
Rohdaten per CLI als JSON abrufen
Dieselbe Abfrage lässt sich auch direkt gegen die öffentliche Overpass-API stellen, z. B. mit
curl:
curl -sS "https://overpass-api.de/api/interpreter" --data-urlencode data@- -o ulm-toilets.json <<'EOF'
[out:json][timeout:25];
area["name"="Ulm"]["boundary"="administrative"]["admin_level"~"^(6|8)$"]->.searchArea;
(
node["amenity"="toilets"](area.searchArea);
way["amenity"="toilets"](area.searchArea);
relation["amenity"="toilets"](area.searchArea);
);
out center meta;
EOF
Das Ergebnis landet als JSON in ulm-toilets.json. Da overpass-api.de ein geteilter
Public-Server ist, bei größeren/häufigeren Abfragen ggf. timeout erhöhen oder eine
alternative Overpass-Instanz
verwenden.
Weiterführende Informationen
Allgemeine Dokumentation zum Tagging von Toiletten in OSM (Bedeutung der einzelnen Tags wie
access, fee, wheelchair etc.):
wiki.openstreetmap.org/wiki/Tag:amenity=toilets