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);
โปรดดูรายละเอียดเกี่ยวกับการตั้งค่าสถานะเริ่มต้นของแผนที่ในคู่มือออบเจ็กต์แผนที่
Intents เพื่อเปิดมุมมองแผนที่หรือคำขอเส้นทาง
โดยค่าเริ่มต้น แถบเครื่องมือที่ด้านขวาล่างของแผนที่จะมีไอคอนที่ให้สิทธิ์เข้าถึงมุมมองแผนที่หรือคำขอเส้นทางในแอป 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 สำหรับ Projection ตรงกับ 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 | รองรับหรือไม่ ไม่ได้
โหมด Lite ไม่รองรับ Street View |