Dodawanie modelu 3D do mapy

Wybierz platformę: Android iOS JavaScript

Model 3D na mapie

Poniższy przykładowy kod pokazuje, jak dodać model 3D i umieścić go w przestrzeni 3D, wywołując metodę addModel. Aby użyć tego przykładowego kodu, postępuj zgodnie z instrukcjami w sekcjach KonfiguracjaDodawanie mapy 3D do aplikacji, aby skonfigurować projekt Android Studio z podstawową mapą 3D. Następnie dodaj ten kod do pliku MainActivity.kt:

// 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
        }
    }
)

Nasłuchiwanie zdarzeń kliknięcia modelu 3D

Aby nasłuchiwać zdarzeń kliknięcia w modelu 3D, wywołaj setClickListener na obiekcie modelu. Poniższy przykład pokazuje, jak ustawić odbiornik kliknięć w modelu 3D:

model.setClickListener {
    lifecycleScope.launch(Dispatchers.Main) {
        Toast.makeText(this@ModelsActivity, "Model clicked", Toast.LENGTH_SHORT).show()
    }
}

Pamiętaj, że funkcja obsługi kliknięć nie jest uruchamiana w wątku głównym (ani w wątku interfejsu). Jeśli chcesz wprowadzić zmiany w interfejsie (np. wyświetlić komunikat Toast), musisz przełączyć się na wątek główny. W przypadku języka Kotlin możesz to zrobić za pomocą funkcji lifecycleScope.launch(Dispatchers.Main).