Çoklu Çizgide Trafik Bilgisi İsteme

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