Chỉ định cách thức và liệu có nên bao gồm dữ liệu lưu lượng truy cập hay không

Các lựa chọn ưu tiên về lưu lượng truy cập bạn chọn sẽ cân bằng giữa độ chính xác của thông tin về tuyến đường với hiệu suất của yêu cầu. Khi đưa ra một yêu cầu, bạn nên cân nhắc xem nên trả về kết quả chính xác nhất có thể hay trả về kết quả nhanh nhất có thể. Routes API (API Tuyến đường) cung cấp các tuỳ chọn cho phép bạn kiểm soát chất lượng của dữ liệu phản hồi so với độ trễ của phản hồi.

Đặt cấp dữ liệu lưu lượng truy cập

API Tuyến đường cung cấp RoutingPreference (REST) và RoutingPreference (gRPC), cho phép bạn chỉ định các lựa chọn ưu tiên về định tuyến để tính toán tuyến đường. Các lựa chọn ưu tiên này khác nhau ở mức độ đưa điều kiện lưu lượng vào việc tính toán tuyến đường. Mỗi tuỳ chọn định tuyến tạo ra kết quả khác nhau về chất lượng tuyến đường, thời gian đến dự kiến và độ trễ phản hồi.

Tình trạng giao thông đặc trưng cho tốc độ của luồng giao thông. Ví dụ:

  • Khi không có tắc nghẽn, tình trạng giao thông sẽ được coi là bình thường và lưu lượng truy cập sẽ ở tốc độ không bị cản trở thông thường.
  • Khi đến giờ cao điểm, mật độ lưu lượng truy cập tăng lên, khiến giao thông giảm tốc, tạo ra tình trạng giao thông từ nhẹ đến trung bình.
  • Trong giao thông từ đoạn đường đệm đến đoạn đệm, tốc độ dòng chảy bị dừng lại, tạo ra tình trạng giao thông nghiêm trọng.

Không nắm rõ tình hình giao thông

Khi bạn đặt tuỳ chọn định tuyến TRAFFIC_UNAWARE, các tuyến đường sẽ được tính toán mà không tính đến tình trạng giao thông hiện tại. Tuỳ chọn định tuyến này có độ trễ phản hồi thấp nhất (phản hồi được trả về nhanh nhất).

TRAFFIC_UNAWARE là chế độ cài đặt mặc định.

Trong câu trả lời:

  • ETA nằm trong thuộc tính phản hồi duration.

  • Các thuộc tính phản hồi durationstaticDuration chứa cùng một giá trị.

Hãy sử dụng tuỳ chọn định tuyến này khi bạn muốn câu trả lời được trả về nhanh nhất và thông tin định tuyến ước chừng là đủ.

Nhận biết tình hình giao thông

Khi bạn đặt tuỳ chọn định tuyến TRAFFIC_AWARE, các tuyến đường sẽ được tính toán dựa trên tình trạng giao thông hiện tại. Do đó, tuyến đường và chi tiết tuyến đường phản ánh chính xác hơn điều kiện thực tế. Vì sự tăng lên về chất lượng dữ liệu này sẽ đánh đổi độ trễ phản hồi, nên các tính năng tối ưu hoá hiệu suất được áp dụng để giảm đáng kể độ trễ.

Trong câu trả lời:

  • ETA có xem xét lưu lượng truy cập theo thời gian thực nằm trong thuộc tính phản hồi duration.

  • Thuộc tính phản hồi staticDuration chứa thời gian di chuyển qua tuyến đường mà không tính đến tình trạng giao thông.

Hãy sử dụng lựa chọn ưu tiên định tuyến này khi bạn muốn có thông tin định tuyến chính xác hơn TRAFFIC_UNAWARE. Tuy nhiên, bạn có thể yên tâm nếu phản hồi được trả về với độ trễ tăng trung bình.

Tối ưu nhận biết lưu lượng truy cập

Khi bạn đặt lựa chọn ưu tiên định tuyến TRAFFIC_AWARE_OPTIMAL, các tuyến đường sẽ được tính toán dựa trên tình trạng giao thông hiện tại, nhưng không có tính năng tối ưu hoá hiệu suất nào được áp dụng. Ở chế độ này, máy chủ sẽ tìm kiếm toàn diện hơn mạng lưới đường để tìm tuyến đường tối ưu.

Tùy chọn định tuyến TRAFFIC_AWARE_OPTIMAL tương đương với chế độ mà maps.google.com và ứng dụng Google Maps dành cho thiết bị di động sử dụng.

Khi sử dụng tuỳ chọn này với Ma trận điện toán, số lượng phần tử trong một yêu cầu (số nguồn gốc × số đích đến) không được vượt quá 100. Để biết thêm thông tin về các giới hạn của Ma trận điện toán, hãy xem bài viết Tính toán ma trận tuyến.

Trong câu trả lời:

  • ETA có xem xét lưu lượng truy cập theo thời gian thực nằm trong thuộc tính phản hồi duration.

  • Thuộc tính phản hồi staticDuration chứa thời gian di chuyển qua tuyến đường mà không tính đến tình trạng giao thông.

Tuỳ chọn định tuyến này cung cấp độ trễ phản hồi cao nhất (nghĩa là phản hồi trả về với độ trễ lâu nhất). Hãy sử dụng tuỳ chọn định tuyến này khi bạn muốn có kết quả có chất lượng cao nhất mà không cần quan tâm đến thời gian phản hồi.

Ảnh hưởng của việc đặt thời gian khởi hành

Bạn có thể sử dụng thuộc tính departureTime để đặt thời gian khởi hành cho một chuyến đi. Nếu bạn không đặt thuộc tính departureTime, thuộc tính này sẽ mặc định lấy thời gian bạn thực hiện yêu cầu.

  • Đối với TRAFFIC_UNAWARE, bạn không thể đặt departureTime vì lựa chọn tuyến đường và thời lượng dựa trên mạng lưới đường và điều kiện giao thông không phụ thuộc vào thời gian trung bình.

  • Đối với TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL, những điều kiện lưu lượng truy cập trực tiếp có tính đến các điều kiện lưu lượng truy cập trực tiếp, lưu lượng truy cập trực tiếp càng quan trọng hơn khi departureTime càng gần hơn. Bạn càng đặt thời gian khởi hành xa trong tương lai, thì điều kiện giao thông trước đây càng được cân nhắc nhiều hơn.

Ví dụ về chế độ cài đặt lựa chọn ưu tiên định tuyến

Mã JSON sau đây minh hoạ cách đặt lựa chọn ưu tiên định tuyến trong phần nội dung của thực thể thông báo yêu cầu.

{
  "origin":{
    "location":{
      "latLng":{
        "latitude":37.419734,
        "longitude":-122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":37.417670,
        "longitude":-122.079595
      }
    }
  },
  "travelMode":"DRIVE",
  "routingPreference":"TRAFFIC_AWARE_OPTIMAL"
}

Định cấu hình giao thông trên nhiều đường

API Tuyến đường cho phép bạn yêu cầu thông tin về tình trạng giao thông theo hình nhiều đường nhận biết lưu lượng truy cập. Hãy xem phần Yêu cầu hình nhiều đường để biết thêm thông tin.