โหมด Lite

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 การเรียกใช้ GoogleMap.moveCamera() จะแสดงรูปภาพแผนที่ในโหมด Lite อีกรูปหนึ่ง ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าและการควบคุมกล้องได้ที่การเปลี่ยนมุมมอง

การเรียกใช้ GoogleMap.animateCamera() จะไม่ทำให้เกิดภาพเคลื่อนไหวของการเคลื่อนไหวของกล้อง มุมมองกล้องจะเลื่อนไปยังตำแหน่งใหม่ทันที

จับคู่เหตุการณ์
รองรับหรือไม่ บางส่วน

โหมด Lite รองรับภาษาGoogleMap.setOnMapClickListener()และGoogleMap.setOnMapLongClickListener()

หากต้องการปิดใช้กิจกรรมการคลิกบนแผนที่ในโหมด Lite คุณสามารถเรียกใช้ setClickable() ในมุมมองที่มี MapView หรือ MapFragment ซึ่งจะมีประโยชน์ เช่น เมื่อแสดงแผนที่หรือแผนที่ในมุมมองรายการที่คุณต้องการให้กิจกรรมการคลิกเรียกใช้การดำเนินการที่ไม่เกี่ยวข้องกับแผนที่

ดูรายละเอียดได้ที่เอกสารประกอบเกี่ยวกับเหตุการณ์

แผนที่ในอาคารและอาคาร
รองรับหรือไม่ ไม่
โหมด Lite จะแสดงการ์ดเดียวกับ Maps Static API ซึ่งหมายความว่าหากแปลนอาคารในอาคารรวมอยู่ในไทล์เริ่มต้น แปลนอาคารดังกล่าวจะปรากฏขึ้น ไม่เช่นนั้น ระบบจะไม่ดำเนินการใดๆ นอกจากนี้ คุณไม่สามารถเปลี่ยนระดับที่แสดงหรือจัดการเครื่องมือเลือกระดับได้
เลเยอร์การจราจร
รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ GoogleMap.setTrafficEnabled()
การวางซ้อนบนพื้นดิน
รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ GoogleMap.addGroundOverlay()
การวางซ้อนของชิ้นส่วนแผนที่
รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ GoogleMap.addTileOverlay()
ท่าทางสัมผัส
รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับท่าทางสัมผัส การเปิดใช้และปิดใช้ท่าทางสัมผัสจะไม่มีผล
Street View
รองรับหรือไม่ ไม่
โหมด Lite ไม่รองรับ Street View