Meminta Informasi Lalu Lintas pada Polyline

Routes Preferred API menawarkan kemungkinan untuk meminta informasi tentang kondisi lalu lintas di sepanjang polyline. Kondisi lalu lintas dinyatakan dalam kategori kecepatan (NORMAL, SLOW, TRAFFIC_JAM) yang berlaku pada interval tertentu dari polyline respons. Interval ditentukan oleh indeks titik polyline awal (inklusif) dan akhir (eksklusif).

Contoh Permintaan

Polyline sadar lalu lintas tersedia untuk tingkat rute dan tingkat segmen. Pada tingkat rute, informasi kecepatan lalu lintas diberikan sebagai SpeedReadingIntervals pada kolom respons RouteTravelAdvisory. Untuk menerima informasi lalu lintas bersama polyline rute, sertakan polyline dan speedReadingIntervals dalam mask kolom respons.

Jika mask kolom berisi routes.legs.travelAdvisory.speedReadingIntervals, respons akan berisi data traffic tingkat segmen di bagian RouteLegTravelAdvisory.

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

Buka "Choose Field to Return" untuk detail tambahan cara menentukan fieldmask respons.

Contoh Respons

Selama speedReadingIntervals diminta melalui mask kolom, kolom tersebut akan diisi di bawah routes.travelAdvisory.speedReadingIntervals. Lalu lintas tingkat segmen tersedia di bawah routes.legs.travelAdvisory.speedReadingIntervals. Setiap interval dijelaskan oleh startPolylinePointIndex, endPolylinePointIndex, dan kategori kecepatan yang sesuai. Perhatikan bahwa kurangnya indeks awal dalam interval sesuai dengan indeks 0 sesuai dengan praktik 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"
          }
        ] 
      }
    }
  ]
}

Merender Polyline Traffic Aware dengan Maps SDK

Sebaiknya tampilkan polyline yang mengetahui traffic pada peta menggunakan berbagai fitur yang ditawarkan oleh Google Maps SDK, termasuk warna kustom, goresan, dan pola di sepanjang garis polyline. Untuk detail selengkapnya tentang penggunaan polyline, lihat Fitur Polyline untuk Android dan Fitur Polyline untuk iOS.

Contoh rendering Polyline

Pengguna Maps SDK memiliki kesempatan untuk menentukan logika pemetaan yang disesuaikan antara kategori kecepatan dan skema rendering polyline. Sebagai contoh, seseorang mungkin memutuskan untuk menampilkan kecepatan "NORMAL" sebagai garis biru tebal di peta sementara kecepatan "Lambat" mungkin ditampilkan sebagai garis oranye tebal, dan seterusnya.

Cuplikan berikut menambahkan polyline biru tebal dengan segmen geodesi dari Melbourne ke Perth. Untuk informasi selengkapnya, lihat Menyesuaikan tampilan (untuk Android) dan Menyesuaikan Polyline (untuk 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