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 indices de leurs points de début (inclusif) et de fin (exclusif) de la polyligne.
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 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 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 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ées via le masque de champ, elles sont renseignées sous routes.travelAdvisory.speedReadingIntervals
.
Le trafic au niveau des segments est disponible sous routes.legs.travelAdvisory.speedReadingIntervals
.
Chaque intervalle est décrit par ses startPolylinePointIndex
, 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 des polylignes tenant compte du 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 sections de polyligne. Pour en savoir plus sur l'utilisation des polylignes, consultez Éléments géographiques de polyligne pour Android et Éléments géographiques de polyligne pour iOS.
Exemple d'affichage 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 de polyligne. Par exemple, vous pouvez décider d'afficher la vitesse "NORMALE" sous la forme d'une ligne bleue épaisse sur la carte, tandis que la vitesse "LENT" 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