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

API Routes Preferred có thể yêu cầu thông tin về tình trạng giao thông dọc theo đường đa tuyến. Tình trạng giao thông được thể hiện theo các 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 đường đa tuyến 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

Bạn có thể sử dụng đường đa tuyến có tính năng nhận biết tình trạng giao thông ở cả cấp tuyến và cấp chặng. Ở 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 giao thông cùng với đường đa tuyến của tuyến đường, hãy thêm 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

Hãy truy cập vào phần "Chọn trường để 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

Miễn là speedReadingIntervals được yêu cầu thông qua mặt nạ trường, các giá trị này sẽ được điền vào routes.travelAdvisory.speedReadingIntervals. Lưu lượng truy cập cấp chặng có trong 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 đường đa giác nhận biết được tình trạng 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ả màu sắc, nét vẽ và mẫu tuỳ chỉnh dọc theo các đoạn đường đa giác. Để biết thêm thông tin chi tiết về cách sử dụng đa tuyến, hãy xem phần Tính năng đa tuyến cho AndroidTính năng đa tuyến cho iOS.

Ví dụ về kết xuất Polyline

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ụ: bạn có thể quyết định hiển thị tốc độ "BÌNH THƯỜNG" dưới dạng một đường màu xanh dương đậm trên bản đồ, trong khi tốc độ "CHẬM" có thể được hiển thị dưới dạng một đường màu cam đậm, v.v.

Các đoạn mã sau đây sẽ thêm một đa tuyến màu xanh dương đậm với các đoạn đường 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

JavaKotlin

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));

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

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;

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