2017年9月19日火曜日

URLスキーム/URLで地図アプリを開く

やりたいこと

緯度経度の位置情報を持ったリンク(たとえばTwitterのツイートとか)を押すと、自動的に地図アプリを起動して指定した場所を表示してくれるようにしたい。

こういうのをURLスキームという。

2種類のスキーム

Appleのマップ用

iOSの場合のURLスキームは以下のものとなる。
http://maps.apple.com/maps?パラメータ

これはApple純正マップ.appがインストールされているデバイスではマップ.appが優先的に起動し、非インストール機(WindowsやAndroid含む)ではGoogleMapが起動される(GoogleMapアプリがなければブラウザ上で)。

GoogleMaps専用

詳しくは公式ガイドページ
マップ.appがインストールされたデバイスでもGoogleMapを起動することもできる。
https://maps.google.com/?パラメータ
https://www.google.com/maps/preview/パラメータ

こちらはMacなら直接ブラウザで、iOSのTwitterアプリならそれの子プロセスとしてWebビューが開く。
iOSの場合、右上のアイコンからSafariで開き、さらにSafariで開いた画面上部に"Google Maps" Appで開くという表示から、GoogleMapsアプリで開くこともできる(アプリがインストールされていればだが)。
試してないがWindowsでもAndroidでも同じような感じだろう。
GoogleMapsアプリで開くまでが少し手間だが、難しいことではないし、たいていは子プロセスとしてのWebビューで事足りるだろう。

comgooglemaps://?パラメータ
などという方法もあるが、こちらは直接ブラウザを経由せずにGoogleMapアプリを開くためのもので、ツイートに直接書き込んでもURLとして認識されない。
ブラウザのURL欄に書いた場合、iOSでは直接GoogleMapsアプリが開けたが、アプリがないMacだと当然ダメ。素直にhttps〜形式の方がいい。

どっちの方がいいか

機能としてはGoogleMapsの方がStreetViewがあったりと高機能なので、当面は後者のURLスキームの方が良さそうだ。
同じ緯度経度、表示範囲(拡大率)を維持したまま相互を切り替えられるといいんだけどな。

0 件のコメント:

コメントを投稿