Maps SDK สำหรับ Android สามารถแสดงภาพบิตแมปของแผนที่ ซึ่งให้การโต้ตอบที่จำกัดแก่ผู้ใช้ ซึ่งเรียกว่าแผนที่โหมด Lite
ตัวอย่างโค้ด
ที่เก็บ ApiDemos ใน GitHub มีตัวอย่างที่สาธิตการใช้โหมด Lite ดังนี้
- LiteDemoActivity - Java: ข้อมูลเบื้องต้นเกี่ยวกับการใช้แผนที่โหมด Lite ใน Java
- LiteDemoActivity - Kotlin: ข้อมูลเบื้องต้นเกี่ยวกับการใช้แผนที่โหมด Lite ใน Kotlin
- LiteListDemoActivity - Java: แสดงแผนที่อย่างมีประสิทธิภาพใน ListView โดยใช้โหมด Lite ใน Java
- LiteListDemoActivity - Kotlin: แสดงแผนที่อย่างมีประสิทธิภาพใน ListView โดยใช้โหมด 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 จะบันทึกข้อความเตือน
| ฟังก์ชันการทำงาน | |
|---|---|
| ประเภทแผนที่ | รองรับหรือไม่ ใช่
ประเภทแผนที่ต่อไปนี้พร้อมใช้งานผ่าน GoogleMapOptions.mapType() และ GoogleMap.setMapType(): MAP_TYPE_NORMAL, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID, MAP_TYPE_NONE |
| เส้นประกอบ รูปหลายเหลี่ยม วงกลม | รองรับหรือไม่ ใช่
ฟังก์ชันการทำงานของโหมด Lite สำหรับรูปร่างจะตรงกับ API แบบเต็ม |
| Projection | รองรับหรือไม่ ใช่
ฟังก์ชันการทำงานของโหมด Lite สำหรับ Projection จะตรงกับ API แบบเต็ม |
| ตำแหน่งของฉัน | รองรับหรือไม่ ใช่
ฟังก์ชันการทำงานของโหมด Lite สำหรับเลเยอร์ตำแหน่งของฉันจะตรงกับ API แบบเต็ม |
| การเสริมพื้นที่ในแผนที่ | รองรับหรือไม่ ใช่
การรองรับการเสริมพื้นที่ในแผนที่ของโหมด Lite จะตรงกับ API แบบเต็ม |
| หน้าต่างข้อมูล | รองรับหรือไม่ ใช่
หากคุณตั้งค่า title() ของเครื่องหมาย หน้าต่างข้อมูลเริ่มต้นจะปรากฏขึ้นเมื่อผู้ใช้แตะเครื่องหมาย คุณแสดงหน้าต่างข้อมูลแบบเป็นโปรแกรมได้โดยเรียกใช้ showInfoWindow() ในเครื่องหมาย
นอกจากนี้ คุณยังสร้างหน้าต่างข้อมูลที่กำหนดเองผ่านอินเทอร์เฟซ InfoWindowAdapter ได้ด้วย |
| รูปแบบแผนที่ฐานที่กำหนดเอง | รองรับหรือไม่ บางส่วน
Maps SDK สำหรับ Android รองรับการจัดรูปแบบที่กำหนดเองของแผนที่ฐาน โหมด Lite รองรับเฉพาะการจัดรูปแบบที่กำหนดเองตาม JSON เท่านั้น ไม่รองรับการจัดรูปแบบในระบบคลาวด์ซึ่งต้องใช้รหัสแผนที่เพื่อแสดงผลแผนที่สไตล์คุณ
นอกจากนี้ โหมด Lite ยังไม่รองรับการตั้งค่ารูปแบบสีของแผนที่ให้ใช้โหมดมืด
|
| เครื่องหมาย | รองรับหรือไม่ บางส่วน
คุณสามารถเพิ่มเครื่องหมายและตอบสนองต่อกิจกรรมการคลิกได้ นอกจากนี้ คุณยังเพิ่มไอคอนเครื่องหมายที่กำหนดเองได้ด้วย คุณไม่สามารถทำให้เครื่องหมายลากได้ เครื่องหมายบนแผนที่โหมด Lite จะแบนราบและหมุนไม่ได้ |
| ตำแหน่งกล้อง การซูม และภาพเคลื่อนไหว | รองรับหรือไม่ บางส่วน
คุณตั้งค่าเป้าหมายและการซูมของกล้องได้ แต่ตั้งค่าการเอียงหรือทิศทางไม่ได้
ระบบจะปัดระดับการซูมเป็นจำนวนเต็มที่ใกล้เคียงที่สุดในโหมด Lite
การเรียกใช้ การเรียกใช้ |
| จับคู่เหตุการณ์ | รองรับหรือไม่ บางส่วน
โหมด Lite รองรับภาษา หากต้องการปิดใช้กิจกรรมการคลิกบนแผนที่ในโหมด Lite คุณสามารถเรียกใช้ ดูรายละเอียดได้ที่เอกสารประกอบเกี่ยวกับเหตุการณ์ |
| แผนที่ในอาคารและอาคาร | รองรับหรือไม่ ไม่
โหมด Lite จะแสดงการ์ดเดียวกับ Maps Static API
ซึ่งหมายความว่าหากแปลนอาคารในอาคารรวมอยู่ในไทล์เริ่มต้น แปลนอาคารดังกล่าวจะปรากฏขึ้น ไม่เช่นนั้น ระบบจะไม่ดำเนินการใดๆ นอกจากนี้ คุณไม่สามารถเปลี่ยนระดับที่แสดงหรือจัดการเครื่องมือเลือกระดับได้ |
| เลเยอร์การจราจร | รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ GoogleMap.setTrafficEnabled() |
| การวางซ้อนบนพื้นดิน | รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ GoogleMap.addGroundOverlay() |
| การวางซ้อนของชิ้นส่วนแผนที่ | รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ GoogleMap.addTileOverlay() |
| ท่าทางสัมผัส | รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับท่าทางสัมผัส การเปิดใช้และปิดใช้ท่าทางสัมผัสจะไม่มีผล |
| Street View | รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ Street View |