ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มตัวทำเครื่องหมายพื้นฐานลงในแผนที่ 3 มิติโดย
เรียกใช้เมธอด addMarker หากต้องการใช้ตัวอย่างโค้ดนี้ ให้ทำตามวิธีการใน
หัวข้อตั้งค่าและเพิ่มแผนที่ 3 มิติลงในแอป
เพื่อตั้งค่าโปรเจ็กต์ Android Studio ด้วยแผนที่ 3 มิติพื้นฐาน จากนั้นเพิ่มโค้ดต่อไปนี้ลงในไฟล์ 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.setMapMode(Map3DMode.SATELLITE)
googleMap3D.setCamera(
camera {
center = latLngAltitude {
latitude = 52.51974795
longitude = 13.40715553
altitude = 150.0
}
heading = 252.7
tilt = 79.0
range = 1500.0
}
)
// Add a marker using absolute altitude positioning
googleMap3D.addMarker(markerOptions {
position = latLngAltitude {
latitude = 52.519605780912585
longitude = 13.406867190588198
altitude = 150.0
}
label = "Absolute (150m)"
altitudeMode = AltitudeMode.ABSOLUTE
isExtruded = true
isDrawnWhenOccluded = true
collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
})
ฟังกิจกรรมการคลิกของตัวทำเครื่องหมาย
หากต้องการฟังกิจกรรมการคลิกบนเครื่องหมาย ให้เรียกใช้ setClickListener ในออบเจ็กต์เครื่องหมาย ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่า Listener การคลิกบนเครื่องหมาย
marker.setClickListener {
lifecycleScope.launch(Dispatchers.Main) {
Toast.makeText(this@MarkersActivity, "Clicked on marker: ${marker.label}", Toast.LENGTH_SHORT)
.show()
}
}
โปรดทราบว่าตัวจัดการการคลิกไม่ได้ทำงานในเธรดหลัก (หรือ UI) หากต้องการทำการเปลี่ยนแปลง UI (เช่น แสดงข้อความ Toast) คุณต้องเปลี่ยนไปใช้เธรดหลัก สำหรับ Kotlin คุณสามารถทำได้โดยใช้ lifecycleScope.launch(Dispatchers.Main)