Routes Preferred API menawarkan kemungkinan untuk meminta informasi tentang kondisi lalu lintas di sepanjang polyline. Kondisi lalu lintas dinyatakan dalam kategori kecepatan (NORMAL, LAMBAT, MACET) yang berlaku pada interval tertentu dari polyline respons. Interval ditentukan oleh indeks titik polyline awal (inklusif) dan akhir (eksklusif).
Contoh Permintaan
Polyline sesuai lalu lintas tersedia untuk tingkat rute dan tingkat segmen.
Di tingkat rute, informasi kecepatan lalu lintas diberikan sebagai
SpeedReadingIntervals
di kolom respons RouteTravelAdvisory.
Untuk menerima informasi lalu lintas bersama dengan
polyline rute, sertakan polyline
dan speedReadingIntervals
dalam mask kolom respons.
Jika mask kolom berisi routes.legs.travelAdvisory.speedReadingIntervals
, respons akan berisi data lalu lintas 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 "Memilih Kolom yang Akan Ditampilkan" untuk mengetahui detail tambahan tentang cara menentukan mask kolom respons.
Contoh Respons
Selama speedReadingIntervals
diminta melalui mask kolom, speedReadingIntervals
akan diisi di bagian routes.travelAdvisory.speedReadingIntervals
.
Traffic tingkat kaki tersedia di bagian routes.legs.travelAdvisory.speedReadingIntervals
.
Setiap interval dijelaskan oleh startPolylinePointIndex
, endPolylinePointIndex
, dan kategori kecepatan yang sesuai.
Perhatikan bahwa tidak adanya 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 yang Mendeteksi Lalu Lintas dengan Maps SDK
Sebaiknya tampilkan polyline yang mengetahui lalu lintas di peta menggunakan berbagai fitur yang ditawarkan oleh Google Maps SDK, termasuk pewarnaan, goresan, dan pola kustom di sepanjang rentang polyline. Untuk mengetahui 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 dapat memutuskan untuk menampilkan kecepatan "NORMAL" sebagai garis biru tebal di peta, sedangkan kecepatan "LAMBAT" dapat ditampilkan sebagai garis oranye tebal, dan seterusnya.
Cuplikan berikut menambahkan polyline biru tebal dengan segmen geodesi dari Melbourne ke Perth. Untuk mengetahui 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