Sử dụng API Routes để tính toán khoảng cách và thời lượng của một tuyến cho nhiều điểm khởi hành và đích đến bằng cách gọi phương thức CompuRouteMatrix (REST) hoặc phương thức truyền trực tuyến ComputeRouteMatrix (gRPC).
Dựa trên danh sách nguồn gốc và đích đến, phương thức sẽ tính toán khoảng cách và thời lượng của một tuyến đường bắt đầu tại mỗi điểm xuất phát và kết thúc tại mỗi đích đến.
Giới hạn yêu cầu
Phương thức Ma trận tuyến tính thực thi các giới hạn yêu cầu sau:
Số phần tử (số điểm gốc × số điểm đến) không thể vượt quá 625.
Nếu bạn chỉ định
TRAFFIC_AWARE_OPTIMAL
, thì số phần tử không thể vượt quá 100. Để biết thêm thông tin vềTRAFFIC_AWARE_OPTIMAL
, hãy xem phần Định cấu hình chất lượng so với độ trễ.Số điểm tham chiếu tối đa (điểm xuất phát + điểm đến) mà bạn có thể chỉ định bằng cách sử dụng ID địa điểm là 50.
Lỗi phản hồi
Một tính năng của phương thức Ma trận tuyến tính là các lỗi có thể được trả về cho toàn bộ phản hồi hoặc cho từng phần tử phản hồi riêng lẻ. Ví dụ: toàn bộ phản hồi chứa một lỗi nếu yêu cầu không đúng định dạng (ví dụ: yêu cầu không có nguồn gốc).
Tuy nhiên, nếu một lỗi áp dụng cho một tập hợp con của các phần tử trong phản hồi (ví dụ: không thể tính toán tuyến đường cho một tổ hợp điểm xuất phát và điểm đến), thì chỉ các thành phần chịu ảnh hưởng của lỗi mới trả về mã lỗi.
Kết quả sự kiện trực tiếp
Phương thức gRPC của ComputeRouteMatrix lấy danh sách nguồn gốc và đích đến và trả về một luồng chứa thông tin tuyến đường cho từng tổ hợp điểm khởi hành và điểm đến. Vì kết quả được trả về dưới dạng luồng, nên bạn không phải đợi cho đến khi tất cả các tổ hợp tuyến có thể được tính toán rồi mới có thể bắt đầu xử lý kết quả.
Các phần tử do luồng trả về không đảm bảo được trả về theo bất kỳ thứ tự nào. Do đó, mỗi phần tử phản hồi chứa một origin_index
và một destination_index
. Đối với điểm khởi hành và đích đến do yêu cầu chỉ định, điểm khởi hành của tuyến tương đương với origins[origin_index]
của một phần tử nhất định và đích đến của tuyến tương đương với destinations[destination_index]
.
Các mảng này được lập chỉ mục bằng 0. Điều quan trọng là bạn phải lưu trữ đơn đặt hàng gốc và
danh sách đích.
Ví dụ về tính toán ma trận tuyến đường
Sử dụng phương thức CompuRouteMatrix trong yêu cầu HTTP để tính toán ma trận tuyến.
Ví dụ về HTTP
Ví dụ sau đây cho thấy một yêu cầu HTTP computeRouteMatrix
. Trong ví dụ này, bạn:
Chỉ định một mảng gồm hai điểm xuất phát và hai điểm tham chiếu đích. Phương thức này tính toán một tuyến đường từ mỗi điểm gốc đến từng đích đến để phản hồi chứa 4 tuyến.
Trong mảng, phần tử đầu tiên ở chỉ mục 0, phần tử thứ hai là chỉ mục 1, v.v.
Thêm mặt nạ trường phản hồi để chỉ định những trường của response (REST) hoặc ComputeRoutesResponse (gRPC) cần trả về. Trong ví dụ này, hãy định cấu hình yêu cầu trả về
originIndex
,destinationIndex
,duration
,distanceMeters
,status
vàcondition
cho mỗi tuyến đường. Để biết thêm thông tin, hãy xem phần Chọn trường cần trả về.
curl -X POST -d '{ "origins": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420761, "longitude": -122.081356 } } }, "routeModifiers": { "avoid_ferries": true} }, { "waypoint": { "location": { "latLng": { "latitude": 37.403184, "longitude": -122.097371 } } }, "routeModifiers": { "avoid_ferries": true} } ], "destinations": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420999, "longitude": -122.086894 } } } }, { "waypoint": { "location": { "latLng": { "latitude": 37.383047, "longitude": -122.044651 } } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \ 'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'
Phản hồi chứa 4 tuyến đường có thể kết hợp tất cả điểm tham chiếu gốc và điểm đến.
Xác định từng tuyến đường trong phản hồi bằng cách sử dụng các trường phản hồi originIndex
và destinationIndex
. Ví dụ: originIndex
của 1 trong phản hồi tương ứng với tuyến được tính từ điểm tham chiếu tại chỉ mục 1 của mảng origins
trong yêu cầu.
[ { "originIndex": 0, "destinationIndex": 0, "status": {}, "distanceMeters": 822, "duration": "160s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 0, "status": {}, "distanceMeters": 2919, "duration": "361s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 1, "status": {}, "distanceMeters": 5598, "duration": "402s", "condition": "ROUTE_EXISTS" }, { "originIndex": 0, "destinationIndex": 1, "status": {}, "distanceMeters": 7259, "duration": "712s", "condition": "ROUTE_EXISTS" } ]
ví dụ về gRPC
Ví dụ: Yêu cầu gRPC, hãy xem ví dụ về Yêu cầu gRPC mẫu. Ví dụ về Java trên trang đó gọi cả hai Compute Routes và Compute Route Route Matrix.