โหมด 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 จะบันทึกข้อความเตือน

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