Добавить 3D-модель на карту,Добавить 3D-модель на карту

Выберите платформу: Android iOS JavaScript

3D-модель на карте

Приведенный ниже пример кода демонстрирует, как добавить 3D-модель и расположить ее в 3D-пространстве, вызвав метод addModel . Чтобы использовать этот пример кода, следуйте инструкциям в разделах «Настройка» и «Добавление 3D-карты в приложение» , чтобы настроить проект Android Studio с базовой 3D-картой. Затем добавьте следующий код в файл 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
        }
    }
)

Отслеживайте события щелчков мыши по 3D-моделям.

Чтобы отслеживать события клика по 3D-модели, вызовите метод setClickListener для объекта модели. В следующем примере показано, как установить обработчик кликов для 3D-модели:

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

Обратите внимание, что обработчик кликов не выполняется в основном потоке (или потоке пользовательского интерфейса). Если вы хотите внести изменения в пользовательский интерфейс (например, отобразить всплывающее сообщение), вам необходимо переключиться в основной поток. В Kotlin это можно сделать с помощью lifecycleScope.launch(Dispatchers.Main) .