Bạn có thể tính toán khoảng cách và thời lượng của một tuyến cho nhiều điểm gốc và đích bằng cách sử dụng phương thức ComputeRouteMatrix
của Routes Preferred API. ComputeRouteMatrix
hỗ trợ cả lệnh gọi gRPC và lệnh gọi REST REST.
Dựa trên danh sách các cặp điểm xuất phát và điểm đến, ComputeRouteMatrix
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 điểm đến. Mỗi phần tử của luồng tương ứng với thông tin cho một tuyến đường duy nhất.
Phương thức ComputeRouteMatrix
có một số ưu điểm so với
Dịch vụ ma trận khoảng cách:
- Việc phát trực tiếp cho phép các phần tử được trả về trước khi toàn bộ ma trận được tính toán, giúp giảm độ trễ.
ComputeRouteMatrix
có các tuỳ chọn chi tiết để tính toán lưu lượng truy cập, cho phép bạn đưa ra các quyết định đánh đổi về độ trễ chất lượng.- Các yêu cầu được chạy ở mức độ ưu tiên cao hơn trong cơ sở hạ tầng của Google, dẫn đến tính khả dụng cao hơn.
- Bạn có thể chỉ định tiêu đề (hướng đi lại) và thông tin lề đường cho điểm tham chiếu.
- Bạn có thể yêu cầu trả lại thông tin phí cầu đường, cùng với khoảng cách tuyến đường và thời gian đến dự kiến.
Bật phương thức ComputeRouteMatrix
Trước khi sử dụng phương thức ComputeRouteMatrix
trong mã, bạn phải bật phương thức đó. Để biết thêm thông tin về cách bật phương thức API ưu tiên tuyến, hãy xem phần Bắt đầu.
Sử dụng phương thức ComputeRouteMatrix
Phương thức ComputeRouteMatrix
có sẵn thông qua điểm cuối v1 Tuyến ưu tiên.
Hãy xem tài liệu sau để biết thêm thông tin chi tiết:
Các bước chung sau đây mô tả cách sử dụng gRPC để gọi phương thức ComputeRouteMatrix
:
Kiểm tra các protobuffers cần thiết từ kho lưu trữ googleapis:
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
Xin lưu ý rằng một số hệ thống xây dựng như Go có thể tự động thực hiện việc này cho bạn.
Sử dụng ngôn ngữ bạn muốn và tập hợp các công cụ tạo bản dựng để tạo mã bộ đệm nguyên bản có liên quan.
Tạo yêu cầu của bạn. Bạn phải gửi hai phần siêu dữ liệu bắt buộc cùng với yêu cầu:
- X-Goog-Api-Key phải được đặt thành khoá API.
X-Goog-Fieldmask phải được đặt thành danh sách các trường được phân tách bằng dấu phẩy mà bạn yêu cầu từ phản hồi. Ví dụ: X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Bạn có thể sử dụng ký tự đại diện (*) để biểu thị tất cả các trường, nhưng bạn không nên sử dụng ký tự đại diện đó. Sử dụng ký tự đại diện để kiểm thử và hiểu phản hồi API, nhưng liệt kê rõ ràng các trường bạn muốn trong mặt nạ trường trong mã phát hành chính thức.
Để biết thêm thông tin về cách tạo chuỗi mặt nạ trường, hãy xem https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Xin lưu ý rằng việc tắt các trường bạn không cần có thể làm giảm độ trễ vì những trường đó có thể cần tính toán thêm. Độ trễ sẽ vẫn ổn định nếu bạn chỉ định các trường cần thiết và các trường mới yêu cầu tính toán nhiều hơn sẽ được thêm sau.
Gửi yêu cầu của bạn đến
routespreferred.googleapis.com:443
.Bạn phải sử dụng giao thức TLS.
Để biết ví dụ về cách sử dụng phương thức ComputeRouteMatrix
, hãy xem phần Ví dụ về tính toán ma trận tuyến (Beta).
Một đặc điểm phân biệt của phương thức ComputeRouteMatrix
là mã trả về có thể được trả về cho toàn bộ luồng hoặc cho từng phần tử. Ví dụ: kết nối luồng sẽ trả về 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 lỗi chỉ áp dụng cho một vài thành phần của luồng (ví dụ: đặt Mã địa điểm không hợp lệ cho một nguồn gốc), thì chỉ các thành phần chịu ảnh hưởng của lỗi mới có mã lỗi.
Các phần tử do luồng trả về không đảm bảo được trả về theo thứ tự bất kỳ. Do đó, mỗi phần tử đều chứa origin_index
và 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 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 điểm đến.
Đang tính phí cầu đường
Để biết thông tin về cách tính phí cầu đường, hãy xem phần Tính phí cầu đường.
Để biết ví dụ về cách tính phí cầu đường, hãy xem phần Tính toán ví dụ về ma trận tuyến đường.