次のコードサンプルは、addMarker メソッドを呼び出して 3D 地図に基本的なマーカーを追加する方法を示しています。このコードサンプルを使用するには、設定とアプリに 3D 地図を追加するの手順に沿って、基本的な 3D 地図で Android Studio プロジェクトを設定します。次に、MainActivity.kt ファイルに次のコードを追加します。
// Add imports import com.google.android.gms.maps3d.model.latLngAltitude ... // Add to the onMap3DViewReady method, after the googleMap3D object has been initialized googleMap3D.setMapMode(Map3DMode.SATELLITE) googleMap3D.setCamera( camera { center = latLngAltitude { latitude = 52.51974795 longitude = 13.40715553 altitude = 150.0 } heading = 252.7 tilt = 79.0 range = 1500.0 } ) // Add a marker using absolute altitude positioning googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.519605780912585 longitude = 13.406867190588198 altitude = 150.0 } label = "Absolute (150m)" altitudeMode = AltitudeMode.ABSOLUTE isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL })
マーカーのクリック イベントをリッスンする
マーカーでのクリック イベントをリッスンするには、マーカー オブジェクトで setClickListener を呼び出します。次の例は、マーカーにクリック リスナーを設定する方法を示しています。
marker.setClickListener { lifecycleScope.launch(Dispatchers.Main) { Toast.makeText(this@MarkersActivity, "Clicked on marker: ${marker.label}", Toast.LENGTH_SHORT) .show() } }
クリック ハンドラは Main(または UI)スレッドで実行されないことに注意してください。UI を変更する場合(トースト メッセージの表示など)は、メインスレッドに切り替える必要があります。Kotlin の場合は、lifecycleScope.launch(Dispatchers.Main) を使用してこれを行うことができます。