โหมด Lite

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 แบบเต็ม
การเสริมพื้นที่ในแผนที่
รองรับไหม ใช่
หน้าต่างข้อมูล
รองรับไหม ใช่
หากคุณตั้งค่า 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 ซึ่งหมายความว่าหากแปลนอาคารรวมอยู่ในชิ้นส่วนแผนที่เริ่มต้น แปลนอาคารจะปรากฏขึ้น แต่หากไม่รวม ผังพื้นจะไม่ปรากฏ นอกจากนี้ คุณยังเปลี่ยนระดับที่แสดงหรือจัดการตัวเลือกชั้นไม่ได้
เลเยอร์การจราจร
รองรับไหม ไม่ได้
GoogleMap.setTrafficEnabled() ไม่รองรับ ในโหมด Lite
การวางซ้อนบนพื้น
รองรับไหม ไม่ได้
GoogleMap.addGroundOverlay() ไม่รองรับในโหมด Lite
การวางซ้อนของชิ้นส่วนแผนที่
รองรับไหม ไม่ได้
GoogleMap.addTileOverlay() ไม่รองรับในโหมด Lite
ท่าทางสัมผัส
รองรับไหม ไม่ได้
โหมด Lite ไม่รองรับท่าทางสัมผัส การเปิดและปิดใช้ท่าทางสัมผัส จะไม่มีผล
Street View
รองรับไหม ไม่ได้
Street View ไม่รองรับ โหมด Lite