Demander des informations sur le trafic de la polyligne

L'API Routes Preferred permet de demander des informations sur les conditions de circulation le long de la polyligne. Les conditions de circulation sont exprimées en termes de catégories de vitesse (NORMAL, SLOW, TRAFFIC_JAM) applicables à un intervalle donné de la polyligne de réponse. Les intervalles sont définis par les index de leurs points de polyligne de début (inclusif) et de fin (exclusif).

Exemple de requête

La polyligne prenant en compte le trafic est disponible au niveau de l'itinéraire et de l'étape. Au niveau de l'itinéraire, les informations sur la vitesse du trafic sont fournies sous la forme de SpeedReadingIntervals dans le champ de réponse RouteTravelAdvisory. Pour recevoir des informations sur le trafic en plus de la polyligne de l'itinéraire, incluez à la fois polyline et speedReadingIntervals dans le masque de champ de réponse.

Si le masque de champ contient routes.legs.travelAdvisory.speedReadingIntervals, la réponse inclura les données de trafic au niveau de l'étape sous RouteLegTravelAdvisory.

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals

Consultez Choisir les champs à renvoyer pour en savoir plus sur la spécification du masque de champ de réponse.

Exemple de réponse

Tant que les speedReadingIntervals sont demandés via le masque de champ, ils sont renseignés sous routes.travelAdvisory.speedReadingIntervals. Le trafic au niveau de l'étape est disponible sous routes.legs.travelAdvisory.speedReadingIntervals. Chaque intervalle est décrit par ses valeurs startPolylinePointIndex et endPolylinePointIndex, ainsi que par la catégorie de vitesse correspondante. Notez que l'absence d'index de début dans l'intervalle correspond à l'index 0, conformément aux pratiques proto3.

{
  "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"
          }
        ] 
      }
    }
  ]
}

Afficher des polylignes tenant compte du trafic avec le SDK Maps

Nous vous recommandons d'afficher les polylignes tenant compte du trafic sur la carte à l'aide des différentes fonctionnalités proposées par les SDK Google Maps, y compris les couleurs personnalisées, les traits et les motifs le long des segments de polyligne. Pour en savoir plus sur l'utilisation des polylignes, consultez Fonctionnalités des polylignes pour Android et Fonctionnalités des polylignes pour iOS.

Exemple de rendu de polyligne

Les utilisateurs du SDK Maps peuvent définir une logique de mappage personnalisée entre les catégories de vitesse et les schémas de rendu des polylignes. Par exemple, vous pouvez décider d'afficher la vitesse "NORMAL" sous la forme d'une ligne bleue épaisse sur la carte, tandis que la vitesse "SLOW" peut être affichée sous la forme d'une ligne orange épaisse, etc.

Les extraits suivants tracent une polyligne épaisse bleue avec des segments géodésiques de Melbourne à Perth. Pour en savoir plus, consultez Personnaliser l'apparence (pour Android) et Personnaliser la polyligne (pour iOS).

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