Skip to content

引数に郵便番号を与えると、APIを渡り歩いてその地域の日の出時刻を求めるコマンド

Notifications You must be signed in to change notification settings

ShellShoccar-jpn/getsunrise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

郵便番号→緯度経度→日の出時刻 コマンド

jqxmllintといったコマンドの使い勝手がなっておらんので、独自JSON&XML解析コマンドと、その応用品であるこのコマンド“getsunrise.sh”を作った。どこがなっておらんのかはQiita上に記した次のセクションでこってり書いたので読んでくるがよい。

まあとにかく、ここではこのgetsunriseを使ってみよ。

インストール方法

curlwgetが入っているUNIX環境ならほとんどの環境で動く。もちろん jqやxmllintなど不要 。JSONとXMLの解析はsedやAWKで済ませておる。

よって、上記のどちらかをインストールした後、次のようにしてこのリポジトリーをgit cloneすれば完了だ。

$ git clone https://github.com/ShellShoccar-jpn/getsunrise.git

そうか、gitがインストールされておらんと上記のコマンドは使えんな。gitが無くともunzipコマンドがあるなら

https://github.com/ShellShoccar-jpn/getsunrise/archive/master.zip

からファイルをダウンロード、展開、中のREADME.md以外のすべてのファイルに実行パーミッションセットで使えるようになるぞ。

使い方

コマンドの引数に郵便番号(nnn-nnnn)を付ければよいだけだ。次の例では後ろにさらに年月日を指定しているが、そうやって知りたい年月日を指定することもできる。

$ ./getsunrise.sh 288-0012 2016/01/01
千葉県銚子市犬吠埼、20160101の日の出・日の入時刻を調べます。
(15秒くらい待ってね...)

千葉県銚子市犬吠埼(緯度=35.706987,経度=140.861803)における、
2016年1月1日の 日の出時刻は6:46、日の入時刻は16:33、みたいですよ。
$ ./getsunrise.sh 100-2100 2016/01/01 # ←日本一早い初日の出の時刻は?
#(実際に動かしてみるがよい)
$ 

結果が出るまで15秒くらい待たされるが、これはAPIの仕様だ。我々のシェルスクリプトのせいではないぞ!

技術解説

このコマンドがやっている事は下記のとおりだ。要するにWebAPIを渡り歩いておるのだ。

  1. コマンド引数から郵便番号を受け取る。
  2. 郵便番号検索WebAPIに掛けて、地名と緯度・経度を得る。
  3. さらに、日の出・日の入時刻WebAPIに掛けて、日の出・日の入り時刻を得る。

ソースコードに興味がある者は、このリポジトリーの中身をじっくり見まわすがよい。getsunrise.sh本体など、コメントや空行を除けばたかだか85行のシェルスクリプトだ。

About

引数に郵便番号を与えると、APIを渡り歩いてその地域の日の出時刻を求めるコマンド

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages