追記:2016-03-31
github側の更新を終えました。新年度の5374.jp 富士市版もよろしくお願い致します。
5374.jpの富士市版 https://t.co/npfdutuhWy の2016年度対応をしました! 間違い等見かけたら連絡下さい。
— Hiroshi Sano (@hrs_sano645) March 31, 2016
更新履歴はこちらです。https://t.co/2zGeXbA2l9
githubでのマージ作業等はこちらで見れます。https://t.co/D2wZPKPTR4
— Hiroshi Sano (@hrs_sano645) March 31, 2016
以下本文
先日に、5374アプリの富士市版の製作記を書きましたが、今回はゴミ情報の2016年度への対応についてです。
データ自体は完成しているので、まずはこのGoogleスプレットシートの埋め込みをご覧ください。(先々のシートは見るのが面倒なので利用するデータのみ見るのを推奨)
Googleドキュメント側で見れるURLです。: https://docs.google.com/spreadsheets/d/10SrgjPAyFwMpskNRnGAWm59JmbiHBdnROhbjvEXe548/edit?usp=sharing
中身としては、gomi_pattern
、またこの接頭辞が付いたシートが肝になります。
データとしては完成したので、githubに上げても良いのですが、2015年度は3/31までで、まだ期間があるため、2016年度の更新は3/31の昼ごろを予定してます(ひどい間違いがなければですが)
所感など
今回大変だったことは、5374アプリに備わってるカレンダーの入力記法では全く対応できなかった点です。特に曜日指定にある1週目の月曜日といった書き方(月1
ですね)の書き方では対処出来ませんでした。理由は後述しています。
カレンダーがパターン化出来ない場合は本当に手打ちになりそうでしたが、幸いにもパターンがわかったため、今回もExcel(Googleスプレットシート等)芸でなんとかしました。Twitterでも ぼやいて つぶやいていましたが
5374アプリ富士市版の2016年度版のデータを作った。ほぼすべて不定期記入方法出ないと行けないので頑張った。Excel芸で。後は確認するだけかな。 via Facebook https://t.co/BJAcKQPjsJ [f… pic.twitter.com/icJGxO3x1x
— Hiroshi Sano (@hrs_sano645) March 27, 2016
5374アプリのデータ確認。指差し確認しながら日付を連呼してカレンダーを見て確認してる。
— Hiroshi Sano (@hrs_sano645) March 27, 2016
2015年度で作成したスプレットシートを流用、改変してましたので、Excel芸的な作業はさほどかかりませんでした。
データの確認は量の多さと可読性が少し良くないので大変です。こればかりはしょうがないと思ってますが可読性は何らかの方法を使ってあげたいところです。
ということで、今年度の5374アプリのデータ作成が終えました。3/31の更新までしばしお待ち下さい。
最後に、何が変わったかを上げてみます。更新履歴です。
5374アプリ 2016年度 変更履歴
情報元
こちらを利用しました。以下のゴミカレンダーの画像もこちらのリンク先で公開されているPDFファイルより切り出して利用しています。
center.csv
- 指定のパターンごとに休止開始日と休止終了日を変更した
これは、燃えるごみとプラスチックに関わる変更です。以前はセンターの休止期間は一つにしていましたが、少し問題がありました。
平成28年度版のごみカレンダーを見るとわかるのですが、燃えるごみの休止期間とプラスチックの休止期間が違います(各種の曜日を基準に書かれているので当然ですが)
この場合、燃えるごみは休止期間内なのにプラスチックは休止期間外、その逆もあり得ることになります。その場合、どちらかの日付に合わせて休止期間を一番短くすれば良いはずです。
例ですが
- パターンA-1
- 可燃の休止開始:2016/12/30 - 2017/01/06
- プラの休止期間:2016/12/28 - 2017/01/04
- 両者を合わせて一番短くした結果 2016/12/30 - 2017/01/04
実現方法ですが、IF関数でやりました。日付の比較演算子が使えるんですね。あと実は加算減算もできるようです。
参考: Googleスプレッドシートで条件付き書式を使い近日中に迫る日付を強調表示する :: terabo.net
area_days.csv
- 燃えるごみ, プラスチック製容器包装 以外のすべての項目を不定期記法に切り替えた
- 埋立ごみ, かん, 金属類, びん, ペットボトル, 衣類・ふとん類 の1月の日付が特殊な仕様に対応
不定期記法に理由としては、富士市のカレンダーが特殊なためです。サンプルとして以下を上げてみますが
この、毎月第*回の*部分ですが、アプリのデータを作ってた当初は、*週目のことを指していたと思っていたのですが、違いました。月毎の出現回数のことです。例えば
- 2016/04/04:月曜日
- 4月の最初に出現した金曜日 = 毎月1回目の金曜日のグループ
- 2016/08/08:月曜日
- 8月の2回目に出現した月曜日 = 毎月2回目の月曜日のグループ
そのため、2015年度で利用していた、日付とその月の何週目を割り出すdatetime_to_weeknum
シートの計算をやめて、手打ちで出現回数に切り替えました。関数やスクリプトで出す方法はすぐに思いつかなかったのもありますが ^^;
そのデータソースを利用して、gomi_pattern
のシート上で曜日と毎月の*回目の数値を入れることで、各月の日付を割り出しています。この辺はVLOOKUP関数で検索してます。
最後に各月の日付を不定期記法で表記できるようにCONCATENATE関数で文字列結合しています。この辺はシートの数式を見ていただくと早いと思います。
また、古紙以外の不定期記法にしたゴミの種類では1月だけ変則な日付が入るそうですが、カレンダーを見たところだと 最初の週を無視した形のようでした。
そのため、1月の1回目を1月の2回目のように位置をずらすようにしています。実現方法はシートを参照してもらうほうがわかると思いますが、1月だけ*回目の列を新設して手入力でずらしています。
target.csv
一部項目が間違っていたものを修正
アプリ自体の更新
- HTMLの平成27年度(2015年度)の表記を平成28年度(2016年度)と言った内容に変更
お知らせ
毎度書かせていただきますが、5374アプリ 静岡県富士市版は、現在私個人で作成, 運用しているプロジェクトです。興味のある方がいらっしゃいましたら一緒にやりませんか?
具体的に今困っている/足りないことは以下のとおりです。
- 入力しているごみ情報の正確性
- モバイル向けに電話番号や住所への対応: モバイルで見る場合が圧倒的に多いと思われるので、マップなどの埋め込みがあると良いと考えてます。
ごみ情報の正確さが一番大事なのですが、作成した人が見ているだけだと間違えに気がつかないので、どなたかに確認してもらいたいです。もし助けていただけると幸いです。
連絡先はこのエントリーのコメント, Twitter@hrs_sano645 でお願い致します。お待ちしております!