LoginSignup
5
9

More than 5 years have passed since last update.

【小ネタ】Google Mapアプリの"経路オプション"隠れパラメータ

Last updated at Posted at 2018-02-23

はじめに

Google MapアプリはAndroidアプリであればIntentで、iOSであればURLスキームで呼び出すことが出来ます。
ドキュメントは以下となります。

https://developers.google.com/maps/documentation/android-api/intents?hl=ja
https://developers.google.com/maps/documentation/ios-sdk/urlscheme?hl=ja

経路オプションは設定できない?

上記のドキュメントでは経路オプションについて書かれていません。
書かれているのはAndroidナビゲーションモードのavoidのみです。

ターンバイターンのナビゲーション
:
avoid は、ルートで避けるべき地物を設定します。 avoid は省略可能で、次のうち 1 つ以上を設定できます。
t: 有料道路
h: 高速道路
f: フェリー

が!

実はAndroid/iOSの経路マップにおいて、
dirflgというパラメータ名で使用することが出来るようです。
複数選択する場合はdirflg=fhtなど続けて書きます。

注意として、Androidはさらに以下d,w,bのいずれかをdirflgに加えないと動作しません。

mode は、移動手段を設定します。 mode は省略可能で、デフォルト値は車です。次のいずれかの値に設定できます。
d は車
w は徒歩
b は自転車

例として、Androidで車の移動手段で有料道路を使用しない設定はdirflg=dtです。

サンプルコード

Android

Activity.java
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
String url = "https://www.google.co.jp/maps?saddr=東京都&daddr=茨城県&dirflg=dfht";
i.setData(Uri.parse(url));
startActivity(i);
Activity.kt
val i = Intent()
i.action = Intent.ACTION_VIEW
i.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity")
val url = "https://www.google.co.jp/maps?saddr=東京都&daddr=茨城県&dirflg=dfht"
i.data = Uri.parse(url)
startActivity(i)

iOS

comgooglemaps://?saddr=東京都&daddr=茨城県&dirflg=fht

まとめ

謎の機能ですがインターネットを漁ったら出てきました。
ドキュメントになく、正式にはサポートしていない機能だと思うので、
実装する場合は自己責任で。。

参考
https://stackoverflow.com/questions/1056984/open-google-maps-to-bus-directions

5
9
0

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
5
9