IntentでGoogle Mapアプリに飛ばしますが、出発地と目的地を指定して、その経路をGoogle Map上に表示させることができます。
 
下は、東京駅からスカイツリーまでを電車で移動するケースです。
 
![[Android & Kotlin] Intentで Google Map に移動経路の表示 1x1.trans - [Android & Kotlin] Intentで Google Map に移動経路の表示](https://akira-watson.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
Android Studio
2021.2.1
2021.2.1
Intent の設定
こちらも以下と同じように、API key 無しでIntentを使って簡単に Google Map を呼び出して地図を表示させる方法です。
 
API key 無しでIntentを使って簡単に Google Map を呼び出して地図を表示させる方法です。
 
GoogleMapを...
Intent.ACTION_VIEW
com.google.android.maps.MapsActivity
を使います
| 
					 1 2 3 4 5 6 7 8  | 
						val intent = Intent() intent.action = Intent.ACTION_VIEW intent.setClassName(     "com.google.android.apps.maps",     "com.google.android.maps.MapsActivity" ) intent.data = Uri.parse(str) startActivity(intent)  | 
					
 
Uri.parseの引数に
| 
					 1  | 
						http://maps.google.com/maps?saddr=出発地&daddr=目的地&dirflg=交通手段  | 
					
を入れます。
test0:東京駅からスカイツリー
test1:新宿御苑から東京駅
2ケースを試してみましょう。
MaincActivity.kt
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72  | 
						//package your.app.name import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import java.util.* class MainActivity : AppCompatActivity() {     override fun onCreate(savedInstanceState: Bundle?) {         super.onCreate(savedInstanceState) //        setContentView(R.layout.activity_main)         //test0()         test1()     }     // 地名を入れて経路を検索     private fun test0() {         // 起点         val start = "東京駅"         // 目的地         val destination = "スカイツリー"         // 移動手段:電車:r, 車:d, 歩き:w         val dir = arrayOf("r", "d", "w")         val intent = Intent()         intent.action = Intent.ACTION_VIEW         intent.setClassName(             "com.google.android.apps.maps",             "com.google.android.maps.MapsActivity"         )         // 出発地, 目的地, 交通手段         val str: String = java.lang.String.format(             Locale.US,             "http://maps.google.com/maps?saddr=%s&daddr=%s&dirflg=%s",             start, destination, dir[1]         )         intent.data = Uri.parse(str)         startActivity(intent)     }     // 緯度経度を入れて経路を検索     private fun test1() {         // 起点の緯度、経度         val srcLat = "35.681382"         val srcLtg = "139.7660842"         // 目的地の緯度経度         val desLat = "35.684752"         val desLtg = "139.707937"         val intent = Intent()         intent.action = Intent.ACTION_VIEW         intent.setClassName(             "com.google.android.apps.maps",             "com.google.android.maps.MapsActivity"         )         // 起点の緯度,経度, 目的地の緯度,経度         val str: String = java.lang.String.format(             Locale.US,             "http://maps.google.com/maps?saddr=%s,%s&daddr=%s,%s",             srcLat, srcLtg, desLat, desLtg         )         intent.data = Uri.parse(str)         startActivity(intent)     } }  | 
					
 
アプリを起動すると
目的地までのルート候補を
指定した電車を使ったケースで
リストアップします
その候補を選ぶと経路が表示されます
 
test1()のケースのように
出発地、目的地を緯度経度で指定することもできます
 
 
 
関連ページ:
- Intentで Google Map の表示
 - Intentで Google Map に移動経路の表示
 
References:
一般的なインテント
インテントとインテント フィルタ