LoginSignup
9
7

More than 3 years have passed since last update.

「Google Maps の検索結果から Yahoo! カーナビで経路案内できる iOS ショートカット」を復活させた

Last updated at Posted at 2021-01-30

概要

この記事は、@otchyさん作のGoogle Maps の検索結果から Yahoo! カーナビで経路案内できる iOS ショートカットを改良したといった内容です。

Y!カーナビで経路案内 v4 (2021/02/03更新)

ここを参照

@otchyさんのショートカットが便利すぎて泣ける

タイトル通りです。
日常的に使用させていただいています。

2021/01現在、動かなくなった

本ショートカットを起動しても、Yahooカーナビアプリに目的地が転送されなくなりました。

原因分析

元記事のHTML の取得に記載されている「URLの内容の取得」で、Googleからのレスポンスにエラーが出ていることを確認しました。JavaScriptが有効になっていない環境で、上記URLでのレスポンスが返ってこなくなったみたい。
......緯度経度情報が取得できないため詰んでる。

デバッグ処理 結果
debug.png IMG_2666.PNG

改良方針 (v4: 2021/02/03更新)

Google APIに頼らずに、緯度経度情報を取得できればいいのでは?
→Google Mapsアプリから受け取るURLだけで緯度経度情報を取得できないか?

※ショートカット標準機能を駆使し、緯度経度を取得する方法を考えたが、2021/02時点で動かなくなったためNG。忘備録として過去の検討経緯は残しておきます。


v3の方針(動作せず)

改良方針
Google APIに頼らずに、緯度経度情報を取得できればいいのでは?

改良結果
実はショートカットの標準機能に、「場所」から「緯度・経度・地名・etc...」を取得する機能が備わっています。Google Maps Appから送信される「場所」情報も、この標準機能が使用できるみたいです。この機能をフルに活用することで、無事Yahoo!カーナビへの経路案内ショートカットが復活しました。うれしい。

improved.png

v3までの忘備録終わり


Google Maps URLのパース

Yahoo!カーナビを実行するのに必要な情報は、目的地の緯度・経度情報です。URLのパースの最終目的は、緯度・経度情報の取得となります。

0.フォーマットの確認

Google Mapsから受け取る短縮URLを復元すると、
1. 緯度・経度情報のみ帰ってくるパターン
2. 住所・地名のみ帰ってくるパターン
の2つの形式になります。
1.のパターンならURLに記載された緯度・経度情報をそのまま使用できますが、2.のパターンの場合、住所から緯度・経度を取得しなければなりません。
format.png

1.URLから情報の抽出

上記2つのパターンに合わせ、URLを解析し、「緯度・経度情報」または「住所」を取得します。ショートカット機能を駆使し、頑張って分解します。
flow.png

2.住所情報から緯度・経度情報の取得

住所情報から緯度・経度を取得するには、ショートカットに内蔵されているマップ機能の「入力から住所を取得」を使用します。この機能は、住所情報を「場所」オブジェクトに変換します。取得した場所は、「場所の詳細を取得」機能を使うと緯度・経度情報に変換できます。

これらの機能を駆使することで、住所情報から緯度・経度情報を取得します。ここまで来たら、あとはいつも通り、Yahoo!カーナビのURL Schemeを実行すれば終わりです。
map_object.png

ショートカット全体像

v3では6アクションだったのが、v4で32アクションに増えてしまった...
all.png

改良版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: リリースしました

9
7
11

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7