はじめに
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
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);
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