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

      

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

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

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

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

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

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

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

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

ดูรายละเอียดได้ที่เอกสารประกอบเกี่ยวกับเหตุการณ์

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