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