Maps SDK cho Android có thể phân phát hình ảnh bitmap của bản đồ, cung cấp khả năng tương tác hạn chế cho người dùng. Đây được gọi là bản đồ ở chế độ thu gọn.
Mã mẫu
Kho lưu trữ ApiDemos trên GitHub có các mẫu minh hoạ cách sử dụng chế độ thu gọn:
- LiteDemoActivity – Java: Các kiến thức cơ bản về cách sử dụng bản đồ ở chế độ thu gọn trong Java
- LiteDemoActivity – Kotlin: Các kiến thức cơ bản về cách sử dụng bản đồ ở chế độ thu gọn trong Kotlin
- LiteListDemoActivity – Java: Hiển thị bản đồ một cách hiệu quả trong ListView bằng chế độ thu gọn trong Java
- LiteListDemoActivity – Kotlin: Hiển thị bản đồ một cách hiệu quả trong ListView bằng chế độ thu gọn trong Kotlin
Tổng quan về chế độ thu gọn
Bản đồ ở chế độ thu gọn là hình ảnh bitmap của bản đồ tại một vị trí và mức thu phóng được chỉ định. Chế độ thu gọn hỗ trợ tất cả các loại bản đồ (bình thường, kết hợp, vệ tinh, địa hình) và một tập hợp con của chức năng do API đầy đủ cung cấp. Chế độ thu gọn hữu ích khi bạn muốn cung cấp một số bản đồ trong một luồng hoặc bản đồ quá nhỏ để hỗ trợ tương tác có ý nghĩa.
Người dùng xem bản đồ không thể thu phóng hoặc di chuyển bản đồ. Các biểu tượng trên bản đồ cho phép người dùng xem bản đồ trong ứng dụng di động Google Maps và yêu cầu chỉ đường.
Thêm bản đồ ở chế độ thu gọn
Chế độ thu gọn sử dụng các lớp và giao diện giống như API Android đầy đủ của Google Maps. Bạn có thể đặt GoogleMap ở chế độ thu gọn theo các cách sau:
- Là thuộc tính XML cho
MapViewhoặcMapFragment - Hoặc trong đối tượng
GoogleMapOptions
Là thuộc tính XML cho MapView hoặc 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"/>
Trong đối tượng GoogleMapOptions
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Để biết thông tin chi tiết về cách đặt trạng thái ban đầu của bản đồ, hãy xem hướng dẫn về đối tượng bản đồ .
Ý định khởi chạy chế độ xem bản đồ hoặc yêu cầu chỉ đường
Theo mặc định, thanh công cụ ở dưới cùng bên phải của bản đồ chứa các biểu tượng cho phép truy cập vào chế độ xem bản đồ hoặc yêu cầu chỉ đường trong ứng dụng di động Google Maps. Bạn có thể tắt thanh công cụ bằng cách gọi
UiSettings.setMapToolbarEnabled(false). Để biết thêm
thông tin, hãy xem tài liệu về thanh công cụ.
Ngoài ra, theo mặc định, khi người dùng nhấn vào bản đồ, API sẽ khởi động ứng dụng di động Google Maps. Bạn có thể ghi đè hành vi này bằng cách sử dụng GoogleMap.setOnMapClickListener() để đặt trình nghe của riêng bạn. Bạn cũng có thể tắt các sự kiện nhấp chuột trên bản đồ bằng cách gọi setClickable() trên chế độ xem chứa MapView hoặc MapFragment. Để biết thông tin chi tiết về 2 kỹ thuật này, hãy xem tài liệu về sự kiện
.
Các sự kiện trong vòng đời
Khi sử dụng API ở chế độ tương tác đầy đủ, người dùng lớp MapView phải chuyển tiếp tất cả các phương thức trong vòng đời của hoạt động đến các phương thức tương ứng
trong lớp MapView. Ví dụ về các phương thức trong vòng đời bao gồm onCreate(), onDestroy(), onResume() và onPause().
Khi sử dụng lớp MapView ở chế độ thu gọn, bạn có thể chuyển tiếp các sự kiện trong vòng đời, ngoại trừ các trường hợp sau:
- Bạn bắt buộc phải gọi
onCreate(), nếu không bản đồ sẽ không xuất hiện. - Nếu bạn muốn hiển thị dấu chấm Vị trí của tôi trên bản đồ ở chế độ lite và sử dụng nguồn vị trí mặc định, bạn cần gọi
onResume()vàonPause(), vì nguồn vị trí sẽ chỉ cập nhật giữa các lệnh gọi này. Nếu bạn sử dụng nguồn của vị trí của riêng mình, thì bạn không cần gọi 2 phương thức này.
Các tính năng API được hỗ trợ
Bảng sau đây mô tả hành vi của bản đồ ở chế độ thu gọn cho từng khu vực chức năng API. Nếu một ứng dụng gọi một phương thức không được hỗ trợ ở chế độ thu gọn, thì API sẽ ghi lại thông báo cảnh báo.
| Chức năng | |
|---|---|
| Loại bản đồ | Được hỗ trợ? Có
Bạn có thể sử dụng các loại bản đồ
sau đây thông qua GoogleMapOptions.mapType() và
GoogleMap.setMapType(): MAP_TYPE_NORMAL,
MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN,
MAP_TYPE_HYBRID, MAP_TYPE_NONE |
| Đường nhiều đoạn, đa giác, hình tròn | Được hỗ trợ? Có
Chức năng ở chế độ thu gọn cho
hình dạng khớp với
API đầy đủ. |
| Dự đoán | Được hỗ trợ? Có
Chức năng ở chế độ thu gọn cho
Dự đoán
khớp với API đầy đủ. |
| Vị trí của tôi | Được hỗ trợ? Có
Chức năng ở chế độ thu gọn cho
lớp Vị trí của tôi
khớp với API đầy đủ. |
| Khoảng đệm bản đồ | Được hỗ trợ? Có
Chế độ thu gọn hỗ trợ
khoảng đệm bản đồ
khớp với API đầy đủ. |
| Cửa sổ thông tin | Được hỗ trợ? Có
Nếu bạn đặt title() của điểm đánh dấu, thì cửa sổ thông tin
mặc định sẽ
xuất hiện khi người dùng nhấn vào điểm đánh dấu. Bạn có thể hiển thị cửa sổ thông tin
theo cách lập trình bằng cách gọi showInfoWindow() trên điểm đánh dấu.
Bạn cũng có thể tạo cửa sổ thông tin tuỳ chỉnh thông qua giao diện
InfoWindowAdapter. |
| Kiểu bản đồ cơ sở tuỳ chỉnh | Được hỗ trợ? Một phần
Maps SDK cho Android hỗ trợ
định kiểu tuỳ chỉnh cho
bản đồ cơ sở. Chế độ thu gọn chỉ hỗ trợ định kiểu tuỳ chỉnh dựa trên JSON, không hỗ trợ định kiểu dựa trên đám mây (yêu cầu mã bản đồ để kết xuất bản đồ phong cách riêng).
Chế độ thu gọn cũng không hỗ trợ việc đặt
bảng phối màu bản đồ
để sử dụng chế độ tối.
|
| Điểm đánh dấu | Được hỗ trợ? Một phần
Bạn có thể thêm điểm đánh dấu
và phản hồi sự kiện nhấp chuột. Bạn cũng có thể thêm biểu tượng điểm đánh dấu tuỳ chỉnh. Bạn không thể kéo điểm đánh dấu. Các điểm đánh dấu trên bản đồ ở chế độ thu gọn là phẳng và không thể xoay. |
| Vị trí, mức thu phóng và ảnh động của camera | Được hỗ trợ? Một phần
Bạn có thể đặt mục tiêu và mức thu phóng của camera, nhưng không thể đặt độ nghiêng hoặc góc phương vị.
Mức thu phóng được làm tròn đến số nguyên gần nhất ở chế độ thu gọn.
Khi gọi Khi gọi |
| Ánh xạ các sự kiện | Được hỗ trợ? Một phần
Chế độ thu gọn hỗ trợ
Để tắt các sự kiện nhấp chuột trên bản đồ ở chế độ thu gọn, bạn có thể gọi
Để biết thông tin chi tiết, hãy xem tài liệu về sự kiện. |
| Bản đồ trong nhà và toà nhà | Được hỗ trợ? Không
Chế độ thu gọn sẽ hiển thị các ô giống như
Maps Static API.
Điều này có nghĩa là nếu sơ đồ tầng trong nhà được tích hợp vào ô mặc định,
thì sơ đồ đó sẽ xuất hiện. Nếu không, sơ đồ đó sẽ không xuất hiện. Ngoài ra, bạn không thể thay đổi tầng
được hiển thị hoặc thao tác với bộ chọn tầng. |
| Lớp giao thông | Được hỗ trợ? Không
GoogleMap.setTrafficEnabled() không được hỗ trợ
ở chế độ thu gọn. |
| Lớp phủ mặt đất | Được hỗ trợ? Không
GoogleMap.addGroundOverlay() không được hỗ trợ ở chế độ lite. |
| Lớp phủ ô | Được hỗ trợ? Không
GoogleMap.addTileOverlay() không được hỗ trợ ở chế độ lite. |
| Cử chỉ | Được hỗ trợ? Không
Chế độ thu gọn không hỗ trợ cử chỉ. Việc bật và tắt cử chỉ
sẽ không có hiệu lực. |
| Chế độ xem đường phố | Được hỗ trợ? Không
Chế độ xem đường phố không
được hỗ trợ ở chế độ thu gọn. |