Çoklu Çizgide Trafik Bilgisi İsteme

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