Siriショートカットで衛星画像を表示

Siriショートカットで気象庁衛星画像をワンタップで表示するショートカットを作ってみました。

SiriショートカットではiOS端末のコントロールをSiriショートカットを使い自動化出来るアプリでiOS13以降ではプリインストールアプリになりました。また、iOS13以前の端末でもAppStoreからインストールする事ができます。

※今回作成するショートカットはiOS13対応のショートカットです。


衛生画像を表示するショートカット概要

今回作成するショートカットは気象庁衛星画像をSiriショートカットで取得して画面に表示する機能を作成します。

動作環境   : iPhone7 iOS 13.4.1
アクション数 : 42個のアクション
タイトル   : 庁衛星画像


サンプルダウンロード

Download


気象庁衛生画像の取得方法

気象庁の衛星画像は次の様に構成されています。

https://www.jma.go.jp/jp/gms/imgs_c/0/{画像タイプ}/1/{ファイル名}.png

画像タイプでは「赤外線・可視・水蒸気」の3つタイプがあります。渡す値を変える事でそれぞれの画像を得る事が出来ます。

タイプ   URLに含ませる文字
赤外線 : infrared
可視  : visible
水蒸気 : watervapor


ファイル名は日時で管理されており、現在日時から逆算して生成する事が出来ます。

年月日時分-秒 → 2020年04月24日22時00分-00秒

数字だけを並べると次の様なファイル名になります。
202004242200-00

気象庁衛星画像は仕様上、高頻度でも10分毎になる為22時06分だと22時00分、22時22分だと22時10分の様な形で時間を丸める必要があります。


アクション配置の主な流れ

・メニューで選択を求める
 赤外線・可視・水蒸気の画像タイプの選択を求める

・現在の日時から10分を減算
 衛星画像の仕様によるものです。

・時間の桁合わせ処理
 時間の桁を 8→08, 11→11 の様に時間部分を2桁に合わせます。

・現在時間を基準に10分毎に数を丸める
 20→10, 25→10, 32→20 の様に10分前かつ10分単位で丸めます。

・ファイル名を構成する
 演算した時間の値を組み合わせてファイル名を作成します。

・リクエストURLを作成
 ファイル名・メニュー選択の値からリクエストURLを作成すます。

・表示
 
取得した画像を画面に表示


実践 ショートカットを作成

Siriショートカットアプリ「ショートカットを作成」へ進みアクションを配置していきます。

エディタ画面下にある検索窓から選択、または検索をし、アクションを配置して行きます。

 ~ 日付を取得

画像1

このショートカット内では何度も日付を扱うので「日付」を変数「現在日時」に代入します。

?? 変数とは ??
Siriショートカットのアクションは前のアクションからデータを受け取り、処理が終わると結果として次のアクションにデータを渡します。

各アクションのデータを一時的に保管する物として変数を使います。

変数とは様々な値を一時的に格納出来る物で、このSiriショートカットではアクションが直接繋がっていなくても変数を使いデータの読み書きが行えます。

変数をアクションで読み出す場合、キーボードを展開するとキーボード左上に「変数」があり、ショートカット内で扱える変数を選択する事が出来ます。

スクリーンショット 2020-04-25 0.13.27


~ メニューで選択を求める

ショートカット起動後、ユーザーが「赤外線・可視・水蒸気」かを選択出来るメニューを表示します。

画像3


~ 日付から10分減算

現在の日時から10分減算します。
時間と分を分割し、リストとして変数に代入します。

データをリストにする事でデータを分けて後々読み出す事が可能になります。

画像4

カレンダーアクションから渡されるデータにはフォーマットがあり、日付・時間フォーマットを「短・中・大」で選択出来ます。

今回の様に日付だけが必要ない場合は「なし」を選択する事で時間だけを得る事ができます。

スクリーンショット 2020-04-25 0.31.06

テキスト分割アクションではカスタム(任意指定の文字)「:」を境界として分割しています。例として、8:23を分割すると変数には次の様に入ります。

8
23



~ 時間の桁合わせ処理

画像6

先程設定した「現在日時リスト」変数の時間部分(インデックス1)を取得しIF文(条件分岐)に渡します。

ファイル名の時間部分は常時2桁必要になります。

8 → 08, 9 → 09
10 → 10, 11 → 11

これをIF文を使って桁を合わせます。

プログラマーであれば次の様なコードでイメージが掴めるかと思います。

if(time >= 10){
    return time;
}else{
    return '0'+time;
}


~ 現在時間の分を10分毎に丸める

こちらは先程の「桁合わせ処理」とほぼ同じです。

違うのは2個目のアクションで分の値を四捨五入して10の位に丸めています。

画像7


~ ファイル名を作成する

変数「現在時間V1」には桁合わせした数字
変数「現在時間分V1」には10分毎に丸めた分が入っています。

ファイル名を構成するには変数同士を連結させ、1つの文字列とします。

画像8

変数「現在日付」の中身が、2020/04/24
変数「現在時間V1」の中身が、08
変数「現在時間分V1」の中身が10

この様に仮定すると、テキストアクションの結果は次の様になります。

2020/04/240810-00

ファイル名にするには日付のスラッシュ( / )が不要ですので、2個目のアクションで、「/」を「」(無)に置換しており、変数「ファイル名」には次の値が代入されます。

202004240810-00


~ リクエストURLを作成

ファイル名を作成したときと同じ様にURLの該当する箇所に変数を埋め込みます。

※テキストアクション内で拡張子まで入れてしまうと、Siriショートカットアプリが何故かクラッシュします。

拡張子はURLアクションで付け、変数「リクエストURL」に代入します。

画像9


~ リクエストURLを表示

画像10

これでショートカットは完成です。

作成したショートカットは「完了」ボタンを押し、ショートカットを保存してください。

ショートカットプロパティから「ホーム画面に追加」を押すとホーム画面にアイコンが配置されます。


完成

スクリーンショット 2020-04-25 1.24.25

スクリーンショット 2020-04-25 1.24.34

最後に

最後までお付き合いくださり、ありがとうごさいました。

説明不足などの不備があれば遠慮なくコメントなどで指摘してください。

この記事が気に入ったらサポートをしてみませんか?