Google Time Zone APIとは?
簡単に言うと、位置情報から時差やタイムゾーンを取得できるAPIです。
詳細は以下をご参照ください。
https://developers.google.com/maps/documentation/timezone/
実際に使ってみよう
世界地図をクリックしたら、その場所のタイムゾーンや標準時との時差を表示させてみましょう。
コードはこちらに置いておきます。
https://github.com/hamichamp/google-timezone-api-sample
マップをクリックすると、タイムゾーンや時差を表示してくれると思います。
アラートが出た場合は、タイムゾーンの取得に失敗していますので、適切な位置をクリックしてみてください。
(海をクリックするとよく失敗します。)
解説
Google Time Zone APIはtimezone-api-sample.jsで呼び出しています。
呼び出し方
https://maps.googleapis.com/maps/api/timezone/outputFormat?parameters
として呼び出します。
outputFormatにはjsonまたはxmlを指定可能です。
今回はjsonを使用しました。
必須パラメーター
location
緯度経度を渡します。
location=-33.86,151.20という形でlat,lngを指定してください。
この位置に関連したタイムゾーンや時差を取得することになります。
timestamp
時刻を渡します。
UTCとして渡す必要があります。
timestamp=1391606442というような形で指定してください。
ちなみに、なぜ時刻を渡す必要があるのか?という点については、疑問に思ったんですが、
レスポンスにサマータイムによる時差が含まれていることがその理由です。
サマータイム導入地域の時間を指定すると、サマータイム導入地域はその時差も返してくれます。
但し、サマータイムが導入されていない時間を指定するとサマータイムの時差は0として返します。
sensor
おなじみですね。
GPSセンサーの情報を要求するか否かというものです。
オプションパラメーター
language
タイムゾーン名をどの言語で返して欲しいかを指定できます。
今回は日本語で返してもらうために、'ja'を指定しました。
取得できる情報
status
OKならば、正常に取得できています。
dstOffset
サマータイムによる時差を表します。
指定したtimestampの値に依存します。
単位は秒です。
rawOffset
時差を表します。
単位は秒です。
timeZoneId
タイムゾーンIDです。
東京はAsia/Tokyoで表されます。
timeZoneName
タイムゾーン名です。
東京は日本語で日本標準時と表されます。
最後に
いかがだったでしょうか?
意外と簡単に利用できますね。
皆さんも活用してみましょう。
次回は、現地の時間を表示する方法にもチャレンジしてみたいと思います。