Routes Preferred API, çoklu çizgi boyunca trafik koşulları hakkında bilgi isteme olanağı sunar. Trafik koşulları, yanıt poli çizgisinin belirli bir aralığında geçerli olan hız kategorileri (NORMAL, SLOW, TRAFFIC_JAM) ile ifade edilir. Aralıklar, başlangıç (dahil) ve bitiş (hariç) poli çizgisi noktalarının dizinleriyle tanımlanır.
Örnek İstek
Trafiğe duyarlı çoklu çizgi hem rota seviyesi hem de bacak seviyesi için 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 çizgisiyle birlikte trafik bilgilerini almak için yanıt alanı maskesine hem polyline
hem de speedReadingIntervals
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" 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 seviyesindeki trafik, routes.legs.travelAdvisory.speedReadingIntervals
adresinin altında gösterilir.
Her aralık, startPolylinePointIndex
, endPolylinePointIndex
ve karşılık gelen hız kategorisi ile tanımlanır.
Aralık içinde başlangıç dizini olmamasının, proto3 uygulamalarına göre 0 dizine karşılık geldiğini unutmayın.
{ "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 Trafik Bilinçli Çoklu Çizgiler Oluşturma
Trafik durumunu gösteren çoklu çizgileri, Google Haritalar SDK'ları tarafından sunulan çeşitli özelliklerden (ör. özel renklendirme, çizgiler ve çoklu çizgi segmentleri boyunca desenler) yararlanarak harita üzerinde 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
Haritalar SDK'sının 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ı haritada kalın mavi çizgi olarak gösterilirken, "YAVAŞ" hız kalın turuncu bir çizgi olarak görüntülenebilir ve bu böyle devam eder.
Aşağıdaki snippet'ler, Melbourne'dan Perth'e kadar jeodezik segmentler içeren kalın bir mavi poli çizgisi ekler. Daha fazla bilgi edinmek için Görünümleri özelleştirme (Android için) ve Çoklu çizgiyi özelleştirme (iOS için) bölümlerine bakın.
Yapay Zeka
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