iOSのGoogleマップとYahoo!カーナビ等の地図アプリを連携させる方法
2019/10/23
価値ある情報をユーザー視点で発信するブログ
2019/10/23
iOSにバイク、車のナビゲーションをさせようと考えたとき、Googleマップは目的地の検索においてダントツの性能を発揮します。
Googleの持つビッグデータにかなう位置情報データベースは、これまでも、これからも現れないでしょう。
ほかのナビゲーションアプリでは検索できないマイナーな施設や地点であっても、Googleマップなら大概結果を出してきます。
ところがGoogleマップにナビゲーションをさせようと思うと、Googleマップが必ずしもベストのナビゲーションアプリではないことが、他のアプリと使い比べると分かってきます。
具体的にはGoogleマップのナビゲーションは、渋滞情報や、恐らくユーザーの通ったルートの統計情報などを統合し、高度な計算のもとにルートを検索しているであろう一方、信号一つパスするために生活道路を横切ったり、延々狭い裏道を走ったりなど、最短時間で目的地まで到着するために運転しやすさや安全性を度外視している傾向が見受けられます。
バイクならそんなに面食らうことはないのですが、Googleマップに自動車のナビゲーションをさせようと思うと「さすがにこれはないんじゃないか」と辟易することもしばしば。
また、案内も結構不親切で、曲がるべき交差点に到達するまでの案内の回数やタイミングが不十分と感じることが多く、何車線もある道路における車線の選択なども自分で判断しないとスムーズにこなせない傾向にあります。
一方、Yahoo!カーナビはそれとは真逆の傾向があります。
地点検索は明らかにGoogleマップより弱い一方、案内は親切で、カーナビ専用機に迫る使い勝手を持っています。
地点検索 | ルート検索 | ルート案内 | 音声案内 | |
---|---|---|---|---|
Googleマップ | ◎ | △(バイク向き) | × | × |
Yahoo!カーナビ | × | ○(車向き) | ◎ | ◎ |
専用リモコンまで用意されており、Googleマップより好ましく感じている人も多いのではないでしょうか。
曲がる交差点や分岐の案内も何度かに分けて行なってくれ、車線の選択もアシストしてくれます。交差点名を読み上げてくれるのもポイントが高いといえます。
もくじ
これを踏まえると、地点検索はGoogleマップに、ナビゲーションはYahoo!カーナビにさせることができれば、互いに苦手なところを補完でき、使い勝手を改善できるのではないかということに思い至ります。
地点検索 | ルート検索 | ルート案内 | 音声案内 | |
---|---|---|---|---|
Googleマップ | ◎ | △(バイク向き) | × | × |
Yahoo!カーナビ | × | ○(車向き) | ◎ | ◎ |
そこで、GoogleマップとYahoo!カーナビを連携させる方法を考案。
GoogleマップとYahoo!カーナビをはじめ、ナビゲーションで役に立つアプリを連携させるMapAppLauncherというものを作ってみました。
▼デモ動画
iOSのGoogleマップで地点検索⇒Yahoo!カーナビでナビゲーションの連携デモ pic.twitter.com/9dSysMTsz3
— moyashi (@hitoriblog) January 23, 2019
MapAppLauncherは、iOS用のショートカット、ならびにPython開発環境Pythonista 3用のPythonスクリプトです。
これを導入するとGoogleマップの地点情報ダイアログの共有からMapAppLauncherを起動できるようになり、そこからYahoo!カーナビをはじめ、ナビゲーションの役に立つアプリを起動できるようになります。
もちろん、ただ起動できるだけなく、Googleマップで指定した地点の情報を、起動したアプリに引き継げます。
MapAppLauncherで起動できるのは、具体的には以下の7つです。
特徴 | |
---|---|
Yahoo!カーナビ | 高品質なナビゲーション |
地図マピオン | カーナビ専用機に入力できるMAP CODEを生成可能 |
iOS標準マップ | Apple Watch連携 |
Yahoo! MAP(アプリ版) | – |
Yahoo!地図(Web版) | アプリ版では使えない地形図表示等 |
ZweiteGPS | 探索した経路のGPX等への保存、ログの記録等 |
Geographica | 国土地理院地図、陰影起伏図、標高の測定、ログの記録等 |
地図マピオンは利用者が恐らく少ないと思いますが、デンソーのMAP CODEが生成できます。
MAP CODEはカーナビに入力できる簡易なコードで、Googleマップで検索した目的地をカーナビに入力すれば、トンネルなどの環境に依存しないカーナビ専用機でのナビができて便利です。
NaviConという、同じくMAP CODEを生成できるアプリは、MapAppLauncherを使わずともGoogleマップとの連携ができるので地図マピオンとの連携は不要かもしれません。
対応カーナビであれば、Bluetooth経由で地点情報を転送できます。
共有の手順を終えた後、改めて起動しなければならないNaviConと違って、地図マピオンはGoogleマップから直接起動ができる利点があります。
特段ナビゲーションをする上でのメリットはなさそうですが、連携が可能だったのでYahoo! MAPとも連携可能にしました。
Web版のYahoo!地図は、アプリ版で使えない地形図が利用可能なので連携の選択肢に加えました。
Yahoo!地図の地形図は美しく、個人的に好きな地図です。
主にGPSのログを記録するのに使うZweiteGPS。
ログを様々な形式に変換して書き出せて便利です。
このアプリはGoogle Maps APIを使った経路検索ができ、なおかつ検索結果をGPXなどのファイルに書き出すことができる稀有な特徴を持っています。
国土地理院地図が利用できるGeographicaはオフラインに地図を保存できます。
陰影起伏図をオーバーレイでき、その美しさは見応えがあります。
主に登山に使うアプリですが、地図をオフラインに保存できる特徴があり、ZweiteGPSで作った経路検索結果のGPXを取り込むと、オフラインでの簡易ナビゲーションが可能となります。
指定した地点の標高を測定できる機能もあり、便利に使えます。
このほか、NAVITIME系のアプリとも連携させようと思ったのですが、URL Scheme経由で位置情報を渡す方法が分かりませんでした。
ご存知の方はお知らせください。
↓起動アプリの選択なしに、決め打ちでYahoo!カーナビを起動するバージョン。
インストールは、上記のリンク先よりショートカット版MapAppLauncherをダウンロード後、所定の手順でインストールしてください。ショートカット.appがインストールされている必要があります。
iOS 13ではショートカット.appが標準インストールになっていますが、ここで共有しているショートカットの利用のためには「設定>ショートカット>信頼されていないショートカットを許可」をオンにしておく必要があります。
↓起動アプリの選択なしに、決め打ちでYahoo!カーナビを起動するバージョン。
Googleマップの地点情報画面にある共有ボタンをタップ。
「Run Pythonista Script」をタップ。
登録した「地図アプリ起動」(MapAppLauncher)をタップ。
起動したい地図アプリをリストの中から選択します。