Cs:Key:opening_hours
opening_hours |
Popis |
---|
Definuje otevírací dobu např. provozovny (pošta, obchod, restaurace) nebo časově omezenou fyzickou přístupnost nějaké služby (bankomat v budově...) |
Skupina: Vlastnosti |
Použité na těchto prvcích |
Viz též |
Status: de facto |
Nástroje |
Prosím, aktualizujte tento překlad, je-li to možné.
"Otevírací dobu" je možné definovat pro jakýkoliv objekt, který má z principu definovaný pevný časový harmonogram, kdy je v provozu. Typicky jsou to otevírací hodiny obchodů, restaurací, muzeí či provozoven služeb. Uživatel má možnost ověřit si, zda je daná služba v konkrétní hodinu dostupná, může v noci hledat provozovny s non-stop provozem (lékárny, benzinky) apod. Pro případ, že by mohlo dojít ke změně otevírací doby, je možné přidat URL odkaz na web website=*, kde jsou aktuální otevírací hodiny uvedeny, nebo kontaktní telefonní číslo phone=*.
Před použitím této značky v širším měřítku je vhodné nastudovat si dokumenty Proposed features/Time domains a Key:opening_hours/specification.
Zjednodušená syntaxe
Existuje také krátký výukový materiál v angličtině. |
Zjednodušená syntaxe slouží k rychlému zápisu a popisu většiny situací, které se v praxi vyskytují. Pro složitější zápis, nepravidelnosti, zavedení výjimek (podmínek) apod., je potřeba prostudovat výše zmíněnou úplnou specifikaci a další příklady. Při tvorbě zápisu můžete zkusit použít některou z dostupných pomůcek, jako např. Yohours. Svůj zápis si také můžete ověřit nástrojem pro kontrolu syntaxe.
Aktuální ÚPLNÁ SYNTAXE je k dispozici v textu anglické verze tohoto hesla.
Legenda:
- <element> bude nahrazen syntaxí definovanou dále
- tučný text zůstane zapsán tak jak je, může nabývat hodnot definovaných (vyjmenovaných) níže
- [něco] nepovinný, volitelný prvek (část syntaxe)
- [něco]... tři tečky za hranatou závorkou říkají, že hranatá závorka může být opakována dle potřeby
- něco1 | něco2 říká, že je nutno vybrat některou (právě jednu) z uvedených hodnot
Syntaxe:
- opening_hours = <rozsah> [off] [;<rozsah> [off] ]...
- <rozsah>: open | closed | <denní> | <týdenní> | <měsíční>
- <denní>: [ Mo [md[-md] [, md[-md]]... ] [ <rozmezí> [,<rozmezí>]... ]
- <týdenní>: [week we[,we...|-we[/n]]] Wd[-Wd] [,Wd[-Wd]]... [ <rozmezí> [,<rozmezí>]... ]
- <měsíční>: <měsíce> [<dny>] [ <rozmezí> [,<rozmezí>]... ]
- open: stále otevřeno jako výchozí stav, výjimky definovány následně
- closed: stále zavřeno jako výchozí stav, výjimky definovány následně
- off: čas uzavření (nepřístupnosti), který upravuje (doplňuje předchozí definici času, kdy je otevřeno (např. open; Mo 15:00-16:00 off = otevřeno pořád, ale zavřeno v pondělí 15-16 hod.)
- <rozmezí>: <čas>-<čas>
- <čas>: hh:mm | sunrise | sunset (sunrise = svítání, východ Slunce; sunset = soumrak, západ Slunce)
- <dny>: Wd[-Wd] [,Wd[-Wd]]... | Wd[x[,x]...] (např., Mo-Fr 08:00-09:00 nebo Mo[1,3] 08:00-09:00)
- <měsíce>: Mo-Mo:
- hh: hodiny - pozor, vždy dvojmístné číslo ve 24hod. formátu (ne am/pm)
- mm: minuty - pozor, vždy dvojmístné číslo (např. Fr 08:30-20:00)
- Mo: Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec : měsíc (např., Dec 25)
- md: den v měsíci - pozor, vždy dvojmístné číslo (např., Dec 25)
- Wd: Mo | Tu | We | Th | Fr | Sa | Su : den v týdnu (např., Fr 08:30-20:00)
- we číslo týdne - pozor, vždy dvojmístné číslo v rozsahu 01-53 (např., week 25 Mo 08:30-20:00)
- x řadová číslovka pořadí daného dne v měsíci (např. Mo[1,3] = každé první a třetí pondělí v měsíci)
Jak mapovat
Tato značka může být použita jen s jinými logicky odpovídajícími značkami, např.:
- amenity=biergarten venkovní občerstvení, restaurační zahrádka
- amenity=charging_station dobíjecí stanice
- amenity=fast_food rychlé občerstvení
- amenity=fuel benzinka
- amenity=library knihovna
- amenity=parking parkoviště
- amenity=pharmacy lékárna
- amenity=pub hospoda
- amenity=restaurant restaurace
- amenity=toilets toalety
- shop=bakery pekařství
- shop=convenience obchůdek, večerka
- shop=farm prodejna ovoce a zeleniny
- shop=supermarket supermarket
- tourism=museum muzeum
- …
Než použijete tento tag na cestu , prostudujte si klíč access.
Příklady
Není-li uvedeno jinak, pak značka opening_hours=* není ve standardní mapě nijak zobrazena - informace mohou využívat samostatné aplikace nebo nadstavby map (okna s podrobnými informacemi apod.)
Uvědomte si, že text opening_hours= nemá být částí hodnoty značky, ale jen odkazuje na klíč.
- Non-stop provoz 24/7
- Použití: jakýkoliv non-stop otevřený obchod či přístupná služba (nebo odpovídající tag) - 24 hodin denně a 7 dnů v týdnu
- Zobrazení v mapě: běžná ikona doplněna o malé číslice 24
- Pravidelný provoz Sa-Su 00:00-24:00
- Použití: otevřeno pouze o víkendu (sobota a neděle), zato non-stop
- Pravidelný provoz Mo-Fr 08:30-20:00
- Použití: otevřeno od pondělí do pátku 8:30-20:00
- Pravidelný provoz s přestávkami (nutný podrobnější popis otevíracích hodin):
- Mo 10:00-12:00,12:30-15:00; Tu-Fr 08:00-12:00,12:30-15:00; Sa 08:00-12:00
- Mo-Su 08:00-18:00; Apr 10-15 off; Jun 08:00-14:00; Aug off; Dec 25 off
- Použití: jakékoliv místo (nebo odpovídající tag) s otvíracími hodinami či pravidelně se měnící přístupností
- Mo-Sa 10:00-20:00; Tu off nebo Mo-Sa 10:00-20:00; Tu 10:00-14:00
- Pro výjimky v jednotlivých dnech
- sunrise-sunset
- Použití: otevřeno vždy po východu Slunce a uzavřeno se západem Slunce (např. služby pro turisty apod.)
- Pozn: je možné použít i časový posun vůči okamžiku sunrise/sunset. Umístěním hodnoty sunrise | sunset do kulaté závorky a přidáním číslovky s matematickým znaménkem + | - můžeme vyjádřit čas relativně vztažený k sunrise/sunset. Např. pro otevření 2 hodiny po východu Slunce a uzavření 2 hodiny před západem Slunce použijeme tento zápis: (sunrise+02:00)-(sunset-02:00)
- Su 10:00+
- Použití: otevřeno v neděli v 10 hodin dopoledne, zavírací doba je neznámá, zpravidla dle zájmu zákazníků
- week 1-53/2 Fr 09:00-12:00; week 2-52/2 We 09:00-12:00
- Použití: rozdílné otevírací hodiny v lichých (week 1-53/2) a sudých (week 2-52/2) týdnech - otevřeno 09:00 - 12:00 a to v lichý pátek a sudou středu
- Mo-Sa 08:00-13:00,14:00-17:00 || "on appointment"
- Tady přichází vhod záložní pravidlo. Použije se např. v momentě, kdy není možné použít žádné matematické vyjádření.
- Su-Tu 11:00-01:00, We-Th 11:00-03:00, Fr 11:00-06:00, Sa 11:00-07:00
- Protože otevírací hodiny přecházejí přes půlnoc, je nutno jednotlivé dny neoddělovat středníkem, ale čárkou.
- Mo-Su,PH 15:00-03:00; easter -2 days off
- Otevřeno každý den i ve svátek, zavřeno pouze na Velký pátek.
- May-Sep: Mo-Fr 09:00-18:00; Sa,Su,PH 09:00-16:00; Oct-Apr: Mo-Fr 09:00-17:00; Sa 09:00-15:00
- Příklad jak aplikovat měsíční rozsahy na pravidla o jednotlivých dnech.
- Pro další příklady navštivte některý z webových nástrojů pro kontrolu syntaxe: Evaluation tool nebo YoHours a dokumentaci k opening_hours.js.
Definice
Pro určení dnů a měsíců se používají vždy výhradně níže uvedené (pro dny dvoumístné, pro měsíce třímístné) zkratky anglických názvů.
Syntaxe
- wd den v týdnu, možné hodnoty: Mo · Tu · We · Th · Fr · Sa · Su (např. > Fr 08:30-20:00)
- hh hodina, vždy dvouciferné číslo v 24hodinovém tvaru (bez am/pm), ve formátu "hh:mm" · (např. > Fr 08:30-20:00)
- mm minuta, vždy dvouciferné číslo ve formátu "hh:mm" (např. > Fr 08:30-20:00)
- mo měsíc, možné hodnoty: Jan · Feb · Mar · Apr · May · Jun · Jul · Aug · Sep · Oct · Nov · Dec · "mo md" (např. > Dec 25)
- md den v měsíci, vždy dvouciferné číslo ve tvaru "mo md" (např. > Dec 25)
- we číslo týdne, vždy dvouciferné číslo v rozsahu 01-53, ve formátu "week we" (např. > week 25 Mo 08:30-20:00)
- SH školní prázdniny - může být použito k určení zvláštní otevírací doby o prázdninách (např. Mo-Fr 08:00-09:00,14:00-15:00; SH off)[1]
- PH svátek, může být použito k určení zvláštní otevírací doby ve svátek (např. Mo-Fr 09:00-17:00; PH 10:00-12:00; PH Su off)[1]
- easter velikonoční neděle, může být použito k definici dnů vztahujících se k tomuto relativnímu datu (každý rok v jiný den), viz příklad výše v kapitole Příklady.
- Výše uvedený příklad znamená, že normální otevírací doba je od pondělí do pátku od 9:00 do 17:00, kromě svátků, kdy je otevřeno od 10:00 do 12:00, kromě svátku, který připadne na neděli.
Obecná syntaxe hodnoty je: hh:mm-hh:mm (např. > 08:30-20:00)
Obecná syntaxe hodnoty je: wd hh:mm-hh:mm (např. > Fr 08:30-20:00)
Obecná syntaxe hodnoty je: mo md: hh:mm-hh:mm (např. > Dec 25: 08:30-20:00) Povšimněte si, že dvojtečka je volitelná, jak je uvedeno ve specifikaci.
Obecná syntaxe hodnoty je: mo-mo: wd hh:mm-hh:mm (např. Jun-Aug: Su 10:30-16:00 určuje otevírací dobu v neděli v červnu, červenci a srpnu. Povšimněte si, že dvojtečka je volitelná, jak je uvedeno ve specifikaci.
Obecná syntaxe hodnoty je: week we: wd hh:mm-hh:mm (např. > week 25: Mo 08:30-20:00) Povšimněte si, že dvojtečka je volitelná, jak je uvedeno ve specifikaci.
Pravidla
- Po sobě jdoucí hodiny [vždy od-do] oddělené "-" (např. > 08:30-20:00)
- Po sobě jdoucí dny v týdnu, kdy je otevřeno, oddělené "-" (např. > Mo-Fr)
- Po sobě jdoucí dny v měsíci, kdy je otevřeno, oddělené "-" (např. > Dec 20-26) nebo také (např. > Dec 20-Jan 06)
- Otevřeno s periodou "n" v rozsahu po sobě jdoucích dní v měsíci, rozsah je následován "/n" (např. > 02-30/n)
- Po sobě jdoucí týdny, kdy je otevřeno, oddělené "-" (např. > week 01-26 > definuje první pololetí)
- Otevřeno s periodou "n" v rozsahu po sobě jdoucích týdnů, rozsah je následován "/n" (např. > week 02-52/n > definuje sudé týdny)
- Přerušená otevírací doba ve dnech oddělená "," (např. > Mo,We,Fr)
- Přerušená otevírací doba v hodinách oddělená "," (např. > 08:30-14:00,16:30-20:00)
- Různé časy v různých dnech jsou oddělené ";" (např. > Mo 10:00-12:00,12:30-15:00; Tu-Fr 08:00-12:00,12:30-15:00; Sa 08:00-12:00)
- čte se: tato otevírací hodina pro tento den ; tato otevírací hodina pro tento den
- Den týdne, kdy je zavřeno, bude značen "wd off" (např. > Tu off)
- Rozsah dní v týdnu, kdy je zavřeno, bude značen "wd-wd off" (např. > Tu-Th off)
- Měsíc, kdy je zavřeno, bude značen "mo off" (např. > Aug off )
- Rozsah měsíců, kdy je zavřeno, bude značen "mo-mo off" (např. > Aug-Sep off)
- Den v měsíci, kdy je zavřeno, bude značen "mo md off" (např. > Dec 25 off)
- Rozsah dní v měsíci, kdy je zavřeno, bude značen "mo md-md off" (např. > Dec 24-26 off) nebo "mo md - mo md off" (např. > Dec 25-Jan 06 off )
- Výjimky z rozsahů dní - nejprve rozsah, pak výjimka (např. > Mo-Sa 10:00-20:00; Tu off) nebo (např. > Mo-Sa 10:00-20:00; Tu 10:00-14:00) nebo (např. > Mo-Fr 08:00-12:30; We 14:00-17:00)
- Toto pravidlo tedy říká, že otevírací doba se nepřičítá, například Mo-Fr 08:00-12:30; We 14:00-17:00 znamená, že ve středu je obchod otevřen pouze odpoledne a nikoliv také odpoledne.
- Jedná-li se o první či poslední den rozsahu, pak nepoužívejte pravidlo o výjimce, ale použijte obvyklý tvar (např. > Mo-Fr 10:00-20:00; Sa 10:00-14:00)
- Po sobě nejdoucí, nebo částečně po sobě jdoucí dny v týdnu, budou značeny wd[x] (např. Su[3] 09:00-12:00 > takto se značí třetí neděle v měsíci od 9 do 12 hod.)
- Pomocí -1 se značí poslední den v měsíci (např. > Aug Th[-1] > znamená poslední čtvrtek v červenci)
- Lze použít seskupování (např. > Su[1,3,5]) nebo (např. > Su[1-3])
- Pokud je otevřeno v některé dny non-stop, pak použijte "00:00-24:00" (např. > Mo 00:00-24:00)
- Pokud je otevřeno 24 hodin 7 dní v týdnu, máme pro to zvláštní hodnotu: 24/7
- tímto způsobem můžeme vykreslovat popisovaný prvek zvláštní ikonkou.
- Zvláštní časová hodnota pro označení času, kdy vychází slunce je: sunrise (např. > Mo sunrise-12:00)
- Zvláštní časová hodnota pro označení času, kdy zapadá slunce je: sunset (např. > Fr 12:00-sunset)
- pomocí syntaxe ( <sunrise | sunset> <+ | -> <hh:mm> ) (včetně kulatých závorek !) můžeme vyjádřit časový ofset k sunrise/sunset (např. > (sunrise+02:00)-(sunset-02:00) )
- Znaménko + za časem znamená "od" nebo "otevřený konec" (např. > Sa 22:00+) nebo (např. > Sa 18:00-22:00+)
Více informací najdete v úplné specifikaci.
Časté chyby
- 7/8-23 (nesprávně) → Mo-Su 08:00-23:00 (správně)
- 0600-1800 → 06:00-18:00
- 07;00-2;00pm → 07:00-14:00
- 08.00-16.00, public room till 03.00 a.m → 08:00-16:00 open, 16:00-03:00 open "public room"
- 09:00-21:00 TEL/072(360)3200 → 09:00-21:00 "po tel. domluvě" (a přidat contact:phone=*)
- 10:00 - 13:30 / 17:00 - 20:30 → 10:00-13:30,17:00-20:30
- April-September; Mo-Fr 09:00-13:00, 14:00-18:00, Sa 10:00-13:00 → Apr-Sep: Mo-Fr 09:00-13:00,14:00-18:00; Apr-Sep: Sa 10:00-13:00
- Restaurace: 6am to 11pm; Okénko: 24/7 → 06:00-23:00 open "restaurace" || 00:00-24:00 open "okénko"
- MWThF: 1200-1800; SaSu: 1200-1700 → Mo,We,Th,Fr 12:00-18:00; Sa-Su 12:00-17:00
- BAR: Su-Mo 18:00-02:00; Tu-Th 18:00-03:00; KLUB: Tu-Th 20:00-03:00; Fr-Sa 20:00-04:00 → Tu-Th 20:00-03:00 open "Klub a bar"; Fr-Sa 20:00-04:00 open "Klub a bar" || Su-Mo 18:00-02:00 open "Bar" || Tu-Th 18:00-03:00 open "Bar"
- Su-Th 11:00-03:00; Fr-Sa 11:00-05:00 → Su-Th 11:00-03:00, Fr-Sa 11:00-05:00 viz poslední položka v kapitole příklady výše
- Mo-We 17:00-01:00; Th,Fr 15:00-01:00; PH,Sa,Su off → Mo-We 17:00-01:00, Th,Fr 15:00-01:00; PH off. Prostudujte dodatečná pravidla. Nemůžete použít "Sa,Su off" protože byste popřeli definovanou otevírací dobu v "Sa 00:00-01:00".
Implementace
JavaScript
JavaScriptové implementace uživatele Ypid:
- webová aplikace pro kontrolu syntaxe
- zdrojový kód (GitHub)
- Zobrazení elementů se zadanou hodnotou opening_hours nad OSM mapou + vyhodnocení jejich syntaxe
- Python script na vyhledávání prvků se značkou opening_hours pomocí regulárních výrazů a získání hodnot, které není možné vyhodnotit pomocí JOSM (dokumentace: README).
- Původní kompletní specifikace syntaxe od autora Netzwolf.
- Vytvořeno na základě původního kódu vytvořeného AMDmi3.
JavaScriptové knihovny
JavaScriptové knihovny autora AMDmi3 (na kterých je celá práce autora Ypid založena).
- javascript library s širokou škálou funkcí a pěknou dokumentací
- demo
osm24.eu
Web osm24.eu zobrazuje u jednotlivých POI barevným rozlišením aktuální situaci (otevřeno / blíží se zavírací doba / zavřeno). Řešení je současně pro tvůrce zajimavé také tím, že zřetelně zobrazuje objekty, které hodnotu opening:hours nemají vůbec definovanou.
OsmAnd
OsmAnd se pracovat s tagem opening_hours teprve učí. Implementace je ještě nedokonalá, např. neumí pracovat s konkrétními datumy, čísly týdnů apod., ale většinu běžných hodnot analyzuje a interpretuje dobře.
- Zdrojový kód (GitHub)
Otevírací doby na mapě Ulmu a okolí
Webová aplikace dostupná na http://ulm-oeffnungszeiten.creal.de interpretuje otevírací hodiny objektů na mapě města Ulm, Neu-Ulm a okolí. Zdrojový kód této aplikace má svobodnou licenci a je dostupný via GitHub. Přizpůsobení aplikace pro jinou lokalitu (město), je velmi snadné a je popsáno na GitHubu.
Další mapy a aplikace
- OsmAPP – unvierzální aplikace pro zobrazení/editaci mapy, zobrazuje `opening_hours` u každého prvku a od 9/2024 nabízí taky jednoduchý editor (screenshot editoru)
- Hoursome (pro iOS zařízení)
- My Opening Hours (pro Android zařízení)
- osmapa.pl/osm24 - nástroj pro vyhodnocování opening_hours
- web osm24.eu kde je možné také filtrovat různé kategorie zobrazených POI.
- Vizualizace statistik výskytu a kvality dat otevíracích dob.
- YoHours, webová stránka umožňující vytvářet otevírací doby pouhým přetažením časových intervalů na kalendář.
Programování
- PHP kód v SVN pro parsování opening_hours.
- Services_Openstreetmap, PEAR PHP balíček pro práci s OSM API. V široké míře podporuje parsování opening_hours syntaxe - viz příklady.
Vykreslování
V případě značení 24/7 se může na mapě u běžné ikony objevit i malá číslice 24:
Ostatní případy nelze efektivně vykreslit do mapy a proto se nabízí je zpřístupnit uživateli jiným způsobem, např. pomocí kontextového menu apod.
Mapy zobrazující otevírací doby
- Openingh.openstreetmap.de (jen otevřené, jen objekty s nesprávně definovanou hodnotou opening_hours - syntax error)
- osm24.eu
Dřívější zastaralé značky
Následující (nedokumentované) klíče byly prohlášeny za zastaralé a měly by být nahrazeny značkou opening_hours=*. Jejich hodnota by měla být interpretována a nastavena jako hodnota nového klíče, jak je popsáno výše:
Viz také Podmíněná omezení.
Viz také
- JOSM/Plugins/OpeningHoursEditor - JOSM plugin - grafický editor pro tvorbu značky opening_hours
- YoHours - online editor syntaxe značky opening_hours
- Openingh.openstreetmap.de - nástroj pro validaci vyhodnocení parametrů značky opening_hours
- access - časové omezení
- Podmíněná omezení - použití syntaxe opening_hours pro omezení přístupu na základě časové podmínky
- lit - umělé osvětlení
- collection_times - pro poštovní schránky a nádoby na odpad
- service_times - pro kostely či jiná zařízení, ve kterých se koná pravidelná specifická služba (bohoslužba) a její čas z principu není zcela totožný s otevírací dobou (dobou, kdy je objekt otevřen pro návštěvu
- Key:smoking_hours - pro čas, kdy je možné uvnitř (např. restaurace) kouřit
- happy_hours - pro dobu, kdy je zboží (např. alkoholické nápoje) nabízeno se slevou
Poznámky
- ↑ 1.0 1.1 Výchozí dny prázdnin lze přidat do opening_hours.js. Existuje i alternativní systém pro výchozí hodnoty, se kterým aktuálně opening_hours.js nepracuje: Default je návrhem systému výchozích hodnot. Podle tohoto návrhu lze nastavit výchozí hodnoty jako třeba maxspeed pro plochy (země, státy...) ale také pro období prázdnin. Země, zóna se může přihlásit do systému default se svou definicí prázdnin.