2013年12月11日水曜日

[Glaeja] 『あしたって いつのあしたよ?』


『Glaeja』ver.4.4.0では、『明日以降』の天気情報に展開されるエスケープキャラクタが追加されました。
(画像は、荒木飛呂彦著『ジョジョの奇妙な冒険 4 (ジャンプ・コミックス)(集英社刊)より

以前のバージョンで『明日以降の天気情報』を表示するウィジェットを作ろうとされていた方はピンとくると思いますが、『Glaeja』における天気では、この『明日』の定義と取り扱いがちょっと面倒です。
※ この面倒さを解決するために、新しいエスケープキャラクタを追加したんですが…

本エントリでは、天気情報における『今日・明日』の定義について、すこし解説します。



『Glaeja』では、天気情報を株式会社ウェザーマップ様の「ひとくち予報 in Feed」から取得しています。
これは、気象庁から発表される天気予報を基に、(基本的に)1日3回(05時・11時・17時から1時間程度のあいだに)更新されており、発表当日から始まる7日間の天気情報が含まれています。

例えば、2013年12月11日に公開されるXMLには、[12/11, 12/12, 12/13, 12/14, 12/15, 12/16, 12/17]のデータが含まれていることになります。

なので、2013年12月11日05時から24時までなら、
  • 『今日』 なら、一番最初(例:12/11)のデータ
  • 『明日』なら、二番目(例:12/12)のデータ
  • 『明後日』なら、三番目(例:12/13)のデータ
を取り出せば良い、ということになります。

ところが、深夜0時を過ぎた2013年12月12日00時から05時までのあいだは、前日(12月11日)17時に公開されたXMLしかありませんので、
  • 一番最初(例:12/11)のデータは、今日ではなく『昨日』
  • 二番目(例:12/12)のデータは、明日ではなく『今日』
  • 三番目(例:12/13)のデータは、明後日ではなく『明日』
ということになります。

つまり、同じ『今日』であっても、時間帯によって取り出すデータ位置をかえないといけないわけです。

%B,C,H,L,R,T,V,W%」などの『今日の天気情報』に展開されるエスケープキャラクタでは、この時間帯による取り出し位置変更を内部で自動的におこなっていました。

しかし、ver.4.3.5以前では、『明日』以降の情報に展開されるエスケープキャラクタはありませんでしたので、「%b,c,h,l,r,t,v,w%」など『7日間すべての天気情報』として展開された文字列から、「@...@」を駆使して、時間帯による位置変更を考慮しつつデータを切り出す、ということをおこなう必要がありました。

ver.4.4.0で追加された『明日以降の天気情報』に展開される「%A,D,I,M,S,X,Y,Z%」では、この時間帯による取り出し位置変更が、『今日』のもの同様に内部で自動的におこなわれます。

これにより、『明日以降』も『今日』と同程度の簡単さで天気情報の表示をおこなうことができるようになりました。

以上

0 件のコメント:

コメントを投稿