Đặt các lựa chọn về lưu lượng truy cập

Nhà phát triển ở Khu vực kinh tế Châu Âu (EEA)

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 của yêu cầu theo một trong hai cách:

  • Nhận biết lưu lượng truy cập: Trả về kết quả chính xác nhất có thể (độ trễ cao hơn).
  • Không nhận biết lưu lượng truy cập: Trả về kết quả nhanh nhất có thể (độ trễ thấp nhất).

Khi bạn đưa ra yêu cầu, hãy cân nhắc xem bạn 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ể. Thư viện Tuyến đường cung cấp các lựa 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 mức lưu lượng truy cập và mô hình lưu lượng truy cập

Để chỉ định cấp độ lưu lượng truy cập, hãy đặt routingPreference trên ComputeRoutesRequest. Danh sách sau đây cho thấy các lựa chọn routingPreference hiện có:

  • TRAFFIC_UNAWARE (mặc định): Trả về kết quả nhanh nhất, kèm theo thông tin chi tiết gần đúng về đường đi.
  • TRAFFIC_AWARE: Trả về kết quả chính xác hơn bằng cách sử dụng dữ liệu giao thông theo thời gian thực, nhưng có độ trễ cao hơn.
  • TRAFFIC_AWARE_OPTIMAL: Trả về kết quả chính xác nhất có thể bằng cách sử dụng dữ liệu giao thông theo thời gian thực, nhưng có độ trễ cao nhất.

Thuộc tính TRAFFIC_MODEL biểu thị các giả định cần sử dụng khi dự đoán thời lượng trong lưu lượng truy cập ( TrafficModel.BEST_GUESS (mặc định), TrafficModel.OPTIMISTIC, TrafficModel.PESSIMISTIC).

Cách chọn tính năng định tuyến có tính đến tình trạng giao thông

Để tạo một yêu cầu về tuyến đường có tính đến tình trạng giao thông, hãy làm theo các bước sau:

  1. Đặt thuộc tính travelMode thành DRIVING.

  2. Đặt thuộc tính routingPreference thành một trong những giá trị sau:

    • TRAFFIC_AWARE
    • TRAFFIC_AWARE_OPTIMAL

    LƯU Ý: TRAFFIC_UNAWARE là chế độ cài đặt mặc định.

  3. Đặt thuộc tính trafficModel thành một trong những giá trị sau:

  4. Đặt thuộc tính extraComputations thành TRAFFIC_ON_POLYLINE.

  5. Yêu cầu các trường path, speedPathsrouteLabels.

Yêu cầu ví dụ sau đây cho thấy cách yêu cầu một tuyến đường có tính đến tình trạng giao thông, trong đó cho thấy dữ liệu giao thông trên đường đa tuyến:

// Define a traffic aware routes request with polylines.
const requestWithTraffic = {
  origin: '200 King St San Francisco, CA 94107',
  destination: 'Pier 41, San Francisco, CA 94133',
  travelMode: 'DRIVING',
  routingPreference: 'TRAFFIC_AWARE_OPTIMAL',
  trafficModel: 'optimistic',
  extraComputations: ['TRAFFIC_ON_POLYLINE'],
  fields: ['speedPaths'],
};
    

Tình trạng giao thông

Tình trạng giao thông thể hiện tốc độ lưu thông:

  • Giao thông bình thường: Không bị tắc nghẽn và giao thông lưu thông ở tốc độ bình thường.
  • Giao thông từ thưa thớt đến vừa phải: Tình trạng tắc nghẽn gia tăng, giao thông di chuyển với tốc độ chậm hơn.
  • Giao thông đông đúc: Tình trạng tắc nghẽn nghiêm trọng, tốc độ giao thông giảm đáng kể.

Không có thông tin giao thông

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

Các tuyến đường TRAFFIC_UNAWARE đượ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 về định tuyến này mang lại phản hồi yêu cầu nhanh nhất (độ trễ thấp nhất).

Nếu bạn chọn TRAFFIC_UNAWARE, tuyến đường và thời gian đã chọn sẽ dựa trên mạng lưới đường bộ và điều kiện giao thông trung bình không phụ thuộc vào thời gian, chứ không phải điều kiện đường bộ hiện tại. Do đó, các tuyến đường có thể bao gồm những con đường đang bị đóng tạm thời. Kết quả cho một yêu cầu nhất định có thể thay đổi theo thời gian do những thay đổi trong mạng lưới đường bộ, điều kiện giao thông trung bình mới nhất và bản chất phân tán của dịch vụ. Kết quả cũng có thể thay đổi giữa các tuyến đường gần tương đương bất cứ lúc nào hoặc với tần suất bất kỳ.

Sau đây là những câu trả lời bạn sẽ thấy:

  • duration: Chứa thời gian dự kiến đến của tuyến đường.
  • staticDuration: Thời gian đến dự kiến cho tuyến đường chỉ xem xét thông tin giao thông trong quá khứ. Đối với TRAFFIC_UNAWARE, giá trị này chứa cùng giá trị với duration.

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

Sử dụng lựa chọn ưu tiên về định tuyến này khi bạn muốn có thông tin định tuyến chính xác hơn so với TRAFFIC_UNAWARE, nhưng không ngại nếu phản hồi được trả về với độ trễ tăng vừa phải.

Khi bạn đặt lựa chọn ưu tiên về TRAFFIC_AWARE, dịch vụ sẽ tính toán tuyến đường có tính đế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 tình trạng thực tế. Vì việc tăng chất lượng dữ liệu này phải trả giá bằng độ trễ phản hồi, nên các hoạt động tối ưu hoá hiệu suất được áp dụng để giảm phần lớn độ trễ.

Sau đây là những câu trả lời bạn sẽ thấy:

  • duration: Thời gian đến dự kiến có tính đến thông tin giao thông theo thời gian thực.
  • staticDuration: Thời gian đến dự kiến cho tuyến đường chỉ xem xét thông tin giao thông trong quá khứ.

Tối ưu hoá dựa trên thông tin 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ó kết quả chất lượng cao nhất mà không cần quan tâm đến thời gian phản hồi. Lựa chọn ưu tiên định tuyến này có độ trễ lâu nhất khi trả về các phản hồi (độ trễ cao nhất).

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

Lựa chọn ưu tiên về TRAFFIC_AWARE_OPTIMALđịnh tuyến tương đương với chế độ mà maps.google.com và ứng dụng di động Google Maps sử dụng.

Khi bạn sử dụng lựa chọn này với computeRouteMatrix, 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á 25.

Sau đây là những câu trả lời bạn sẽ thấy:

  • duration: Thời gian đến dự kiến của tuyến đường, có tính đến thông tin giao thông theo thời gian thực.
  • staticDuration: Thời gian đến dự kiến cho tuyến đường chỉ xem xét thông tin giao thông trong quá khứ.

Đặt thời gian khởi hành (không bắt buộc)

Chỉ sử dụng thuộc tính này cho các yêu cầu có nhận biết lưu lượng truy cập mà thời gian khởi hành cần phải là thời gian trong tương lai. 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 gian bạn đưa ra yêu cầu.

Sử dụng thuộc tính departureTime cùng với các lựa chọn TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL khi bạn muốn điều chỉnh cách dịch vụ dự đoán lưu lượng truy cập khi chọn một tuyến đường.

  • TRAFFIC_UNAWARE: Không nên dùng vì lựa chọn về tuyến đường và thời lượng dựa trên mạng lưới đường bộ và điều kiện giao thông trung bình không phụ thuộc vào thời gian.
  • TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL: Được đề xuất cho những chuyến khởi hành sắp diễn ra vì những lựa chọn ưu tiên này có tính đến tình trạng giao thông thực tế. Thông tin giao thông trực tiếp càng trở nên quan trọng và phù hợp hơn khi departureTime càng gần với thời điểm hiện tại. Bạn đặt thời gian khởi hành càng xa trong tương lai, thì hệ thống càng cân nhắc nhiều hơn đến tình trạng giao thông trong quá khứ khi chọn tuyến đường.

Nhận mã thông báo tuyến đường

Mã thông báo tuyến đường là một biểu thị an toàn trên web, được mã hoá base64 của một tuyến đường. Sử dụng mã thông báo tuyến đường để chia sẻ tuyến đường với Navigation SDK. SDK sử dụng mã thông báo này để tạo lại tuyến đường và duy trì ý định điều hướng ban đầu, ngay cả trong quá trình định tuyến lại.

Hãy làm theo các bước sau để nhận mã thông báo tuyến đường:

  • Đặt travelMode thành DRIVING.
  • Đặt routingPreference thành TRAFFIC_AWARE hoặc TRAFFIC_AWARE_OPTIMAL.
  • Yêu cầu trường routeToken.

Yêu cầu ví dụ sau đây cho biết cách yêu cầu mã thông báo tuyến đường:

// Define a traffic aware routes request with a route token.
const requestWithRouteToken = {
  origin: '200 King St San Francisco, CA 94107',
  destination: 'Pier 41, San Francisco, CA 94133',
  travelMode: 'DRIVING',
  routingPreference: 'TRAFFIC_AWARE',
  fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'],
};