Routes Preferred API, çoklu çizgi boyunca trafik koşulları hakkında bilgi isteme imkanı sunar. Trafik koşulları, yanıt çoklu çizgisinin belirli bir aralığında geçerli olan hız kategorileri (NORMAL, YAVAŞ, TRAFİK_SIKIŞIKLIĞI) cinsinden ifade edilir. Aralıklar, başlangıç (dahil) ve bitiş (hariç) çoklu çizgi noktalarının dizinleriyle tanımlanır.
Örnek istek
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ının altı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 bacak düzeyinde 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 "Döndürülecek Alanları Seçme" bölümünü inceleyin.
Örnek Yanıt
speedReadingIntervals, alan maskesi aracılığıyla istendiği sürece routes.travelAdvisory.speedReadingIntervals altında doldurulur.
Bacak düzeyindeki trafik routes.legs.travelAdvisory.speedReadingIntervals altında gösterilir.
Her aralık, startPolylinePointIndex, endPolylinePointIndex ve ilgili hız kategorisiyle tanımlanır.
Aralıkta başlangıç dizini olmaması, proto3 uygulamalarına göre 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
Google Haritalar SDK'ları tarafından sunulan özel renklendirme, konturlar ve çoklu çizgi uzantıları boyunca desenler gibi çeşitli özellikleri kullanarak trafiğe duyarlı çoklu çizgileri haritada göstermenizi öneririz. Çoklu çizgileri kullanma hakkında daha fazla bilgi için Android için Çoklu Çizgi Özellikleri ve iOS için Çoklu Çizgi Özellikleri başlıklı makaleleri inceleyin.
Örnek çoklu çizgi oluşturma
Maps SDK kullanıcıları, hız kategorileri ile çoklu çizgi oluşturma şemaları arasında özelleştirilmiş bir eşleme mantığı tanımlayabilir. Örneğin, "NORMAL" hızın haritada kalın mavi bir çizgi, "YAVAŞ" hızın ise kalın turuncu bir çizgi olarak gösterilmesine karar verilebilir.
Aşağıdaki snippet'ler, Melbourne'den 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ı makaleleri inceleyin.
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