IntentでGoogle Mapアプリに飛ばしますが、出発地と目的地を指定して、その経路をGoogle Map上に表示させることができます。
下は、東京駅からスカイツリーまでを電車で移動するケースです。
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 |
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); intent.setData(Uri.parse(str)); |
Uri.parseの引数に
1 |
http://maps.google.com/maps?saddr=出発地&daddr=目的地&dirflg=交通手段 |
を入れます。
test0:東京駅からスカイツリー
test1:新宿御苑から東京駅
2ケースを試してみましょう。
MaincActivity.java
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 |
//package your.app.name; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.net.Uri; import java.util.Locale; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); test0(); //test1(); } // 地名を入れて経路を検索 private void test0(){ // 起点 String start = "東京駅"; // 目的地 String destination = "スカイツリー"; // 移動手段:電車:r, 車:d, 歩き:w String[] dir = {"r", "d", "w"}; Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); // 出発地, 目的地, 交通手段 String str = String.format(Locale.US, "http://maps.google.com/maps?saddr=%s&daddr=%s&dirflg=%s", start, destination, dir[1]); intent.setData(Uri.parse(str)); startActivity(intent); } // 緯度経度を入れて経路を検索 private void test1(){ // 起点の緯度経度 String src_lat = "35.681382"; String src_ltg = "139.7660842"; // 目的地の緯度経度 String des_lat = "35.684752"; String des_ltg = "139.707937"; Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); // 起点の緯度,経度, 目的地の緯度,経度 String str = String.format(Locale.US, "http://maps.google.com/maps?saddr=%s,%s&daddr=%s,%s", src_lat, src_ltg, des_lat, des_ltg); intent.setData(Uri.parse(str)); startActivity(intent); } } |
アプリを起動すると
目的地までのルート候補を
指定した電車を使ったケースで
リストアップします
その候補を選ぶと経路が表示されます
test1()のケースのように
出発地、目的地を緯度経度で指定することもできます
関連ページ:
- Google Map API キー取得
- Google Map 簡単に地図を表示させる
- Google Map ズームとアイコン画像貼り付け
- Google Map タップして移動、マーカーの追加
- Intentでの簡単な Google Map 地図の表示
- Google Map 移動経路
References:
一般的なインテント
インテントとインテント フィルタ