Ç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 çoklu çizgisinin belirli bir aralığı için geçerli olan hız kategorileriyle (NORMAL, SLOW, TRAFFIC_JAM) ifade edilir. Aralıklar, başlangıç (dahil) ve bitiş (hariç) çoklu çizgi noktalarının dizinleriyle tanımlanır.

Örnek İstek

Trafiğe duyarlı çoklu çizgi, hem rota seviyesinde hem de bacak düzeyinde kullanılabilir. Rota düzeyinde trafik hızı bilgileri, RouteTravelAdvisory yanıt alanında SpeedReadingIntervals olarak sunulur. Rotanın çoklu çizgisiyle birlikte trafik bilgilerini almak için yanıt alanı maskesine hem polyline hem de speedReadingIntervals ekleyin.

Alan maskesinde routes.legs.travelAdvisory.speedReadingIntervals bulunuyorsa 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 belirtmeyle ilgili ek ayrıntılar için "Döndürülecek Alanları Seçin" sayfasını ziyaret edin.

Örnek Yanıt

Alan maskesi aracılığıyla speedReadingIntervals istendikçe bunlar routes.travelAdvisory.speedReadingIntervals altında doldurulur. Bacak seviyesindeki trafik routes.legs.travelAdvisory.speedReadingIntervals altında mevcuttur. Her aralık startPolylinePointIndex, endPolylinePointIndex ve ilgili hız kategorisiyle tanımlanır. Aralık içinde başlangıç dizini eksikliğinin, proto3 uygulamalarına uygun olarak dizin 0'a 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 Trafiğe Duyarlı Çoklu Çizgiler Oluşturma

Google Haritalar SDK'ları tarafından sunulan çeşitli özellikleri (ör. çoklu çizgi uzantılarında özel renklendirme, çizgi ve desenler) kullanarak haritada trafiğe duyarlı çoklu çizgiler görüntülemenizi öneririz. Çoklu çizgileri kullanma hakkında daha fazla bilgi edinmek için Android için Çoklu Çizgi Özellikleri ve iOS için Çoklu Çizgi Özellikleri başlıklı makaleleri inceleyin.

Çoklu çizgi oluşturma örneği

Haritalar SDK'sı kullanıcıları, hız kategorileri ile çoklu çizgi oluşturma şemaları arasında özelleştirilmiş bir eşleme mantığı tanımlama fırsatına sahiptir. Örneğin, "NORMAL" hızı haritada kalın mavi bir çizgi olarak gösterilirken, "YAVAŞ" hız kalın turuncu bir çizgi olarak görüntülenebilir.

Aşağıdaki snippet'ler, Melbourne'dan Perth'e jeodezik segmentlere sahip 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) bölümlerine göz atı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