6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

opening_hoursタグの書き方について

6
Last updated at Posted at 2015-01-22

opening_hoursというタグがあります。

お店の開店時間や、施設の利用可能時間の他、AEDなどの設備が利用できる時間を示すために使われます。

入力した結果は、OpenLinkMaposm24.euなどで確認することができます。

スクリーンショット 2015-01-22 22.55.18.png

このタグは非常に有効性が高く、POIを登録するときには是非使って欲しいものなのですが、記法がイマイチ日本人の感覚に合わず、あまり入力されていないという現状があります。
ここでは、その利用方法について、いくつかの解説を試みます。

基本的な使い方

最も入力しやすい方法として、JOSMの OpeningHoursEditor というプラグインがあります。
これは起動すると、opening_hoursタグを塗りつぶし形式で入力することができます。ほとんどの場合、このプラグインで生成した記述でなんとかなります。
JOSMのメニュー画面からデータ -> 開店時間を編集 で起動することができます。

スクリーンショット 2015-01-22 22.57.42.png

編集画面はこんなかんじです。

スクリーンショット 2015-01-22 22.59.46.png

ただし、このプラグインでは、例えば以下のことができません。
(というか、JOSM自体で、エラーとして扱われます (^^;))

  • 祝日(PH)、の入力
  • 第三月曜日、など、第n``X曜日、の表現

こうした記述は、自分で値を記載する必要があります。

値の書き方の例

opening_hoursタグでは、いくつかの値を、セミコロン (;) でつなぐことによって記載を行います。

その際、後ろに記入した値のほうが優先されます。

と言葉で説明してもなんのことやらわからないと思うので、例をあげます。

月曜日-金曜日 10:00-17:00
土日祝 16:00-23:00

この場合は、以下のように書きます。
セミコロンで改行していますが、実際には一行で記載します。

Mo-Fr 10:00-17:00;
Sa-Su,PH 16:00-23:00

一行で書くとこうです。

Mo-Fr 10:00-17:00; Sa-Su,PH 16:00-23:00

曜日などの記載についての対応表

曜日を英語で記載する際に、3文字ではなく2文字であらわすのはあまりピンとこないかもしれませんので、対応表を置いておきます。

ちなみにこれは海外でも同じ状況らしく、Tagging MLでも以前、"なんで3文字にしないの?"という質問がでていました。まぁ、そういうものだ、と割り切るしか無いです、はい。

日本語 英語 opening_hoursでの値
月曜日 Monday Mo
火曜日 Tuesday Tu
水曜日 Wednesday We
木曜日 Thursday Th
金曜日 Friday Fr
土曜日 Saturday Sa
日曜日 Sunday Su
祝日 Public Holiday PH

値が正しいかどうかのチェック

この記法が正しく書けているかどうかは、ウェブ上で公開されているバリデータでチェックが可能です。

非常に有用なツールなので、手入力で複雑な値を組み立てる場合にはここでチェックしながら記述することをお勧めします。

よくある複雑な例

病院・クリニックの例

水曜日や木曜日のみ別の開店時間で、日曜・祝日がお休みというパターンです。

2015-01-08 11.23.40.jpg

文字に起こすとこうですね。

月曜日〜水曜日: 08:30-11:30, 16:00-18:30
水曜日: 定休
金曜日: 08:30-11:30, 16:00-18:30
土曜日: 08:00-11:00
日曜日・祝日: 定休

この場合、こう書きます。

Mo-fr 08:30-11:30, 16:00-18:30;
We off;
Sa 08:00-11:00;
Su, PH off

off、の部分はまとめることもできます。
記述の順番は、後ろに書くほうが有効(前に書いた記述を上書き)するので、特殊であればあるほど後ろに書くと良いでしょう。

Mo-fr 08:30-11:30, 16:00-18:30;
Sa 08:00-11:00;
We,Su,PH off

バリデータサンプル

第三月曜日、などの指定

第三月曜日、など、第n``X曜日、の表現、です。

ちょっとサンプルの写真が見つからなかったので、札幌の呑み屋さんのページから拝借します。

文字に起こすとこうですね。

営業時間
ランチタイム 11:00-14:00(13:30LO)
ディナータイム 17:00-22:00(21:30LO)
定休日
第2・第4月曜日 

この場合、こう書きます。

11:00-14:00, 17:00-22:00;
Mo[2,4] off

曜日のテキスト部分を省略すると、月曜日から日曜日まですべて、の意味になります。

また、[ ]で囲う部分をマイナスにすると、月終わりから起算して第n``X曜日を計算します。
月内最終週のみお休み、という場合に使います。こういうかんじですね。

11:00-14:00, 17:00-22:00;
Mo[-1] off

夜の00:00を超える場合の表現

夜の00:00を超える場合の表現です。
ラーメン屋さんや居酒屋など、よく見かけますね。

例えば、名古屋にあるラーメン屋さんの例をみてみましょう。

2015-01-22 22.14.21.jpg

文字にしてみると、こうです。

AM 11:00-翌AM2:00 <<スープ売り切れまで>>

この場合、26:00と記載してもかまいませんし、24:00でいったん切って、00:00から次の時間帯を開始してもかまいません。
26:00で記述する場合、以下のようになります。

Mo-Su 11:00-26:00

24:00でいったん切って表現する場合、以下のようになります。

Mo-Su 00:00-02:00, 11:00-24:00

ただ、よく見てみると、スープ売り切れまで という指定が行われています。
これは大切な情報です。ラーメン好きであれば欠かせない情報でしょう :)

この場合、コメントの機能を利用します。" "を使って、テキスト文字列で指定します。

Mo-Su 11:00-26:00 "スープ売り切れまで"

コメントでの記法は他にも、"要予約" "不定休" などの情報を残すときにも使うことができます。

バリデータサンプル

夏期・冬期だけ営業時間が変化

キャンプ場や牧場などは、夏期と冬期で営業時間が異なる場合があります。

例えば、成田ゆめ牧場が該当します。

平日: 09:00〜17:00
12月、1月、2月の平日: 10:00~16:00
土日祝: 09:30〜17:00
冬休み期間中(12/27~1/4): 09:30~17:00

この場合、月を指定することが可能です。
Dec-Febで、12月から2月、という意味になります。

09:00-17:00;
Dec-Feb Mo-Fr 10:00-16:00;
Dec-Feb Sa-Su,PH 09:30-17:00;
Dec 27-31,Jan 1-4 09:30-17:00

バリデータサンプル

日の出、日没

日の出や日没を基点にすることも可能です。
sunrise, sunset, dawn, dusk、という文字列で指定します。

緯度経度を元に日の出と日没の時間計算を行っており、計算が行えない場合のデフォルト値は、払暁(dawn)が5:30、日の出(sunrise)が06:00、日没(sunset)が18:00、夕闇(dusk)が18:30になっています。

あまり見かけない指定ですが、僕の観測範囲だけでも、日本で2−3例ほど確認されています。
こういうかんじです。

IMAG3251.jpg

営業時間
あさ9時より日没

opening_hoursで記載する場合、このようになります。

09:00-sunset

日没後30分、の指定

日没関連でゆけば、他にも例えば島根県立美術館では、閉店時間が 日没 30分後 とされています。
その場合、 (sunset + 00:30) という風に指定すると、30分後、を表現できます。

【3月~9月】 10:00~日没後30分 (展示室への入場は日没時刻まで)
【10月~2月】 10:00~18:30 (展示室への入場は18:00まで)

opening_hoursの記述ではこうです。

Mar-Sep 10:00-(sunset+00:30);
Oct-Feb 10:00-18:30

バリデータサンプル

詳しい解説は Githubにあります。

To calculate the correct values, the latitude and longitude are required which are included in the JSON returned by [Nominatim] (see in the [Library API][ohlib.library-api] how to provide it). The calculation is done by [suncalc][].

opening_hoursで表現できない定義

日本で行われているいくつかの慣習については、対応することができていません。

これは本家のパーサでの実装が必要です。

24時間営業の場合

コンビニなどですね。

この場合、以下のように記述します。最も簡単な記法なので、これだけでもぜひ入力しましょう!

opening_hours = 24/7

参考文献

より詳しい情報は、OSMのwikiページと、Githubの記述が参考になります。

6
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?