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