
The following code sample demonstrates how to add a 3D model and position it
in 3D space by calling the addModel
method. To use this code sample, follow the instructions in Setup
and Add a 3D map to your
app
to set up your
Android Studio project with a basic 3D map. Then, add the following code to the MainActivity.kt
file:
// Add imports and define constants
import
com.google.android.gms.maps3d.model.latLngAltitude
val
PLANE_URL
=
"https://storage.googleapis.com/gmp-maps-demos/p3d-map/assets/Airplane.glb"
val
PLANE_SCALE
=
0.05
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D
.
setCamera
(
camera
{
center
=
latLngAltitude
{
latitude
=
47.133971
longitude
=
11.333161
altitude
=
2200.0
}
heading
=
221.0
tilt
=
65.0
range
=
1
_200
.
0
}
)
googleMap3D
.
addModel
(
modelOptions
{
id
=
"plane_model"
position
=
latLngAltitude
{
latitude
=
47.133971
longitude
=
11.333161
altitude
=
2200.0
}
altitudeMode
=
AltitudeMode
.
ABSOLUTE
orientation
=
orientation
{
heading
=
41.5
tilt
=
-
90.0
roll
=
0.0
}
url
=
PLANE_URL
scale
=
vector3D
{
x
=
PLANE_SCALE
y
=
PLANE_SCALE
z
=
PLANE_SCALE
}
}
)
Listen for 3D model click events
To listen for click events on a 3D model, call setClickListener
on the model object. The following example shows
how to set a click listener on a 3D model:
model
.
setClickListener
{
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
Toast
.
makeText
(
this
@ModelsActivity
,
"Model clicked"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
Note that the click handler does not run on the Main (or UI) thread. If you
want to make changes to the UI (such as showing a Toast message), you must
switch to the Main thread. For Kotlin, you can do this using lifecycleScope.launch(Dispatchers.Main)
.

