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

      

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

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

โดยค่าเริ่มต้น แถบเครื่องมือที่ด้านขวาล่างของแผนที่จะมีไอคอนที่ให้การเข้าถึงมุมมองแผนที่หรือคำขอเส้นทางในแอป 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 สำหรับการฉายภาพตรงกับ API เต็มรูปแบบ
ตำแหน่งของฉัน
รองรับไหม ได้
ฟังก์ชันการทำงานของโหมด Lite สำหรับเลเยอร์ตำแหน่งของฉันจะตรงกับ API เต็มรูปแบบ
ระยะห่างจากขอบของแผนที่
รองรับไหม ได้
การรองรับโหมด Lite สำหรับ ระยะห่างจากขอบของแผนที่ จะตรงกับ API เต็มรูปแบบ
หน้าต่างข้อมูล
รองรับไหม ได้
หากคุณกำหนด title() ของเครื่องหมายไว้ หน้าต่างข้อมูลเริ่มต้นจะปรากฏขึ้นเมื่อผู้ใช้แตะเครื่องหมาย คุณแสดงหน้าต่างข้อมูลแบบเป็นโปรแกรมได้โดยเรียกใช้ showInfoWindow() บนเครื่องหมาย นอกจากนี้ คุณยังสร้างหน้าต่างข้อมูลที่กำหนดเองผ่านอินเทอร์เฟซ InfoWindowAdapter ได้ด้วย
รูปแบบแผนที่ฐานที่กำหนดเอง
รองรับไหม บางส่วน
Maps SDK สำหรับ Android รองรับการจัดรูปแบบที่กำหนดเองของแผนที่ฐาน โหมด Lite รองรับเฉพาะการจัดรูปแบบที่กำหนดเองตาม JSON ไม่ใช่การจัดรูปแบบในระบบคลาวด์ที่ต้องใช้รหัสแผนที่ในการแสดงผลแผนที่ที่มีการจัดรูปแบบ
ตัวทำเครื่องหมาย
รองรับไหม บางส่วน
คุณเพิ่มตัวทำเครื่องหมายและตอบกลับเหตุการณ์การคลิกได้ นอกจากนี้ คุณยังเพิ่มไอคอนเครื่องหมายที่กำหนดเองได้ด้วย ไม่สามารถทำให้เครื่องหมายสามารถลากได้ เครื่องหมายบนแผนที่ในโหมดไลท์จะแบนและหมุนไม่ได้
ตำแหน่งกล้อง การซูม และภาพเคลื่อนไหว
รองรับไหม บางส่วน

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

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

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

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

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

โปรดดูรายละเอียดในเอกสารประกอบเกี่ยวกับเหตุการณ์

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