Theo mặc định, Routes API trả về tuyến mặc định, thường là tuyến đường nhanh nhất từ điểm khởi hành đến điểm đến. Khi bạn yêu cầu thay thế, thì API sẽ trả về tối đa 3 tuyến cùng với tuyến đường mặc định tuyến đường. Sau đó, khách hàng có thể chọn tuyến đường phù hợp nhất với yêu cầu của họ.
Những yếu tố nên cân nhắc khi yêu cầu tuyến đường thay thế
Để yêu cầu tuyến thay thế, hãy lưu ý những điểm cần cân nhắc sau:
Bạn chỉ có thể yêu cầu tuyến thay thế cho các tuyến không có trung gian điểm tham chiếu. Yêu cầu tuyến đường thay thế khi tuyến đường chỉ định điểm tham chiếu trung gian không gây ra lỗi. Tuy nhiên, không có lựa chọn nào khác các tuyến đường được trả về.
Phản hồi chứa tối đa 3 tuyến thay thế. Tuy nhiên, đôi khi không có tuyến đường thay thế nào nên phản hồi chỉ chứa tuyến mặc định.
Do phải xử lý thêm để tính toán các giá trị thay thế việc yêu cầu tuyến đường thay thế có thể làm tăng thời gian phản hồi API.
Ví dụ về yêu cầu tuyến đường thay thế
Đặt computeAlternativeRoutes
thành true
để yêu cầu tuyến thay thế. Chiến lược phát hành đĩa đơn
ví dụ sau cho biết cách yêu cầu tuyến đường thay thế trong một
computeRoutes
phương thức (REST).
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Trong ví dụ này, bạn chỉ định một mặt nạ trường để phản hồi chỉ chứa
Các thuộc tính duration
, distanceMeters,
và routeLabels
cho mỗi tuyến. Thông tin
sau đó khách hàng có thể sử dụng thông tin đó để chọn tuyến đường sẽ đi. Để biết thêm
hãy xem phần Chọn thông tin cần trả lại.
Ví dụ về phản hồi về tuyến đường thay thế
Trong phản hồi, hãy sử dụng thuộc tính mảng routeLabels
để xác định phạm vi tiếp cận
tuyến đường:
Đối với tuyến mặc định, thuộc tính
routeLabels
chứaDEFAULT_ROUTE
.Đối với bất kỳ tuyến đường thay thế nào, thuộc tính
routeLabels
chứaDEFAULT_ROUTE_ALTERNATE
.
Trong ví dụ này, phản hồi chứa tuyến mặc định và 2 tuyến thay thế
tuyến đường. Lưu ý rằng các giá trị của các thuộc tính duration
và distanceMeters
là khác nhau cho mỗi tuyến:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Thêm hình nhiều đường vào câu trả lời
Để giúp người dùng chọn tuyến đường dễ dàng hơn, hãy thêm nhiều đường cho mỗi tuyến đến phản hồi. Sau đó, bạn có thể hiển thị từng hình nhiều đường trên bản đồ.
Để thêm hình nhiều đường, hãy thêm routes.polyline
vào mặt nạ trường:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Sau đó, phản hồi này chứa hình nhiều đường cho từng tuyến đường:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }