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 la section.
Au niveau de l'itinéraire, les informations sur la vitesse de circulation sont fournies sous 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 réponse.
Si le masque de champ contient routes.legs.travelAdvisory.speedReadingIntervals, la réponse contient 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
Pour en savoir plus sur la spécification du masque de champ de réponse, consultez la section "Choisir les champs à renvoyer".
Exemple de réponse
Tant que speedReadingIntervals est demandé via le masque de champ, il est renseigné 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 prenant en compte le trafic avec le SDK Maps
Nous vous recommandons d'afficher les polylignes prenant en compte le trafic sur la carte à l'aide des différentes fonctionnalités proposées par les SDK Google Maps, y compris la coloration, les traits et les motifs personnalisés le long des tronçons de la polyligne. Pour en savoir plus sur l'utilisation des polylignes, consultez la section Fonctionnalités de polyligne pour Android et Fonctionnalités de polyligne 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 de polyligne. Par exemple, vous pouvez décider d'afficher la vitesse "NORMAL" sous forme de ligne bleue épaisse sur la carte, tandis que la vitesse "SLOW" peut être affichée sous forme de ligne orange épaisse, 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