Thêm mô hình 3D vào bản đồ

Chọn nền tảng: Android iOS JavaScript

Mô hình 3D trên bản đồ

Mã mẫu sau đây minh hoạ cách thêm Mô hình 3D và định vị mô hình đó trong Không gian 3D bằng cách gọi phương thức addModel. Để sử dụng mẫu mã này, hãy làm theo hướng dẫn trong Thiết lậpthêm bản đồ 3D vào ứng dụng để thiết lập dự án Android Studio bằng bản đồ 3D cơ bản. Sau đó, hãy thêm mã sau vào tệp 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
        }
    }
)

Theo dõi các sự kiện nhấp vào mô hình 3D

Để theo dõi các sự kiện nhấp vào mô hình 3D, hãy gọi setClickListener trên đối tượng mô hình. Ví dụ sau đây cho biết cách thiết lập trình nghe sự kiện nhấp vào mô hình 3D:

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

Xin lưu ý rằng trình xử lý sự kiện nhấp không chạy trên luồng chính (hoặc luồng giao diện người dùng). Nếu muốn thay đổi giao diện người dùng (chẳng hạn như hiển thị thông báo Toast), bạn phải chuyển sang luồng chính. Đối với Kotlin, bạn có thể thực hiện việc này bằng cách sử dụng lifecycleScope.launch(Dispatchers.Main).