API Ưu tiên cho tuyến đường hiện chỉ có sẵn cho một số khách hàng. Liên hệ với bộ phận bán hàng để tìm hiểu thêm.

Tính toán ma trận tuyến đường

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:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/billingRouteMatrix

Các bước chung sau đây mô tả cách sử dụng gRPC để gọi phương thức ComputeRouteMatrix:

  1. 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.

  2. 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.

  3. 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.

  4. 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_indexdestination_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.