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ả polyline
và speedReadingIntervals
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 Android và Cá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