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