Wie viele öffentliche Toiletten gibt es? Und wie zugänglich sind sie?
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-11 16:44:57 +00:00
themes Fix wheelchair/urinal icons only showing color as a thin rim 2026-07-11 18:32:59 +02:00
README.md README.md aktualisiert 2026-07-11 16:44:57 +00:00

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

  1. Öffne MapComplete Studio.
  2. Lade die Theme-Datei über den Tab mit dem Disketten-Symbol ("Load a theme file") und wähle themes/toilets-access.json aus diesem Repo.
  3. 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.
  4. 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).
  5. 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[...]->.searchArea sucht die administrative Fläche mit dem Namen "Ulm". Das admin_level ist in Deutschland uneinheitlich (6 = Kreis/kreisfreie Stadt, 8 = Gemeinde), daher deckt der Regex beide Fälle ab.
  • Die Klammer sucht alle node/way/relation mit amenity=toilets innerhalb 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