โหมด Lite

Maps SDK สำหรับ Android สามารถแสดงรูปภาพบิตแมปของแผนที่ ซึ่งให้ผู้ใช้โต้ตอบได้แบบจำกัด ซึ่งเรียกว่าแผนที่โหมด Lite

ตัวอย่างโค้ด

ที่เก็บ ApiDemos ใน GitHub มีตัวอย่างที่สาธิตการใช้งานโหมด Lite ดังนี้

  • LiteDemoActivity - Java: ข้อมูลพื้นฐานเกี่ยวกับการใช้แมปโหมด Lite ใน Java
  • LiteDemoActivity - Kotlin: ข้อมูลพื้นฐานในการใช้แมปโหมด Lite ใน Kotlin
  • LiteListDemoActivity - Java: การแสดงแผนที่อย่างมีประสิทธิภาพใน ListView โดยใช้โหมด Lite ใน Java
  • LiteListDemoActivity - Kotlin: การแสดงแผนที่อย่างมีประสิทธิภาพใน ListViews โดยใช้โหมด Lite ใน Kotlin

ภาพรวมของโหมด 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);

      

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

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

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

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

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

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

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

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

ดูรายละเอียดได้ที่เอกสารประกอบเกี่ยวกับกิจกรรม

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