ไลบรารี Maps Compose

Jetpack Compose เป็นชุดเครื่องมือ UI แบบประกาศสิ่งที่ต้องการที่ใช้กับแพลตฟอร์มโดยเฉพาะ ซึ่งช่วยให้การพัฒนา UI ทำได้ง่ายและเร็วขึ้น เมื่อใช้ Jetpack Compose คุณจะอธิบายลักษณะที่ต้องการให้แอปเป็น แล้วปล่อยให้ Jetpack Compose จัดการส่วนที่เหลือ

ไลบรารี Maps Compose สําหรับ Maps SDK สําหรับ Android คือชุดฟังก์ชันที่ใช้ร่วมกันได้แบบโอเพนซอร์ส และประเภทข้อมูลที่คุณใช้กับ Jetpack Compose เพื่อสร้างแอปได้

ไลบรารี Maps Compose มีฟังก์ชันที่ใช้ร่วมกันได้และประเภทข้อมูลที่ช่วยให้คุณ ทำงานทั่วไปหลายอย่างได้ ฟังก์ชันที่ใช้ร่วมกันและประเภทข้อมูลที่ใช้กันโดยทั่วไปมีดังนี้

ประกอบกันได้ คำอธิบาย
วงกลม ฟังก์ชันที่ใช้ร่วมกันได้เพื่อเพิ่มวงกลมลงในแผนที่
GoogleMap ฟังก์ชันที่ใช้ร่วมกันได้เพื่อเพิ่มแผนที่
GroundOverlay ฟังก์ชันที่ใช้ร่วมกันได้เพื่อเพิ่มภาพซ้อนทับพื้นลงในแผนที่
MapProperties ประเภทข้อมูลสำหรับพร็อพเพอร์ตี้ที่แก้ไขได้บนแผนที่
MapUISettings ประเภทข้อมูลสำหรับการตั้งค่าที่เกี่ยวข้องกับ UI บนแผนที่
เครื่องหมาย ฟังก์ชันที่ใช้ร่วมกันได้เพื่อเพิ่มเครื่องหมายลงในแผนที่
Polygon ฟังก์ชันที่ประกอบได้เพื่อเพิ่มรูปหลายเหลี่ยมลงในแผนที่
เส้นประกอบ ฟังก์ชันที่ประกอบได้เพื่อเพิ่มเส้นหลายส่วนลงในแผนที่
TileOverlay ฟังก์ชันที่ใช้ร่วมกันได้เพื่อเพิ่มการวางซ้อนไทล์ลงในแผนที่

ดูรายการฟังก์ชันและประเภทข้อมูลที่สามารถคอมโพสทั้งหมดได้ที่ข้อมูลอ้างอิงของไลบรารี Maps Compose

ข้อกำหนด

หากต้องการใช้ไลบรารี Maps Compose กับ Maps SDK สำหรับ Android คุณต้องทำดังนี้

  • ดาวน์โหลด และติดตั้ง Android Studio Arctic Fox
  • สร้างโปรเจ็กต์ Google Maps ใน Android Studio โดยใช้ข้อมูลต่อไปนี้

    • ประเภทเทมเพลตของกิจกรรมการเขียนเปล่า เทมเพลตนี้จะเพิ่ม การอ้างอิงที่จำเป็นซึ่ง Jetpack Compose ต้องการ
    • SDK ขั้นต่ำที่ตั้งค่าเป็น API 21: Android 5.0 (Lollipop) ขึ้นไป
    • ตั้งค่าภาษาเป็น Kotlin
  • รับคีย์ API แล้วเพิ่มลงในโปรเจ็กต์

  • ติดตั้งไลบรารี Maps Compose ในโปรเจ็กต์ตามที่อธิบายไว้ในส่วนถัดไป

การติดตั้ง

วิธีติดตั้งไลบรารี Maps Compose ในโปรเจ็กต์ Google Maps

  1. เพิ่มทรัพยากร Dependency ต่อไปนี้ลงในไฟล์ build.gradle.kts ระดับโมดูล

      dependencies {
    
        // Android Maps Compose composables for the Maps SDK for Android
        implementation("com.google.maps.android:maps-compose:6.4.1")
    }

  2. สร้างโปรเจ็กต์ใหม่ใน Android Studio เพื่อซิงค์การเปลี่ยนแปลงเหล่านี้

เพิ่มแผนที่ลงในแอป

ตัวอย่างต่อไปนี้แสดงวิธีใช้ Composable GoogleMap เพื่อเพิ่มแผนที่

val singapore = LatLng(1.35, 103.87)
val singaporeMarkerState = rememberMarkerState(position = singapore)
val cameraPositionState = rememberCameraPositionState {
  position = CameraPosition.fromLatLngZoom(singapore, 10f)
}
GoogleMap(
  modifier = Modifier.fillMaxSize(),
  cameraPositionState = cameraPositionState
) {
  Marker(
    state = singaporeMarkerState,
    title = "Singapore",
    snippet = "Marker in Singapore"
  )
}

ในตัวอย่างนี้ แผนที่จะใช้พื้นที่สูงสุดที่อนุญาตและกล้องจะอยู่ตรงกลางของสิงคโปร์ นอกจากนี้ ยังมีการสร้างและระบุ CameraPositionState ใน cameraPositionState เพื่อตั้งค่าตำแหน่งของกล้องด้วย

จากนั้นตัวอย่างจะเรียกใช้ Composable ของ Marker ในเนื้อหาของแผนที่เพื่อเพิ่มเครื่องหมายลงในแผนที่

หากต้องการเปรียบเทียบตัวอย่างนี้กับตัวอย่างที่เพิ่มแผนที่โดยใช้ Views โปรดดูQuickStart สังเกตว่าฟังก์ชันที่ใช้ร่วมกันได้ ต้องใช้โค้ดน้อยลง และคุณไม่ต้องกังวลเกี่ยวกับวงจรของแผนที่

ตั้งค่าที่พักบนแผนที่

คุณตั้งค่าพร็อพเพอร์ตี้บนแผนที่ได้โดยระบุออบเจ็กต์ MapProperties หรือออบเจ็กต์ MapUiSettings สำหรับ พร็อพเพอร์ตี้ที่เกี่ยวข้องกับ UI คุณสามารถแก้ไขออบเจ็กต์เหล่านี้เพื่อทริกเกอร์การจัดองค์ประกอบใหม่ของ แผนที่

ในตัวอย่างด้านล่าง ให้ใช้ Switch ซึ่งเป็นคอมโพเนนต์ Material Design เพื่อสลับการควบคุมการซูมในแผนที่

var uiSettings by remember { mutableStateOf(MapUiSettings()) }
var properties by remember {
  mutableStateOf(MapProperties(mapType = MapType.SATELLITE))
}

Box(Modifier.fillMaxSize()) {
  GoogleMap(
    modifier = Modifier.matchParentSize(),
    properties = properties,
    uiSettings = uiSettings
  )
  Switch(
    checked = uiSettings.zoomControlsEnabled,
    onCheckedChange = {
      uiSettings = uiSettings.copy(zoomControlsEnabled = it)
    }
  )
}

ขั้นตอนถัดไป