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

      

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

ตั้งใจที่จะเปิดใช้งานมุมมองแผนที่หรือคำขอเส้นทาง

โดยค่าเริ่มต้น แถบเครื่องมือที่ด้านขวาล่างของแผนที่จะมีไอคอนที่ ให้การเข้าถึงมุมมองแผนที่หรือคำขอเส้นทางใน 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() มิฉะนั้นแผนที่จะไม่ปรากฏ
  • หากคุณต้องการแสดงจุดตำแหน่งของฉันบนแผนที่โหมดไลท์และใช้ แหล่งที่มาของตำแหน่งเริ่มต้น คุณจะต้องโทรหา onResume() และ onPause() เพราะแหล่งที่มาของตำแหน่งจะอัปเดตในระหว่างการโทรเหล่านี้เท่านั้น หากคุณใช้ แหล่งที่มาตำแหน่งของคุณ ไม่จำเป็นต้องเรียกทั้งสองวิธีนี้

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

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

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

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

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

โปรดดูรายละเอียดที่ กิจกรรม เอกสารประกอบ

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