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