โหมด Lite

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

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

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

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

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

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

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

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

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

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

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