Yêu cầu thông tin giao thông trên hình nhiều đường

API Ưu tiên cho tuyến đường cho phép yêu cầu thông tin về tình trạng giao thông dọc theo hình nhiều đường. Điều kiện giao thông được biểu thị theo danh mục tốc độ (Bình thường, CHẤT, TRAFFIC_JAM) áp dụng cho một khoảng thời gian nhất định của hình nhiều đường phản hồi. Các khoảng thời gian được xác định bằng chỉ mục của các điểm bắt đầu (bao gồm) và điểm kết thúc (không bao gồm) của đường đa tuyến.

Yêu cầu mẫu

Hình nhiều đường có thể nhận biết lưu lượng giao thông cho cả mức tuyến đường và mức chân. Ở cấp tuyến đường, thông tin về tốc độ giao thông được cung cấp dưới dạng SpeedReadingIntervals (Tốc độ ReadingIntervals) trong trường phản hồi RouteTravelAdvisory. Để nhận thông tin về giao thông cùng với hình nhiều đường của tuyến đường, hãy đưa cả polylinespeedReadingIntervals vào mặt nạ trường phản hồi.

Nếu mặt nạ trường chứa routes.legs.travelAdvisory.speedReadingIntervals, thì phản hồi sẽ chứa dữ liệu lưu lượng truy cập ở cấp chặng trong RouteLegTravelAdvisory.

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals

Truy cập "Chọn các trường cần trả về" để biết thêm thông tin chi tiết về cách chỉ định mặt nạ trường phản hồi.

Ví dụ về phản hồi

Chỉ cần speedReadingIntervals được yêu cầu thông qua mặt nạ trường, các đối tượng này sẽ được điền sẵn trong routes.travelAdvisory.speedReadingIntervals. Lưu lượng truy cập ở cấp độ chân có sẵn dưới routes.legs.travelAdvisory.speedReadingIntervals. Mỗi khoảng thời gian được mô tả bằng startPolylinePointIndex, endPolylinePointIndex và danh mục tốc độ tương ứng. Xin lưu ý rằng việc thiếu chỉ mục bắt đầu trong khoảng thời gian tương ứng với chỉ mục 0 theo các phương pháp proto3.

{
  "routes": [
    {
      "legs": {
        "polyline": {
          "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD"
        },
        "travelAdvisory": {
          "speedReadingIntervals": [
            {
              "endPolylinePointIndex": 1,
              "speed": "NORMAL"
            },
            {
              "startPolylinePointIndex": 1,
              "endPolylinePointIndex": 2,
              "speed": "SLOW"
            },
            {
              "startPolylinePointIndex": 2,
              "endPolylinePointIndex": 4,
              "speed": "NORMAL"
            }
          ] 
        }
      },
      "polyline": {
        "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD"
      },
      "travelAdvisory": {
        "speedReadingIntervals": [
          {
            "endPolylinePointIndex": 1,
            "speed": "NORMAL"
          },
          {
            "startPolylinePointIndex": 1,
            "endPolylinePointIndex": 2,
            "speed": "SLOW"
          },
          {
            "startPolylinePointIndex": 2,
            "endPolylinePointIndex": 4,
            "speed": "NORMAL"
          }
        ] 
      }
    }
  ]
}

Kết xuất đường đa giác nhận biết được lưu lượng truy cập bằng SDK Bản đồ

Bạn nên hiển thị các hình nhiều đường có thể nhận biết giao thông trên bản đồ bằng cách sử dụng các tính năng do SDK Google Maps cung cấp, bao gồm màu sắc tùy chỉnh, nét vẽ và các mẫu dọc theo các vệt nhiều đường. Để biết thêm thông tin về cách sử dụng hình nhiều đường, hãy xem bài viết Các tính năng hình nhiều đường dành cho AndroidCác tính năng hình nhiều đường dành cho iOS.

Ví dụ về kết xuất hình nhiều đường

Người dùng SDK Maps có thể xác định logic ánh xạ tuỳ chỉnh giữa các danh mục tốc độ và giản đồ kết xuất đa tuyến. Ví dụ: người dùng có thể quyết định hiển thị tốc độ "Bình thường" dưới dạng một đường dày màu xanh dương trên bản đồ trong khi tốc độ "CHẤT" có thể được hiển thị dưới dạng đường màu cam đậm, v.v.

Các đoạn mã sau đây sẽ thêm một hình nhiều đường màu xanh dương đậm với các đoạn trắc địa từ Melbourne đến Perth. Để biết thêm thông tin, hãy xem phần Tuỳ chỉnh giao diện (dành cho Android) và Tuỳ chỉnh Polyline (dành cho iOS).

Android

Java

Polyline line = map.addPolyline(new PolylineOptions()
    .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734))
    .width(25)
    .color(Color.BLUE)
    .geodesic(true));

Kotlin

val line: Polyline = map.addPolyline(
  PolylineOptions()
    .add(LatLng(-37.81319, 144.96298), LatLng(-31.95285, 115.85734))
    .width(25f)
    .color(Color.BLUE)
    .geodesic(true)
)

iOS

Objective-C

GMSMutablePath *path = [GMSMutablePath path];
[path addLatitude:-37.81319 longitude:144.96298];
[path addLatitude:-31.95285 longitude:115.85734];
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeWidth = 10.f;
polyline.strokeColor = .blue;
polyline.geodesic = YES;
polyline.map = mapView;

Swift

let path = GMSMutablePath()
path.addLatitude(-37.81319, longitude: 144.96298)
path.addLatitude(-31.95285, longitude: 115.85734)
let polyline = GMSPolyline(path: path)
polyline.strokeWidth = 10.0
polyline.geodesic = true
polyline.map = mapView