Bạn có thể tính toán khoảng cách và thời lượng của một tuyến đường cho nhiều
nguồn gốc và đích đến bằng cách sử dụng phương thức ComputeRouteMatrix
của API ưu tiên cho tuyến đường. ComputeRouteMatrix
hỗ trợ
cả lệnh gọi gRPC truyền trực tuyến và lệnh gọi HTTP REST.
Cho trước một danh sách các cặp điểm khởi hành và đích đến, ComputeRouteMatrix
tính khoảng cách và thời lượng của một tuyến đường xuất phát tại mỗi điểm gốc
và kết thúc tại mỗi đích đến. Mỗi phần tử của luồng tương ứng với
thông tin về một tuyến đường.
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:
- Tính năng truyền trực tuyến cho phép trả về các phần tử trước 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 quyết định đánh đổi độ trễ về chất lượng.- 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 khả năng sử dụng cao hơn.
- Bạn có thể chỉ định tiêu đề (hướng đi) và lề đường cho các đ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à giờ đến dự kiến.
Bật phương thức ComputeRouteMatrix
Trước khi có thể sử dụng phương thức ComputeRouteMatrix
trong mã của mình, bạn phải
bật tính năng đó. Để biết thêm thông tin về cách bật API ưu tiên cho tuyến đường
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 Tuyến đường ưu tiên
điểm cuối v1.
Hãy xem tài liệu sau để biết thêm thông tin chi tiết:
Kiến trúc chuyển trạng thái đại diện (REST): https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix
Các bước chung sau đây mô tả cách sử dụng gRPC để gọi
phương thức ComputeRouteMatrix
:
Xem các bộ đệm protobuffer 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, chẳng hạn như Go, có thể tự động làm việc này cho bạn.
Bằng cách sử dụng ngôn ngữ ưu tiên và bộ công cụ xây dựng, hãy tạo mã bộ đệm protobuffer.
Tạo yêu cầu. Bạn phải gửi hai phần siêu dữ liệu bắt buộc với yêu cầu:
- Bạn phải đặt X-Goog-Api-Key thành khoá API.
Bạn phải đặt X-Goog-Fieldmask 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 trong câu trả lời. Ví dụ: X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,trạng thái. Bạn có thể sử dụng ký tự đại diện (*) để biểu thị tất cả các trường, nhưng đó là không khuyến khích. Sử dụng ký tự đại diện để kiểm tra và nắm được Phản hồi của 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ã sản xuất của bạn.
Để 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. 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ể yêu cầu tính toán thêm. Độ trễ của bạn sẽ giữ nguyên ổn định nếu bạn chỉ định các trường bạn cần và các trường mới yêu cầu các phép tính khác sẽ được thêm vào sau này.
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
Ví dụ về tính toán ma trận tuyến đường (Beta).
Một đặc điểm khác biệt của phương thức ComputeRouteMatrix
là
có thể trả về mã lỗi cho toàn bộ luồng hoặc cho từng mã
phần tử. Ví dụ: kết nối luồng trả về lỗi nếu yêu cầu
không đúng định dạng (ví dụ: không có nguồn gốc). Tuy nhiên, nếu xảy ra lỗi
chỉ một vài thành phần của luồng (ví dụ: đặt ID địa điểm không hợp lệ
cho một nguồn gốc), thì chỉ những phần tử chịu ảnh hưởng của lỗi đó mới chứa mã lỗi.
Không đảm bảo trả về các phần tử do luồng trả về
theo thứ tự bất kỳ. Do đó, mỗi phần tử đều chứa một origin_index
và destination_index
. Đối với các nguồn gốc và đích đến đã chỉ định
theo yêu cầu, điểm gốc của tuyến sẽ tương đương với origins[origin_index]
cho một phần tử nhất định và đích đến là tuyến tương đương
đến destinations[destination_index]
. Các mảng này được lập chỉ mục bằng 0. Chiến dịch
là rất quan trọng để lưu trữ các đơn đặt hàng trong danh sách điểm khởi hành và đ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 Tính phí cầu đường.
Để biết ví dụ về cách tính phí cầu đường, hãy xem Tính toán ví dụ ma trận tuyến đường.