Mẫu mã sau đây minh hoạ cách thêm một đường nhiều đoạn và đặt đường đó vào 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 một bản đồ 3D cơ bản. Sau đó, hãy thêm đoạn mã sau vào tệp MainActivity.kt:
// Add imports import com.google.android.gms.maps3d.model.latLngAltitude ... // Add to the onMap3DViewReady method, after the googleMap3D object has been initialized 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 các sự kiện nhấp vào đường nhiều đoạn
Để theo dõi các sự kiện nhấp vào một đường nhiều đoạn, hãy gọi setClickListener trên đối tượng đường nhiều đoạn. Ví dụ sau đây cho thấy cách thiết lập trình nghe lượt nhấp trên một đường nhiều đoạn:
polyline.setClickListener { lifecycleScope.launch(Dispatchers.Main) { Toast.makeText(this@PolylinesActivity, "Hiking time!", Toast.LENGTH_SHORT).show() } }
Xin lưu ý rằng trình xử lý lượt 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ô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).