Jetpack Compose เป็นชุดเครื่องมือ UI ที่ใช้กับ Android โดยเฉพาะแบบประกาศสิ่งที่ต้องการ ซึ่งช่วยให้การพัฒนา UI ทำได้ง่ายและเร็วขึ้น เมื่อใช้ Jetpack Compose คุณจะอธิบายลักษณะที่คุณต้องการให้แอปมี แล้วปล่อยให้ Jetpack Compose จัดการส่วนที่เหลือ
ไลบรารีของ Maps Compose สำหรับ Maps SDK สำหรับ Android คือชุดฟังก์ชันที่ประกอบได้แบบโอเพนซอร์สและประเภทข้อมูลที่ใช้กับ Jetpack Compose เพื่อสร้างแอปได้
ไลบรารี Maps Compose มีฟังก์ชันและประเภทข้อมูลที่คอมโพสิเบิลซึ่งช่วยให้คุณทํางานทั่วไปได้หลายอย่าง ฟังก์ชันและประเภทข้อมูลที่ประกอบได้ที่ใช้กันโดยทั่วไปมีดังนี้
เขียนได้ | คำอธิบาย |
---|---|
วงกลม | ฟังก์ชันคอมโพสิเบิลเพื่อเพิ่มวงกลมลงในแผนที่ |
GoogleMap | ฟังก์ชันแบบคอมโพสได้เพื่อเพิ่มแผนที่ |
GroundOverlay | ฟังก์ชันที่ประกอบกันได้เพื่อเพิ่มพื้นที่ซ้อนทับในแผนที่ |
MapProperties | ประเภทข้อมูลสำหรับพร็อพเพอร์ตี้ที่แก้ไขได้ในแผนที่ |
MapUISettings | ประเภทข้อมูลสําหรับการตั้งค่าที่เกี่ยวข้องกับ UI ในแผนที่ |
เครื่องหมาย | ฟังก์ชันเขียนได้สำหรับเพิ่มเครื่องหมายลงในแผนที่ |
รูปหลายเหลี่ยม | ฟังก์ชันประกอบเพื่อเพิ่มรูปหลายเหลี่ยมลงในแผนที่ |
Polyline | ฟังก์ชัน Composable สำหรับเพิ่มเส้นประกอบลงในแผนที่ |
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
เพิ่ม Dependency ต่อไปนี้ลงในไฟล์
build.gradle.kts
ระดับโมดูลdependencies { // Android Maps Compose composables for the Maps SDK for Android implementation("com.google.maps.android:maps-compose:6.1.0") }
สร้างโปรเจ็กต์ใหม่ใน Android Studio เพื่อซิงค์การเปลี่ยนแปลงเหล่านี้
เพิ่มแผนที่ลงในแอป
ตัวอย่างต่อไปนี้แสดงวิธีใช้คอมโพสิชัน 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
เพื่อตั้งค่าตำแหน่งของกล้องด้วย
จากนั้นตัวอย่างจะเรียกใช้คอมโพสิชัน Marker ในเนื้อหาของแผนที่เพื่อเพิ่มเครื่องหมายลงในแผนที่
หากต้องการเปรียบเทียบตัวอย่างนี้กับตัวอย่างที่เพิ่มแผนที่โดยใช้มุมมอง โปรดดูเริ่มต้นใช้งานอย่างรวดเร็ว สังเกตว่าฟังก์ชันแบบคอมโพสิเบิลใช้โค้ดน้อยกว่าและคุณไม่จําเป็นต้องกังวลเกี่ยวกับวงจรชีวิตของแผนที่
ตั้งค่าที่พักบนแผนที่
คุณสามารถตั้งค่าพร็อพเพอร์ตี้บนแผนที่ได้โดยระบุออบเจ็กต์ MapProperties หรือออบเจ็กต์ MapUiSettings สำหรับพร็อพเพอร์ตี้ที่เกี่ยวข้องกับ UI คุณสามารถแก้ไขออบเจ็กต์เหล่านี้เพื่อทริกเกอร์การจัดองค์ประกอบแผนที่ใหม่
ในตัวอย่างด้านล่าง ใช้สวิตช์ ซึ่งเป็นคอมโพเนนต์ดีไซน์ Material เพื่อสลับการควบคุมการซูมในแผนที่
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) } ) }
ขั้นตอนถัดไป
- ดูคลัง Maps Compose หน้าโปรเจ็กต์ GitHub
- ดูเอกสารประกอบเกี่ยวกับ Jetpack Compose