지도에 3D 모델 추가

플랫폼 선택: Android iOS JavaScript

지도에 표시된 3D 모델

다음 코드 샘플은 addModel 메서드를 호출하여 3D 모델을 추가하고 3D 공간에 배치하는 방법을 보여줍니다. 이 코드 샘플을 사용하려면 설정앱에 3D 지도 추가의 안내에 따라 기본 3D 지도로 Android 스튜디오 프로젝트를 설정하세요. 그런 다음 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()
    }
}

클릭 핸들러는 기본 스레드 (또는 UI)에서 실행되지 않습니다. UI를 변경하려면 (예: Toast 메시지 표시) 기본 스레드로 전환해야 합니다. Kotlin의 경우 lifecycleScope.launch(Dispatchers.Main)를 사용하여 이 작업을 수행할 수 있습니다.