Routes Preferred API, çoklu çizgi üzerindeki 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
Trafik bilinçli çoklu çizgi hem rota düzeyinde hem de yol 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 poli çizgisinin yanı sıra trafik bilgilerini almak için yanıt alanı maskesine hem polyline
hem de speedReadingIntervals
öğesini ekleyin.
Alan maskesi routes.legs.travelAdvisory.speedReadingIntervals
içeriyorsa yanıt, RouteLegTravelAdvisory altında bölüm 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.
Segment düzeyindeki trafik routes.legs.travelAdvisory.speedReadingIntervals
altında kullanılabilir.
Her aralık, startPolylinePointIndex
, endPolylinePointIndex
ve ilgili hız kategorisiyle açıklanı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
Google Haritalar SDK'ları tarafından sunulan çeşitli özellikleri (ör. özel renklendirme, çizgiler ve çoklu çizgi segmentleri boyunca desenler) kullanarak harita üzerinde trafik bilinçli çoklu çizgiler 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 bir çizgiyle, "YAVAŞ" hızı ise kalın turuncu bir çizgiyle göstermeye karar verilebilir.
Aşağıdaki snippet'ler, Melbourne'dan Perth'e kadar jeodezik segmentler içeren kalın bir mavi poli çizgisi ekler. Daha fazla bilgi için Görünümleri özelleştirme (Android için) ve Poli çizgiyi özelleştirme (iOS için) başlıklı makalelere 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