โหมด 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);

      

โปรดดูรายละเอียดเกี่ยวกับการตั้งค่าสถานะเริ่มต้นของแผนที่ในคู่มือออบเจ็กต์แผนที่

Intents เพื่อเปิดมุมมองแผนที่หรือคำขอเส้นทาง

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