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