L'API Routes Preferred permet de demander des informations sur les conditions de trafic 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 des points de polyligne de début (inclusif) et de fin (exclusif).
Exemple de requête
La polyligne tenant compte du 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 même temps que la polyligne de l'itinéraire, incluez polyline
et speedReadingIntervals
dans le masque de champ de la réponse.
Si le masque de champ contient routes.legs.travelAdvisory.speedReadingIntervals
, la réponse contiendra les données de trafic au niveau de la section 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 fieldmask 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 la section est disponible sous routes.legs.travelAdvisory.speedReadingIntervals
.
Chaque intervalle est décrit par son startPolylinePointIndex
, son endPolylinePointIndex
et 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, les traits et les motifs personnalisés le long des sections 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 ont la possibilité de 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 choisir d'afficher la vitesse "NORMALE" sous la forme d'une épaisse ligne bleue sur la carte, la vitesse "LENTE" sous la forme d'une épaisse ligne orange, et ainsi de suite.
Les extraits suivants ajoutent une polyligne bleue épaisse 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