เพิ่มเครื่องหมายในแผนที่

เลือกแพลตฟอร์ม: Android iOS JavaScript

เครื่องหมายบนแผนที่ 3 มิติ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มเครื่องหมายพื้นฐานลงในแผนที่ 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 ในออบเจ็กต์เครื่องหมาย ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าเครื่องมือฟังการคลิกในเครื่องหมาย

  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)