opening_hours,
service_times,
collection_times.
Manche Objekte der realen Welt haben auch eine Zeitkomponente:
In der Datenbank von OpenStreetMap werden solche Öffnungszeichen unter den Schlüsseln
,
opening_hours
und
service_times
eingetragen.
Das Wiki enthält unter collection_times
eine informelle Beschreibung der erlaubten Werte und ihrer Bedeutung.
opening_hours
Ich habe aus dieser Beschreibung eine
formale Spezifikation
erstellt und diese
in JavaScript implementiert.
Sie können das Auswerten ohne Aufwand ausprobieren und sich so mit den Möglichkeiten vertraut machen:
Auf drei Karten werden die bereits vergebenen Werte angezeigt und insbesondere auf Fehler überprüft:
Weitere Implementierungen:
Auf der Karte werden Objekte mit fehlerhaften Werten rot markiert. Ich habe eine große Zahl davon korrigiert und mir dabei einen Überblick darüber verschafft, welche Informationen die Nutzer in diesem Feld hinterlegen und wie. Daraus habe ich einige Erweiterungen abgeleitet:
Sehr oft wurden zusätzliche Öffnungszeiten so codiert,
dass sie als ausschließliche Öffnungszeiten interpretiert wurden:
beim Wert
ist Mittwochs nur nachmittags geöffnet.
Mo-Fr 08:00-12:00; We 14:00-18:00
Ich lasse die Wiederholung auch mit ,
zu und interpretiere das Komma als und außerdem
:
drückt das aus, was der Eingebende gemeint hat.
Mo-Fr 08:00-12:00, We 14:00-18:00
Mo-Fr für
Montags bis Freitags ganztägig. Das ist aber nur in den seltensten Fällen gemeint. Deshalb haben wir die Zeitangaben obligatorisch gemacht:
Mo-Fr ist nicht mehr erlaubt und muss
Mo-Fr 0:00-24:00 geschrieben werden.
22:00-03:00 auf,
die sich über zwei Tage erstrecken.
Ich habe diese Tageswrapsimplementiert.
:abgeschlossen werden. Dies verhindert nur schwer aufzulösende Mehrdeutigkeiten.
Montags bis Freitags 12 bis 18 Uhr, bei schlechtem Wetter nur bis 14 Uhrbei einem Schwimmbad. Zur Darstellung solcher Angaben habe ich neben
offenund
geschlosseneinen dritten Status
unbekannteingeführt, der mit einem Kommentar versehen werden muss.
während der Spargelsaisondargestellt werden.
.statt
:. Diese Fehler korrigiere ich und werte den Ausdruck aus, liefere aber das Ergebnis zusammen mit einer Fehlermeldung. Die Auswerteroutine kann also gleichzeitig
offenund
Ausdruck fehlerhaftmelden. In meinen Karten wird das durch zweifarbige Ringe abgebildet.
PHund
SH)
SH(de.nrw)für die Schulferien in Nordrhein-Westfalen. Zur Zeit setze ich für
PHdie deutschen gesetzlichen Feiertage ein, und Schulferien
SHgibt es keine.
sunriseund
sunset)
06:00bzw.
18:00ein.
TimeDomain - evaluation of “opening_hours”, “service_times” und “collection_times” for OpenStreetMap