โหมด Lite

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

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

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

  • LiteDemoActivity - Java: พื้นฐานของการใช้แผนที่ในโหมด Lite ใน Java
  • LiteDemoActivity - Kotlin: ข้อมูลพื้นฐานในการใช้แผนที่โหมด Lite ใน Kotlin
  • LiteListDemoActivity - Java: แสดงแผนที่ใน ListView อย่างมีประสิทธิภาพโดยใช้โหมด Lite ใน Java
  • LiteListDemoActivity - Kotlin: แสดงแผนที่ใน ListView อย่างมีประสิทธิภาพโดยใช้โหมด 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

Java


GoogleMapOptions options = new GoogleMapOptions()
    .liteMode(true);

      

Kotlin


val options = GoogleMapOptions()
    .liteMode(true)

      

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

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

โดยค่าเริ่มต้น แถบเครื่องมือที่ด้านล่างขวาของแผนที่จะมีไอคอน ที่ให้สิทธิ์การเข้าถึงมุมมองแผนที่หรือคําขอเส้นทางในแอป Google Maps บนอุปกรณ์เคลื่อนที่ คุณสามารถปิดใช้งานแถบเครื่องมือได้ด้วยการเรียก UiSettings.setMapToolbarEnabled(false) โปรดดูรายละเอียดเพิ่มเติมที่เอกสารประกอบเกี่ยวกับแถบเครื่องมือ

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

เหตุการณ์ในวงจร

เมื่อใช้ 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 จะเป็นแบบแบนและไม่สามารถหมุนได้
ตําแหน่งกล้อง การซูม และภาพเคลื่อนไหว
รองรับไหม มีบางส่วน

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

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

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

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

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

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

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