Routes Preferred API, çoklu çizgi boyunca trafik koşulları hakkında bilgi isteme olanağı sunar. Trafik koşulları, yanıt poliline ait belirli bir aralıkta geçerli olan hız kategorileri (NORMAL, YAVAŞ, TRAFİK_YOĞUNLUĞU) şeklinde ifade edilir. Aralıklar, başlangıç (dahil) ve bitiş (hariç) çoklu çizgi noktalarının indeksleriyle tanımlanır.
Örnek İstek
Trafiğe duyarlı çoklu çizgi hem rota hem de ayak düzeyinde kullanılabilir.
Rota düzeyinde trafik hızı bilgileri, RouteTravelAdvisory yanıt alanında SpeedReadingIntervals olarak sağlanır.
Rotanın çoklu çizgisinin yanı sıra trafik bilgilerini de almak için yanıt alan maskesine hem polyline
hem de speedReadingIntervals
değerini ekleyin.
Alan maskesi routes.legs.travelAdvisory.speedReadingIntervals
içeriyorsa yanıt, RouteLegTravelAdvisory altında segment düzeyindeki trafik verilerini içerir.
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals
Yanıt alan maskesini belirtme hakkında daha fazla bilgi için "Choose Fields to Return" (Döndürülecek Alanları Seçme) başlıklı makaleyi inceleyin.
Örnek Yanıt
speedReadingIntervals
, alan maskesi aracılığıyla istendiği sürece routes.travelAdvisory.speedReadingIntervals
altında doldurulur.
Bacak seviyesi trafiği routes.legs.travelAdvisory.speedReadingIntervals
altında kullanılabilir.
Her aralık, startPolylinePointIndex
, endPolylinePointIndex
ve ilgili hız kategorisiyle açıklanır.
Aralıkta başlangıç dizininin olmaması, proto3 uygulamalarına uygun olarak 0 dizinine karşılık gelir.
{ "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" } ] } } ] }
Haritalar SDK'sı ile trafiğe duyarlı çoklu çizgiler oluşturma
Çoklu çizgi uzantıları boyunca özel renklendirme, konturlar ve desenler gibi Google Haritalar SDK'larının sunduğu çeşitli özellikleri kullanarak haritada trafiğe duyarlı çoklu çizgiler göstermenizi öneririz. Çoklu çizgileri kullanma hakkında daha fazla bilgi için Android'de Çoklu Çizgi Özellikleri ve iOS'te Çoklu Çizgi Özellikleri başlıklı makaleleri inceleyin.
Çoklu çizgi oluşturma örneği
Haritalar SDK'sını kullananlar, hız kategorileri ile çoklu çizgi oluşturma şemaları arasında özelleştirilmiş bir eşleme mantığı tanımlayabilir. Örneğin, "NORMAL" hız haritada kalın mavi bir çizgi olarak gösterilirken "YAVAŞ" hız kalın turuncu bir çizgi olarak gösterilebilir.
Aşağıdaki snippet'ler, Melbourne'dan Perth'e jeodezik segmentler içeren kalın mavi bir çoklu çizgi ekler. Daha fazla bilgi için Görünümleri özelleştirme (Android için) ve Çoklu çizgiyi özelleştirme (iOS için) başlıklı makalelere bakın.
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