API key 無しでIntentを使って簡単に Google Map を呼び出して地図を表示させる方法です。
GoogleMapを使う方法 こちら が正道ですが、Google Maps API キー を取得するのは面倒です。また費用が掛かる場合もありますからメニューからちょっと店の場所だけ出したいというケースでは、この方法が簡単で便利です。
Android Studio
2021.2.1
2021.2.1
Intent.ACTION_VIEW の設定
Intent.ACTION_VIEW を使います。
1 2 |
val intent = Intent(Intent.ACTION_VIEW, uri) startActivity(intent) |
uri には知りたい場所を設定するだけです
MainActivity.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 |
//package your.package.name import android.annotation.SuppressLint import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { @SuppressLint("QueryPermissionsNeeded") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val uri: Uri = Uri.parse("geo:0,0?q=東京駅") val intent = Intent(Intent.ACTION_VIEW, uri) startActivity(intent) if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } } } |
emulatorで確認するときには、System ImageでGoogle APIsをサポートしているものでないとエラーになります。
緯度経度、ズームを指定して表示
geo:[緯度],[経度]?z=[ズーム]
と設定すると、緯度経度とズームに従った場所が地図の中央に表示されます。
1 |
val uri: Uri = Uri.parse("geo:35.681382,139.766084?z=16") |
マーカーを立てたい場合は、
geo:[緯度],[経度]?z=[ズーム]&Marker@[緯度],[経度]
1 2 |
val uri: Uri = Uri.parse("geo:35.681382,139.766084?z=10&q=Marker@35.681382,139.7660846") |
関連ページ:
- Google Map API キー取得
- Google Map Activity で地図を表示
- Google Map ズームとピンをアイコン画像に変更
- Google Map マーカーの追加
- Intentで Google Map の表示
- Intentで Google Map に移動経路の表示
References:
一般的なインテント
インテントとインテント フィルタ