Ç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 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