#概要
この記事は、@otchyさん作のGoogle Maps の検索結果から Yahoo! カーナビで経路案内できる iOS ショートカットを改良したといった内容です。
Y!カーナビで経路案内 v4 (2021/02/03更新)
@otchyさんのショートカットが便利すぎて泣ける
タイトル通りです。
日常的に使用させていただいています。
2021/01現在、動かなくなった
本ショートカットを起動しても、Yahooカーナビアプリに目的地が転送されなくなりました。
原因分析
元記事のHTML の取得に記載されている「URLの内容の取得
」で、Googleからのレスポンスにエラーが出ていることを確認しました。JavaScriptが有効になっていない環境で、上記URLでのレスポンスが返ってこなくなったみたい。
......緯度経度情報が取得できないため詰んでる。
デバッグ処理 | 結果 |
---|---|
|
#改良方針 (v4: 2021/02/03更新)
Google APIに頼らずに、緯度経度情報を取得できればいいのでは?
→Google Mapsアプリから受け取るURLだけで緯度経度情報を取得できないか?
※ショートカット標準機能を駆使し、緯度経度を取得する方法を考えたが、2021/02時点で動かなくなったためNG。忘備録として過去の検討経緯は残しておきます。
v3の方針(動作せず)
Google Maps URLのパース
Yahoo!カーナビを実行するのに必要な情報は、目的地の緯度・経度情報です。URLのパースの最終目的は、緯度・経度情報の取得となります。
0.フォーマットの確認
Google Mapsから受け取る短縮URLを復元すると、
- 緯度・経度情報のみ帰ってくるパターン
-
住所・地名のみ帰ってくるパターン
の2つの形式になります。
1.のパターンならURLに記載された緯度・経度情報をそのまま使用できますが、2.のパターンの場合、住所から緯度・経度を取得しなければなりません。
1.URLから情報の抽出
上記2つのパターンに合わせ、URLを解析し、「緯度・経度情報」または「住所」を取得します。ショートカット機能を駆使し、頑張って分解します。
2.住所情報から緯度・経度情報の取得
住所情報から緯度・経度を取得するには、ショートカットに内蔵されているマップ機能の「入力から住所を取得」を使用します。この機能は、住所情報を「場所」オブジェクトに変換します。取得した場所は、「場所の詳細を取得」機能を使うと緯度・経度情報に変換できます。
これらの機能を駆使することで、住所情報から緯度・経度情報を取得します。ここまで来たら、あとはいつも通り、Yahoo!カーナビのURL Schemeを実行すれば終わりです。
ショートカット全体像
v3では6アクションだったのが、v4で32アクションに増えてしまった...
#改良版URL
v4: https://www.icloud.com/shortcuts/47403d0acdfb4c34bd599e2397e03acf
v3.1: https://www.icloud.com/shortcuts/fe7eca336ee64cfebf48031cac82e31c
v3: https://www.icloud.com/shortcuts/1017154b3deb45d0834fd4acbbeb46dd
v4: 緯度・経度取得方法をURL解析に変更しました
v3.1: 本ショートカットがGoogle Mapsに表示されないという致命的なミスを修正しました
v3: リリースしました