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
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Kotlin
val options = 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
ซึ่งหมายความว่าหาก Bake Plane ในร่มรวมอยู่ในการ์ดเริ่มต้นแล้ว แผนผังจะปรากฏขึ้น ไม่เช่นนั้นจะไม่มีการทําเช่นนั้น นอกจากนี้ คุณไม่สามารถเปลี่ยนระดับที่แสดงหรือปรับเปลี่ยนเครื่องมือเลือกระดับได้ |
เลเยอร์การเข้าชม | รองรับไหม ไม่ได้
โหมด Lite ไม่รองรับ GoogleMap.setTrafficEnabled() |
การวางซ้อนพื้น | รองรับไหม ไม่ได้
โหมด Lite ไม่รองรับ GoogleMap.addGroundOverlay() |
การวางซ้อนแบบเรียงชิดกัน | รองรับไหม ไม่ได้
โหมด Lite ไม่รองรับ GoogleMap.addTileOverlay() |
ท่าทางสัมผัส | รองรับไหม ไม่ได้
โหมด Lite ไม่รองรับท่าทางสัมผัส การเปิดใช้และปิดใช้ท่าทางสัมผัสจะไม่มีผล |
Street View | รองรับไหม ไม่ได้
ระบบไม่รองรับโหมด Street View |