Thêm đường đa tuyến vào bản đồ

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

Hình nhiều đường trên bản đồ 3D

Mã mẫu sau đây minh hoạ cách thêm một hình nhiều đường và định vị hình đó trong không gian 3D bằng cách gọi phương thức addPolyline. Để sử dụng mã mẫu này, hãy làm theo hướng dẫn trong phần Thiết lập và Thê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
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.latLngAltitude

...

// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
    camera {
        center = latLngAltitude {
            latitude = 40.029349
            longitude = -105.300354
            altitude = 1833.9
        }
        heading = 326.0
        tilt = 75.0
        range = 3757.0
    }
)
internal val trailLocations = """
    40.0201040, -105.2976640
    40.0201080, -105.2976450
    40.0201640, -105.2975120
    40.0202200, -105.2973740
    40.0202500, -105.2972760
    40.0202960, -105.2971410
    40.0203080, -105.2970990
    40.0203320, -105.2970070
    40.0203640, -105.2969400
    40.0203710, -105.2969250
    40.0203770, -105.2969220
    40.0203910, -105.2969130
    40.0203940, -105.2969120
    40.0204200, -105.2969130
    40.0204630, -105.2968910
    40.0205270, -105.2968280
    40.0206030, -105.2967570
    40.0206590, -105.2966100
    40.0206990, -105.2964870
""".trimIndent().split("\n").map {
    val (lat, lng) = it.split(",")
    latLngAltitude {
        latitude = lat.toDouble()
        longitude = lng.toDouble()
        altitude = 0.0  // The trail will be clamped to the ground
    }
}

val trailPolylineOptions = polylineOptions {
    coordinates = trailLocations
    strokeColor = Color.RED
    strokeWidth = 7.0
    altitudeMode = AltitudeMode.CLAMP_TO_GROUND
    zIndex = 5
    drawsOccludedSegments = true
}

googleMap3D.addPolyline(trailPolylineOptions)

Theo dõi sự kiện nhấp chuột vào hình nhiều đường

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

polyline.setClickListener {
    lifecycleScope.launch(Dispatchers.Main) {
        Toast.makeText(this@PolylinesActivity, "Hiking time!", Toast.LENGTH_SHORT).show()
    }
}

Lưu ý rằng trình xử lý lượt nhấp không chạy trên luồng Chính (hoặc 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 ngắn), 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).