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