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

Lựa chọn ưu tiên về lưu lượng truy cập mà bạn chọn sẽ cân bằng độ chính xác của thông tin chi tiết về tuyến đường với hiệu suất yêu cầu. Khi đưa ra yêu cầu, bạn cầ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 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

Routes API cung cấp RoutingPreference (REST) và RoutingPreference (gRPC) cho phép bạn chỉ định các tuỳ chọn định tuyến để tính toán tuyến. Các tuỳ chọn ưu tiên này khác nhau về mức độ ảnh hưởng đến điều kiện giao thông trong quá trình tính toán tuyến đường. Mỗi lựa chọn ưu tiên về định tuyến sẽ 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 mô tả tốc độ lưu lượng giao thông. Ví dụ:

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

Không biết lưu lượng truy cập

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. Lựa chọn ưu tiên định tuyến này cung cấp độ 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 phản hồi:

  • ETA được chứa 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ị.

Sử dụng lựa chọn ưu tiên định tuyến này khi bạn muốn hệ thống trả về phản hồi nhanh nhất và thông tin định tuyến gần đúng là đủ.

Nhận biết tình trạng 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à thông tin chi tiết về tuyến đường phản ánh chính xác hơn các điều kiện thực tế. Vì việc tăng chất lượng dữ liệu này sẽ làm tăng độ trễ phản hồi, nên các biện pháp tối ưu hoá hiệu suất sẽ được áp dụng để giảm đáng kể độ trễ.

Trong phản hồi:

  • Thời gian đến dự kiến (ETA) có tính đến lưu lượng truy cập theo thời gian thực được chứa trong thuộc tính phản hồi duration.

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

Sử dụng tuỳ chọ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, nhưng bạn không ngại nếu độ trễ tăng lên một chút khi hệ thống trả về phản hồi.

Tối ưu hoá lưu lượng truy cập

Khi bạn đặt tuỳ chọn ưu tiên định tuyến TRAFFIC_AWARE_OPTIMAL, các tuyến 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 áp dụng biện pháp tối ưu hoá hiệu suất. Ở chế độ này, máy chủ sẽ tìm kiếm mạng lưới đường một cách kỹ lưỡng hơn để tìm tuyến đường tối ưu.

Lựa chọn ưu tiê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 tính năng Tính toán ma trận tuyến đường, số lượng phần tử trong một yêu cầu (số lượng điểm xuất phát × số lượng điểm đến) không được vượt quá 100. Để biết thêm về các giới hạn của Ma trận tuyến tính, hãy xem phần Tính toán ma trận tuyến tính.

Trong phản hồi:

  • Thời gian đến dự kiến (ETA) có tính đến lưu lượng truy cập theo thời gian thực được chứa trong thuộc tính phản hồi duration.

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

Lựa chọn ưu tiên định tuyến này cung cấp độ trễ phản hồi cao nhất (tức là phản hồi trả về với độ trễ dài nhất). Hãy sử dụng lựa chọn ưu tiên định tuyến này khi bạn muốn có kết quả chất lượng cao nhất, bất kể 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ể tuỳ ý sử dụng thuộc tính departureTime để đặt giờ khởi hành cho một chuyến đi. Nếu bạn không đặt thuộc tính departureTime, thì thuộc tính này sẽ mặc định là thời điểm bạn đưa ra yêu cầu.

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

  • Đối với TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL, các hàm này xem xét 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 với thời điểm hiện tại. Bạn càng đặt thời gian khởi hành xa hơn trong tương lai, thì càng có nhiều điều kiện lưu lượng truy cập trong quá khứ được xem xét.

Ví dụ về cách đặt lựa chọn ưu tiên về đị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 thực thể của 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 lưu lượng truy cập trên đường đa tuyến

Routes API cho phép bạn yêu cầu thông tin về tình trạng giao thông dọc theo một đường đa tuyến có nhận biết được tình trạng giao thông. Hãy xem phần Yêu cầu đường đa tuyến để biết thêm thông tin.