Navigation SDK cho Android cung cấp các cách nâng cao để chỉ định điểm tham chiếu hoặc điểm điều hướng, giúp định tuyến chính xác hơn và mang lại trải nghiệm đến nơi tốt hơn, đặc biệt là đối với những điểm đến có nhiều lối vào hoặc điểm điều hướng cụ thể. Bạn có thể định tuyến đến các vị trí chính xác bằng cách sử dụng navigationPointToken. Đây là một chuỗi mã hoá vị trí và bối cảnh bổ sung cho tuyến đường. Bạn cũng có thể kết hợp toạ độ vĩ độ và kinh độ với Mã địa điểm để có thêm bối cảnh.
Thông tin khái quát
Trước phiên bản 7.4, bạn có thể xác định Waypoint bằng cách sử dụng toạ độ vĩ độ và kinh độ hoặc Mã địa điểm. Mặc dù đôi khi hiệu quả, nhưng việc chỉ định tuyến đến một vĩ độ và kinh độ đôi khi có thể dẫn đến các điểm dừng hoặc điểm đón không tối ưu, đặc biệt là đối với các địa điểm lớn, công viên hoặc toà nhà có nhiều lối vào. Kết quả có thể bám theo phân đoạn đường gần nhất, có thể không phải là điểm điều hướng thuận tiện hoặc chính xác nhất.
Các lựa chọn nâng cao về điểm tham chiếu giải quyết vấn đề này bằng cách cho phép cung cấp thêm bối cảnh.
Sử dụng token điểm điều hướng
Để định tuyến chính xác nhất đến các điểm điều hướng cụ thể như lối vào, bến tải hoặc khu vực đón khách được chỉ định, bạn có thể sử dụng navigationPointToken. Bạn có thể lấy token này bằng cách gọi phương thức đích đến
của Geocoding
API. Token này đại diện cho một điểm điều hướng cụ thể, có thể định tuyến được liên kết với một địa điểm.
Cách chỉ định token Điểm điều hướng:
- Lấy
navigationPointTokentừ phương thức Đích đến của phản hồi Geocoding API. - Tạo
Waypointbằng phương thứcsetNavigationPointToken()trong trình tạo.
Lưu ý: Khi sử dụng setNavigationPointToken(), bạn không thể đồng thời sử dụng setLatLng() hoặc setPlaceIdString(). Các phương thức này loại trừ lẫn nhau với setNavigationPointToken().
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
Sử dụng token điểm điều hướng và token tuyến đường
Bạn có thể truy xuất token điểm điều hướng thông qua Geocoding API, truy xuất token tuyến đường từ Routes API, sau đó truyền cả token điểm điều hướng và token tuyến đường đến Navigation SDK. Điều này hữu ích trong các trường hợp như đi chung xe hoặc giao hàng, trong đó bạn sử dụng Routes API để tính giá chuyến đi và bạn muốn độ chính xác của token điểm điều hướng.
Token tuyến đường làm sai lệch tuyến đường mà Navigation SDK chọn theo hướng tuyến đường được dùng để tính giá. Điều này giúp giảm nguy cơ sử dụng các tuyến đường dài hơn hoặc ngắn hơn cho chuyến đi, có thể gây ra "biến động giá".
Hãy xem tài liệu về Routes API để biết thêm thông tin về cách chỉ định vị trí bằng token điểm điều hướng và tạo token tuyến đường. Hãy xem "Lập kế hoạch tuyến đường" để tìm hiểu cách lập kế hoạch tuyến đường bằng token tuyến đường.
Sơ đồ này cho thấy cách ứng dụng đi chung xe hoặc giao hàng sẽ sử dụng cùng nhau token điểm điều hướng và token tuyến đường:
Kết hợp Mã địa điểm và vĩ độ và kinh độ
Kể từ phiên bản 7.4, bạn có thể cung cấp cả Mã địa điểm và toạ độ vĩ độ và kinh độ khi tạo Waypoint. Phương thức này hữu ích khi bạn muốn chỉ định một điểm chính xác (vĩ độ/kinh độ) trong khi vẫn cung cấp bối cảnh của địa điểm tổng thể (Mã địa điểm). Điều này cho phép Navigation SDK mang lại trải nghiệm đến nơi phong phú hơn bằng cách làm nổi bật toà nhà đích đến hoặc hiển thị các điểm tham quan gần đó liên quan đến Mã địa điểm.
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
Lưu ý
Khi bạn cung cấp cả placeId và latlng:
- Tuyến đường chủ yếu nhắm đến
latlngđã chỉ định. placeIdđược dùng làm bối cảnh để nâng cao trải nghiệm đến nơi.- Dự phòng: Nếu SDK xác định rằng
placeIdđược cung cấp tương ứng với một tính năng quá xalatlngđã cho, thìplaceIdsẽ bị bỏ qua. Trong trường hợp này, quá trình định tuyến sẽ chỉ tiếp tục đếnlatlngvà các tính năng nâng cao trải nghiệm đến nơi dành riêng cho địa điểm sẽ không dùng được.
Tóm tắt các cấu hình điểm tham chiếu hợp lệ
| Phương thức | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
Hành vi định tuyến | Làm nổi bật điểm đến |
|---|---|---|---|---|---|
| Chỉ toạ độ vĩ độ/kinh độ | đặt | vắng mặt | vắng mặt | Tuyến đường đến phân đoạn đường gần nhất với toạ độ đã xác định | Xuất hiện nếu có thể suy ra điểm đến với độ tin cậy cao |
| Chỉ Mã địa điểm | vắng mặt | đặt | vắng mặt | Tuyến đường đến điểm điều hướng mặc định cho Mã địa điểm | Từ Mã địa điểm |
| Chỉ token điểm điều hướng | vắng mặt | vắng mặt | đặt | Tuyến đường đến điểm điều hướng chính xác được biểu thị bằng token | Từ điểm đến được xác định trong phương thức đích đến ban đầu của yêu cầu Geocoding API |
| Kết hợp toạ độ vĩ độ/kinh độ và Mã địa điểm | đặt | đặt | vắng mặt | Tuyến đường đến phân đoạn đường gần nhất với toạ độ đã xác định | Từ Mã địa điểm, mặc dù không xuất hiện nếu Mã địa điểm quá xa toạ độ vĩ độ/kinh độ |