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

API Ưu tiên tuyến đường cho phép yêu cầu thông tin về điều kiện lưu lượng theo hình nhiều đường. Tình trạng giao thông được biểu thị theo danh mục tốc độ (NORMAL, SLOW, TRAFFIC_JAM) áp dụng trên 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ởi chỉ mục điểm nhiều đường bắt đầu (bao gồm) và kết thúc (loại trừ).

Yêu cầu mẫu

Hình nhiều đường nhận biết được tình hình giao thông có sẵn cho cả cấp độ tuyến đường và cấp độ 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 trong trường phản hồi RouteTravelAdvisory. Để nhận thông tin về lưu lượng truy cập 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 (field mask) của phản hồi.

Nếu mặt nạ trường (field mask) 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ân 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 phần "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.

Phản hồi mẫu

Miễn là speedReadingIntervals được yêu cầu qua mặt nạ trường (field mask), các giá trị này sẽ được điền trong routes.travelAdvisory.speedReadingIntervals. Tình hình giao thông ở mức chân hiện có 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. Lưu ý rằng việc thiếu chỉ số bắt đầu trong khoảng thời gian này sẽ tương ứng với chỉ mục 0 theo 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"
          }
        ] 
      }
    }
  ]
}

Hiển thị hình nhiều đường nhận biết lưu lượng truy cập bằng SDK Maps

Bạn nên hiển thị các đường kẻ nhiều đường nhận biết được giao thông trên bản đồ bằng cách sử dụng nhiều tính năng do SDK Google Maps cung cấp, bao gồm cả việc tô màu, nét vẽ và hoa văn tuỳ chỉnh dọc theo các đường kẻ nhiều đường. Để biết thêm thông tin chi tiết về cách sử dụng hình nhiều đường, hãy xem Tính năng hình nhiều đường dành cho AndroidTính năng hình nhiều đường cho iOS.

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

Người dùng SDK Maps có cơ hội xác định logic ánh xạ tùy chỉnh giữa danh mục tốc độ và giản đồ kết xuất nhiều đường. 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 kẻ đậm màu xanh dương trên bản đồ trong khi tốc độ "PHÁ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 thêm một đường 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 bài viết Tuỳ chỉnh giao diện (dành cho Android) và Tuỳ chỉnh hình nhiều đường (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