Maps SDK สำหรับ Android สามารถแสดงรูปภาพบิตแมปของแผนที่ โดยให้การโต้ตอบกับผู้ใช้แบบจำกัด ซึ่งเรียกว่าแผนที่ โหมด Lite
ตัวอย่างโค้ด
ที่เก็บ ApiDemos ใน GitHub มี ตัวอย่างที่แสดงการใช้โหมด Lite ดังนี้
- LiteDemoActivity - Java: ข้อมูลเบื้องต้นเกี่ยวกับการใช้แผนที่โหมด Lite ใน Java
- LiteDemoActivity - Kotlin: ข้อมูลเบื้องต้นเกี่ยวกับการใช้แผนที่โหมด Lite ใน Kotlin
- LiteListDemoActivity - Java: การแสดงแผนที่อย่างมีประสิทธิภาพใน ListViews โดยใช้โหมด Lite ใน Java
- LiteListDemoActivity - Kotlin: การแสดงแผนที่อย่างมีประสิทธิภาพใน ListViews โดยใช้โหมด Lite ใน Kotlin
ภาพรวมของโหมด Lite
แผนที่โหมด Lite คือรูปภาพบิตแมปของแผนที่ในตำแหน่งและระดับการซูมที่ระบุ โหมด Lite รองรับแผนที่ทุกประเภท (ปกติ ไฮบริด ดาวเทียม ภูมิประเทศ) และฟังก์ชันการทำงานบางส่วนที่ API แบบเต็มมีให้ โหมด Lite มีประโยชน์เมื่อคุณต้องการแสดงแผนที่หลายรายการในสตรีม หรือแผนที่ที่มีขนาดเล็กเกินกว่าจะรองรับการโต้ตอบที่มีความหมาย
ผู้ใช้ที่ดูแผนที่จะซูมหรือเลื่อนแผนที่ไม่ได้ ไอคอนบนแผนที่จะให้สิทธิ์เข้าถึงแก่ผู้ใช้ในการดูแผนที่ในแอป Google Maps บนมือถือและขอเส้นทาง
การเพิ่มแผนที่โหมด Lite
โหมด Lite ใช้คลาสและอินเทอร์เฟซเดียวกันกับ Google Maps Android API แบบเต็ม คุณตั้งค่า GoogleMap เป็นโหมด Lite ได้ด้วยวิธีต่อไปนี้
- เป็นแอตทริบิวต์ XML สำหรับ
MapViewหรือMapFragment - หรือในออบเจ็กต์
GoogleMapOptions
เป็นแอตทริบิวต์ XML สำหรับ MapView หรือ MapFragment
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraZoom="13"
map:mapType="normal"
map:liteMode="true"/>
ในออบเจ็กต์ GoogleMapOptions
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
ดูรายละเอียดเกี่ยวกับการตั้งค่าสถานะเริ่มต้นของแผนที่ได้ที่คู่มือเกี่ยวกับ ออบเจ็กต์แผนที่
Intent เพื่อเปิดใช้มุมมองแผนที่หรือคำขอเส้นทาง
โดยค่าเริ่มต้น แถบเครื่องมือที่ด้านขวาล่างของแผนที่จะมีไอคอนที่
ให้สิทธิ์เข้าถึงมุมมองแผนที่หรือคำขอเส้นทางในแอป Google Maps สำหรับอุปกรณ์เคลื่อนที่
คุณปิดใช้แถบเครื่องมือได้โดยเรียกใช้
UiSettings.setMapToolbarEnabled(false) ดูรายละเอียดเพิ่มเติมได้ที่
เอกสารประกอบเกี่ยวกับแถบเครื่องมือ
นอกจากนี้ โดยค่าเริ่มต้น เมื่อผู้ใช้แตะแผนที่ API จะเริ่มแอป Google Maps สำหรับอุปกรณ์เคลื่อนที่ คุณลบล้างลักษณะการทำงานนี้ได้โดยใช้ GoogleMap.setOnMapClickListener() เพื่อตั้งค่า Listener ของคุณเอง นอกจากนี้ คุณยังปิดใช้เหตุการณ์การคลิกบนแผนที่ได้โดยเรียกใช้ setClickable() ในมุมมองที่มี MapView หรือ MapFragment ดูรายละเอียดเกี่ยวกับเทคนิคทั้ง 2 นี้ได้ในเอกสารประกอบเกี่ยวกับเหตุการณ์
เหตุการณ์ในวงจร
เมื่อใช้ API ในโหมดโต้ตอบแบบเต็ม ผู้ใช้คลาส MapViewต้องส่งต่อเมธอดทั้งหมดในวงจรของกิจกรรมไปยังเมธอดที่เกี่ยวข้อง
ในคลาส MapView ตัวอย่างเมธอดในวงจร ได้แก่ onCreate(), onDestroy(), onResume() และ onPause()
เมื่อใช้คลาส MapView ในโหมด Lite การส่งต่อเหตุการณ์ในวงจรเป็น
ตัวเลือก ยกเว้นในกรณีต่อไปนี้
- คุณต้องเรียกใช้
onCreate()ไม่เช่นนั้นแผนที่จะไม่ปรากฏ - หากต้องการแสดงจุดตำแหน่งของฉันบนแผนที่โหมด Lite และใช้แหล่งที่มาของตำแหน่งเริ่มต้น คุณจะต้องเรียกใช้
onResume()และonPause()เนื่องจากแหล่งที่มาของตำแหน่งจะอัปเดตระหว่างการเรียกใช้เหล่านี้เท่านั้น หากคุณใช้แหล่งที่มาของตำแหน่งของคุณเอง ก็ไม่จำเป็นต้องเรียกใช้เมธอดทั้ง 2 นี้
ฟีเจอร์ API ที่รองรับ
ตารางต่อไปนี้อธิบายลักษณะการทำงานของแผนที่โหมด Lite สำหรับฟังก์ชันการทำงานแต่ละส่วนของ API หากแอปเรียกใช้เมธอดที่โหมด Lite ไม่รองรับ API จะบันทึกข้อความคำเตือน
| ฟังก์ชันการทำงาน | |
|---|---|
| ประเภทแผนที่ | รองรับไหม ใช่
|
| เส้นหลายเหลี่ยม รูปหลายเหลี่ยม วงกลม | รองรับไหม ใช่
ฟังก์ชันการทำงานของโหมด Lite สำหรับ
รูปร่าง ตรงกับ
API แบบเต็ม |
| Projection | รองรับไหม ใช่
ฟังก์ชันการทำงานของโหมด Lite สำหรับ
Projection
ตรงกับ API แบบเต็ม |
| ตำแหน่งของฉัน | รองรับไหม ใช่
ฟังก์ชันการทำงานของโหมด Lite สำหรับ
เลเยอร์ตำแหน่งของฉัน
ตรงกับ API แบบเต็ม |
| การเสริมพื้นที่ในแผนที่ | รองรับไหม ใช่
|
| หน้าต่างข้อมูล | รองรับไหม ใช่
|
| รูปแบบแผนที่ฐานที่กำหนดเอง | รองรับไหม บางส่วน
Maps SDK สำหรับ Android รองรับ
การจัดรูปแบบที่กำหนดเองของ
แผนที่ฐาน โหมด Lite รองรับเฉพาะการจัดรูปแบบที่กำหนดเองตาม JSON เท่านั้น ไม่รองรับ
การจัดรูปแบบในระบบคลาวด์ซึ่งต้องใช้รหัสแผนที่ในการแสดงแผนที่ที่จัดรูปแบบ
นอกจากนี้ โหมด Lite ยังไม่รองรับการตั้งค่า
รูปแบบสีของแผนที่
ให้ใช้โหมดมืด
|
| เครื่องหมาย | รองรับไหม บางส่วน
คุณสามารถเพิ่มตัวทำเครื่องหมาย
และตอบสนองต่อกิจกรรมการคลิกได้ นอกจากนี้ คุณยังเพิ่มไอคอนเครื่องหมายที่กำหนดเองได้ด้วย
แต่จะทำให้เครื่องหมายลากได้ไม่ได้ เครื่องหมายบนแผนที่โหมด Lite จะแบนและหมุนไม่ได้ |
| ตำแหน่งกล้อง การซูม และภาพเคลื่อนไหว | รองรับไหม บางส่วน
คุณสามารถตั้งค่าเป้าหมายและซูมกล้องได้ แต่ตั้งค่าการเอียงหรือทิศทางไม่ได้
ระบบจะปัดเศษระดับการซูมเป็นจำนวนเต็มที่ใกล้เคียงที่สุดในโหมด Lite
การเรียกใช้ การเรียกใช้ |
| เหตุการณ์ในแผนที่ | รองรับไหม บางส่วน
โหมด Lite รองรับ
หากต้องการปิดใช้เหตุการณ์การคลิกบนแผนที่ในโหมด Lite คุณสามารถเรียกใช้
|
| แผนที่ในอาคารและอาคาร | รองรับไหม ไม่ได้
โหมด Lite จะแสดงไทล์เดียวกันกับ
Maps Static API
ซึ่งหมายความว่าหากแปลนอาคารรวมอยู่ในชิ้นส่วนแผนที่เริ่มต้น แปลนอาคารจะปรากฏขึ้น แต่หากไม่รวม ผังพื้นจะไม่ปรากฏ นอกจากนี้ คุณยังเปลี่ยนระดับที่แสดงหรือจัดการตัวเลือกชั้นไม่ได้ |
| เลเยอร์การจราจร | รองรับไหม ไม่ได้
GoogleMap.setTrafficEnabled() ไม่รองรับ
ในโหมด Lite |
| การวางซ้อนบนพื้น | รองรับไหม ไม่ได้
GoogleMap.addGroundOverlay() ไม่รองรับในโหมด Lite
|
| การวางซ้อนของชิ้นส่วนแผนที่ | รองรับไหม ไม่ได้
GoogleMap.addTileOverlay() ไม่รองรับในโหมด Lite
|
| ท่าทางสัมผัส | รองรับไหม ไม่ได้
โหมด Lite ไม่รองรับท่าทางสัมผัส การเปิดและปิดใช้ท่าทางสัมผัส
จะไม่มีผล |
| Street View | รองรับไหม ไม่ได้
Street View ไม่รองรับ
โหมด Lite |