Đối tượng của hướng dẫn này: Hãy đọc hướng dẫn này nếu bạn là nhà phát triển di động chịu trách nhiệm xây dựng trải nghiệm điều hướng trong cabin cho tài xế lái xe tải hoặc các loại xe lớn khác.
Nội dung hướng dẫn này: Hướng dẫn này giải thích cách lấy một tuyến đường dành riêng cho xe tải (do Routes API hoặc Route Optimization API tạo) và sử dụng tuyến đường đó để hỗ trợ một phiên chỉ đường từng chặng bằng Navigation SDK.
Kiến thức bạn sẽ học được
Bạn sẽ tìm hiểu cách thực hiện những việc sau:
- Sử dụng
routeTokenđể kết nối việc lập kế hoạch tuyến đường phụ trợ với trải nghiệm điều hướng trong ứng dụng. - Định cấu hình Navigation SDK để sử dụng tuyến đường dành cho xe tải đã được lên kế hoạch trước.
- Tìm hiểu cách các quy định hạn chế dành riêng cho xe tải xuất hiện đối với người lái xe trong giao diện người dùng.
Điều kiện tiên quyết
Trước khi bắt đầu, bạn phải đáp ứng các yêu cầu sau.
Thiết lập dự án
Bạn phải cung cấp dự án trên đám mây của Google Cloud cho tính năng Định tuyến cho xe lớn. Nếu bạn đang sử dụng các dự án riêng biệt cho Routes API và Navigation SDK, thì cả hai dự án này đều phải được cung cấp tương ứng.
Tạo mã thông báo tuyến đường
Trước tiên, bạn phải tạo tuyến đường bằng cách làm theo hướng dẫn trong bài viết Tạo tuyến đường và thời gian đến dự kiến cho xe tải. Bạn cần có đầu ra của quy trình đó (routeToken) để hoàn tất các bước trong hướng dẫn này.
Yêu cầu tối thiểu
Ứng dụng của bạn phải sử dụng phiên bản Navigation SDK tối thiểu bắt buộc:
- Android: 5.2.0 trở lên
- iOS: 5.4.0 trở lên
Ngoài ra, bạn phải đáp ứng tất cả các yêu cầu để sử dụng Navigation SDK:
Các điểm hạn chế
Trước khi bắt đầu, bạn phải lưu ý những hạn chế và yêu cầu sau.
- Khu vực địa lý cung cấp: Tính năng định tuyến cho xe lớn chỉ có ở 48 tiểu bang liền kề của Hoa Kỳ.
- Định tuyến cho xe lớn là một sản phẩm ở giai đoạn Xem trước. Người lái xe không được chỉ dựa vào các tuyến đường do API này trả về để đảm bảo an toàn hoặc hợp pháp. Chúng tôi không đảm bảo rằng các tuyến đường phù hợp với xe và việc đi theo các tuyến đường này có thể khiến người lái xe gặp phải các mối nguy hiểm như cầu thấp hoặc đường cấm xe cỡ lớn.
- Các tuyến đường được tính toán theo khả năng. Trong một số trường hợp, API không thể tìm thấy một tuyến đường hoàn toàn tuân thủ các quy định hạn chế đi lại. Thay vào đó, API này trả về một tuyến đường "cố gắng hết sức" vẫn có thể đi qua các khu vực bị hạn chế. Phản hồi của Routes API sẽ gắn cờ rõ ràng các tuyến đường này trong trường
routeRestrictionsPartiallyIgnored. Trong những trường hợp này, hãy lên kế hoạch cẩn thận cho tuyến đường của bạn, tốt nhất là sử dụng dữ liệu từ nguồn khác. Không sử dụng tuyến đường bị gắn cờ làm nguồn thông tin đáng tin cậy duy nhất để lập kế hoạch hoặc chỉ đường. - Các tính năng không được hỗ trợ: Mặc dù chúng tôi đang nỗ lực bổ sung thêm chức năng cho dịch vụ này, nhưng tính năng định tuyến cho xe cỡ lớn không hỗ trợ những tính năng sau:
- Giá phí cầu đường cho xe tải
- Giới hạn tốc độ
- Định tuyến cho vật liệu nguy hiểm phóng xạ
- Hạn mức sử dụng: Tất cả các yêu cầu đều phải tuân theo hạn mức tiêu chuẩn về số lượng truy vấn mỗi giây (QPS).
Hiển thị giao diện người dùng dành riêng cho xe tải
Navigation SDK tự động hiển thị cảnh báo trực quan (gọi là chú thích tuyến đường) trên bản đồ để cảnh báo cho người lái xe về các quy định hạn chế sắp tới đối với xe tải. Chú thích được hiển thị cho những quy định hạn chế nằm trong tuyến đường đã lên kế hoạch, nhưng không hiển thị trên các đường khác ở gần đó.
SDK này có chú thích cho các hạn chế sau:
| Quy định hạn chế | Biểu tượng và văn bản chú thích | Điều kiện hiển thị |
|---|---|---|
| Height |
Màu vàng = cảnh báo, xe của bạn gần đạt chiều cao tối đa cho phép
Màu đỏ = xe của bạn vượt quá chiều cao tối đa cho phép |
Chú thích màu vàng sẽ xuất hiện khi chiều cao của xe gần với giới hạn.
Chú thích màu đỏ sẽ xuất hiện nếu tuyến đường không tuân thủ và vi phạm giới hạn chiều cao.
|
| Trọng số |
|
Chú thích màu đỏ sẽ xuất hiện khi trọng lượng của xe vượt quá giới hạn của đường.
|
| Xe tải bị cấm |
|
Một chú thích màu đỏ sẽ xuất hiện khi bạn di chuyển trên một đoạn đường có quy định hạn chế đối với xe tải.
|
| Hàng hoá nguy hiểm |
|
Chú thích màu đỏ sẽ xuất hiện khi xe chở hàng nguy hiểm bị cấm trên một đoạn đường.
|
Quy trình sử dụng mã thông báo tuyến đường
routeToken là một ảnh chụp nhanh được mã hoá và bảo mật của một tuyến đường do Routes API tạo. Nội dung này chứa tất cả thông tin chi tiết về tuyến đường, bao gồm cả hồ sơ phương tiện được dùng để tạo tuyến đường. Việc sử dụng mã thông báo đảm bảo phiên điều hướng khớp với tuyến đường mà bạn đã lên kế hoạch trên phần phụ trợ.
Xin lưu ý rằng khi người lái xe bắt đầu điều hướng, tuyến đường do Navigation SDK cung cấp có thể thay đổi tuỳ thuộc vào tình trạng giao thông và tình trạng đường. Trong một số trường hợp, đường đi có thể khác với đường đi được chỉ định bằng mã thông báo tuyến đường.
Trong những trường hợp này, cũng như trong trường hợp người lái xe đi lệch khỏi tuyến đường đã lên kế hoạch, việc sử dụng mã thông báo tuyến đường đảm bảo rằng các tuyến đường mới được tính toán lại sẽ tuân theo các thuộc tính của xe như được định cấu hình trong yêu cầu API ban đầu của Routes API.
Quy trình công việc tuân theo các bước sau:
- Phần phụ trợ của bạn yêu cầu một tuyến đường cho xe tải từ Routes API.
- Routes API trả về một
routeToken. - Phụ trợ của bạn sẽ gửi mã thông báo này đến ứng dụng di động.
- Ứng dụng di động truyền
routeTokenđến Navigation SDK để bắt đầu chuyến đi. - Navigation SDK xử lý mọi khía cạnh của trải nghiệm chỉ đường từng chặng, bao gồm cả việc đổi tuyến đường nếu người lái xe đi lệch đường trong khi vẫn giữ nguyên các quy định hạn chế ban đầu đối với xe.
Triển khai: Bắt đầu một chuyến đi dành riêng cho xe tải
Để chạy một phiên chỉ đường bằng tuyến đường dành cho xe tải, bạn sẽ truyền mã thông báo tuyến đường đến Navigator.
Bước 1: Lấy mã thông báo tuyến đường
Ứng dụng của bạn nhận chuỗi routeToken từ máy chủ phụ trợ.
Mã sau đây là một mã thông báo ví dụ:
CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g
Bước 2: Truyền mã thông báo đến Navigator
Cung cấp routeToken cho Navigator khi bạn đặt điểm đến của chuyến đi.
Sau đó, Navigation SDK sẽ dùng mã thông báo này cho tất cả các phép tính toán tuyến đường cho chuyến đi.
Xin lưu ý rằng Navigation SDK có một cấu hình TravelMode, bạn phải đặt cấu hình này thành TravelMode.DRIVING. Cấu hình này tách biệt với cấu hình travelMode trong Routes API. Bạn phải đặt cấu hình này thành TRUCK. Cấu hình Routes API travelMode được mã hoá trong routeToken và báo hiệu cho Navigation SDK để hiển thị trải nghiệm và tuyến đường dành riêng cho xe tải.
Android
Sử dụng CustomRoutesOptions.builder() để đặt mã thông báo, sau đó truyền mã thông báo đó đến navigator.setDestinations().
// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"
val customRoutesOptions = CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build()
// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
.setLatLng(10.0, 20.0)
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(destination);
navigator.setDestinations(destinations, customRoutesOptions)
iOS
Truyền mã thông báo tuyến đường đến Navigation SDK bằng phương thức mapView.navigator
setDestinations, chỉ định các điểm tham chiếu đích đến mà bạn đã dùng khi tạo mã thông báo tuyến đường:
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})
Các bước tiếp theo
- Khám phá các SDK: Navigation SDK cho Android | Navigation SDK cho iOS
- Tuỳ chỉnh giao diện người dùng: Tìm hiểu cách tuỳ chỉnh giao diện người dùng của Navigation SDK