Đố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 thiết bị di động chịu trách nhiệm xây dựng trải nghiệm điều hướng từng chặng cho tài xế xe tải, xe buýt hoặc các phương tiện thương mại lớn khác.
Nội dung trong hướng dẫn này: Hướng dẫn này giải thích cách lấy 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 đi theo chỉ dẫn từng chặng bằng SDK Điều hướng cho iOS.
Kiến thức bạn sẽ học được
Bạn sẽ tìm hiểu cách thực hiện các 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 theo chỉ dẫn trong ứng dụng. - Định cấu hình SDK điều hướng để sử dụng tuyến đường đã lên kế hoạch trước cho xe tải.
- 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 cho tài xế trong giao diện người dùng của tính năng đi theo chỉ dẫn.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn đáp ứng các yêu cầu sau:
1. Yêu cầu quyền truy cập cho dự án của bạn
Tính năng định tuyến cho xe lớn chỉ được cung cấp cho một số khách hàng. Để bày tỏ sự quan tâm và yêu cầu quyền truy cập cho dự án trên đám mây của bạn, hãy điền vào biểu mẫu liên hệ. Một người đại diện của Google sẽ liên hệ với bạn để hướng dẫn các bước tiếp theo.
Sau khi Google cấp quyền truy cập, hãy đảm bảo dự án trên đám mây của bạn trên Google Cloud được cấp phép cho tính năng định tuyến xe lớn.
Nếu tổ chức của bạn sử dụng các dự án Google Cloud riêng biệt cho API định tuyến phụ trợ và SDK điều hướng di động, hãy liên hệ với Google để cấp phép cho từng dự án.
2. Thiết lập tính năng tạo tuyến đường phụ trợ và lấy mã thông báo tuyến đường
Trước khi bắt đầu đi theo chỉ dẫn trên thiết bị, máy chủ phụ trợ của bạn phải tạo một tuyến đường cho xe tải và lấy routeToken bằng một trong các API sau:
- Routes API: Bạn nên dùng API này để tính toán tuyến đường cho một xe tải giữa điểm xuất phát và điểm đến. Để biết hướng dẫn thiết lập, hãy xem bài viết Tạo tuyến đường và giờ đến dự kiến cho xe lớn.
- Route Optimization API: Bạn nên dùng API này để tối ưu hoá các tuyến đường có nhiều điểm dừng cho một đội xe. Để biết thêm thông tin, hãy xem hướng dẫn về định tuyến xe lớn của Route Optimization API.
Yêu cầu của phần phụ trợ phải chỉ định travelMode: TRUCK cùng với các thuộc tính vật lý của xe (chiều cao, chiều rộng, chiều dài, trọng lượng, số trục và hàng hoá nguy hiểm). API định tuyến trả về một routeToken trong phản hồi, sau đó máy chủ phụ trợ sẽ chuyển phản hồi này đến ứng dụng di động của bạn.
3. Đáp ứng các yêu cầu tối thiểu về SDK và hệ thống
Ứng dụng của bạn phải sử dụng SDK điều hướng phiên bản tối thiểu bắt buộc là 5.4.0 trở lên.Ngoài ra, dự án của bạn phải đáp ứng các yêu cầu thiết lập tiêu chuẩn của SDK Điều hướng.
Giới hạn và nguyên tắc hoạt động
Trước khi bắt đầu, hãy lưu ý các giới hạn và nguyên tắc hoạt động sau:
- Phạm vi cung cấp theo khu vực địa lý: Tính năng định tuyến cho xe lớn được cung cấp ở 48 tiểu bang liền kề của Hoa Kỳ (Giai đoạn phát hành rộng rãi) và Nhật Bản (Thử nghiệm). Dịch vụ này không được cung cấp ở Alaska, Hawaii hoặc các lãnh thổ thuộc Hoa Kỳ.
- Tư vấn và an toàn cho tài xế: Tài xế không được chỉ dựa vào các tuyến đường do SDK Điều hướng trả về để đảm bảo an toàn hoặc hợp pháp. Tuyến đường có thể không phù hợp với xe trong mọi điều kiện đường sá và việc đi theo tuyến đường đó có thể khiến người lái xe gặp phải các mối nguy hiểm như khoảng trống thấp hoặc đường hạn chế tải trọng. Người lái xe phải luôn cảnh giác và tuân thủ các biển báo đường bộ cũng như quy định của địa phương.
- Tuyến đường phù hợp nhất: Khi API định tuyến không tìm được tuyến đường hoàn toàn tuân thủ các quy định hạn chế đối với xe, API này sẽ trả về một tuyến đường "phù hợp nhất" có thể vẫn đi qua các đoạn đường bị hạn chế. Ví dụ: Routes API đặt cờ
routeRestrictionsPartiallyIgnoredtrong phản hồi. Khi di chuyển trên các tuyến đường này, SDK Điều hướng sẽ hiển thị chú thích về tuyến đường để làm nổi bật các quy định hạn chế có liên quan. Hãy lên kế hoạch cho tuyến đường một cách cẩn thận trong những trường hợp này và đừng chỉ dựa vào tuyến đường được gắn cờ làm nguồn đáng tin cậy duy nhất để lên kế hoạch hoặc đi theo chỉ dẫn. - Các tính năng không được hỗ trợ: Tính năng định tuyến cho xe lớn không hỗ trợ các tính năng sau:
- Phí cầu đường cho xe tải
- Giới hạn tốc độ dành riêng cho xe tải hoặc xe hạng nặng
- Tuyến đường cho vật liệu nguy hiểm có tính phóng xạ
- Giới hạn sử dụng: Các yêu cầu được gửi đến SDK Điều hướng tuân theo hạn mức và giới hạn sử dụng tiêu chuẩn. Để biết thêm thông tin, hãy xem phần Mức sử dụng và thanh toán.
Hiển thị giao diện người dùng dành riêng cho xe tải (chú thích tuyến đường)
Navigation SDK tự động hiển thị các cảnh báo bằng hình ảnh (gọi là chú thích tuyến đường) trên bản đồ để cảnh báo 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 sẽ xuất hiện cho những quy định hạn chế xảy ra dọc theo tuyến đường đã lên kế hoạch, nhưng không xuất hiện trên các đường khác gần đó.
SDK Điều hướng bao gồm chú thích cho các quy định 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 đến 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 bằng 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 quy định hạn chế về 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.
|
| Cấm xe tải |
|
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 thương mạ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.
|
Cách hoạt động của mã thông báo tuyến đường
routeToken là ảnh chụp nhanh đã mã hoá của một tuyến đường do phần phụ trợ định tuyến của Google tạo. Lớp này đóng gói hình học tuyến đường đã lên kế hoạch cũng như kích thước thực tế và hồ sơ ở chế độ hạn chế của xe.
Quy trình công việc gồm các bước sau:
- Yêu cầu tuyến đường: Máy chủ phụ trợ của bạn yêu cầu tuyến đường xe tải từ Routes API (hoặc Route Optimization API).
- Nhận mã thông báo: API định tuyến tính toán tuyến đường tuân thủ và trả về một
routeTokencho máy chủ phụ trợ của bạn. - Chuyển tiếp mã thông báo: Máy chủ phụ trợ của bạn chuyển
routeTokenvà toạ độ điểm đến đến ứng dụng di động. - Chuyển đến SDK: Ứng dụng di động chuyển
routeTokenđến SDK điều hướng. - Bắt đầu hướng dẫn: SDK Điều hướng xử lý mọi khía cạnh của trải nghiệm từng chặng, bao gồm cả việc hiển thị chú thích tuyến đường và xử lý việc đổi tuyến đường linh động theo các quy định hạn chế của xe.
Tự động tính toán lại và đổi tuyến đường
Trong quá trình đi theo chỉ dẫn, tình trạng giao thông, đường bị đóng hoặc rẽ nhầm hướng có thể khiến xe đi chệch khỏi tuyến đường đã lên kế hoạch.
Khi đổi tuyến đường:
- Navigation SDK sẽ tự động tính toán lại tuyến đường đến điểm đến.
- SDK giữ lại các thuộc tính và phương diện của xe được mã hoá trong
routeTokenban đầu. - Tuyến đường mới được tính toán lại sẽ tránh những nơi có khoảng trống thấp, cầu có giới hạn trọng tải và đường cấm xe tải thương mại.
Triển khai: Bắt đầu một chuyến đi dành riêng cho xe tải
Hãy làm theo các bước sau để khởi động và bắt đầu đường đi từng chặng bằng mã thông báo tuyến đường cho xe lớn.
Bước 1: Lấy mã thông báo tuyến đường từ phần phụ trợ
Ứng dụng di động của bạn nhận được chuỗi routeToken cùng với toạ độ điểm đến từ máy chủ phụ trợ. Để biết thêm thông tin về
việc tạo mã thông báo này trên máy chủ, hãy xem phần
Tạo tuyến đường và thời gian đến dự kiến cho xe lớn
trong tài liệu về Routes API.
Mã sau đây là một mã thông báo tuyến đường mẫu:
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
Bước 2: Đặt điểm đến bằng mã thông báo tuyến đường
Truyền routeToken vào phương thức mapView.navigator
setDestinationsWithToken:completionHandler:. SDK điều hướng lấy các điểm đến từ mã thông báo tuyến đường, cùng với hồ sơ định tuyến TRUCK hướng dẫn SDK áp dụng các quy định hạn chế đối với xe lớn.
Bạn không cần truyền điểm tham chiếu. Chế độ di chuyển của ứng dụng phải là .driving (GMSNavigationTravelModeDriving) (mặc định) hoặc .twoWheeler (GMSNavigationTravelModeTwoWheeler).
Đặt các lựa chọn về điểm tham chiếu trong yêu cầu API Routes tạo mã thông báo tuyến đường. Navigation SDK lấy các thông tin này từ mã thông báo, cùng với các điểm đến của bạn. Đối với xe lớn, hãy cân nhắc các lựa chọn sau:
- Định tuyến bên đường: Xe thương mại lớn không thể dễ dàng quay đầu trên đường hẹp. Để đảm bảo xe tải tiếp cận điểm đến ở đúng bên đường, hãy đặt
sideOfRoadthànhtruetrên điểm tham chiếu của điểm đến. - Điểm dừng xe: Để hướng dẫn xe tải đến một vị trí thích hợp để dừng hoặc dỡ hàng, hãy đặt
vehicleStopoverthànhtruetrên điểm tham chiếu của điểm đến. - Điểm điều hướng: Nếu điểm đến của bạn có lối vào hoặc bến bốc dỡ hàng hoá được chỉ định, hãy chỉ định điểm đó bằng mã thông báo điểm điều hướng.
Bước 3: Xử lý trạng thái tuyến đường và bắt đầu hướng dẫn
Khi SDK Điều hướng hoàn tất việc tính toán tuyến đường, SDK này sẽ truyền một GMSNavigationRouteDescription đến trình xử lý hoàn thành của bạn. Khi routeStatus của ứng dụng là .OK (GMSRouteStatusOK), hãy đặt isGuidanceActive = true (guidanceActive = YES) để bắt đầu hướng dẫn từng chặng đang hoạt động.
Để xác nhận rằng SDK Điều hướng đã áp dụng mã thông báo tuyến đường của bạn, hãy xem phần Kiểm tra xem SDK Điều hướng đã áp dụng mã thông báo tuyến đường của bạn hay chưa.
Ví dụ về mã
Truyền mã thông báo tuyến đường đến setDestinationsWithToken:completionHandler:, sau đó bắt đầu hướng dẫn khi trạng thái tuyến đường là .OK.
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinationsWithToken(routeToken) { [weak self] routeDescription, error in
if routeDescription?.routeStatus == .OK {
self?.mapView.navigator?.isGuidanceActive = true
}
}
Màn hình trên xe
Bạn có thể hiển thị phiên chỉ đường cho xe lớn trên màn hình trong bảng điều khiển bằng cách sử dụng Navigation for CarPlay.Các bước tiếp theo
- Sửa đổi giao diện người dùng điều hướng: Tuỳ chỉnh các thành phần điều khiển trên giao diện người dùng và thành phần hình ảnh tích hợp sẵn, chẳng hạn như la bàn, nút căn giữa và góc nhìn của camera.
- Nghe sự kiện điều hướng: Xử lý thông tin cập nhật về hoạt động đi theo chỉ dẫn và sự kiện trong vòng đời, chẳng hạn như tiến trình của tuyến đường, thay đổi về thời gian đến dự kiến và đổi tuyến đường.