L'API Routes Preferred permet de demander des informations sur les conditions de circulation le long de la polyligne. Les conditions de trafic 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
Les polylignes tenant compte du trafic sont disponibles au niveau de l'itinéraire et de la section.
Au niveau de l'itinéraire, les informations sur la vitesse du trafic sont indiquées sous la forme SpeedReadingIntervals dans le champ de réponse RouteTravelAdvisory.
Pour recevoir des informations sur le trafic à côté 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 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 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 des sections est disponible dans routes.legs.travelAdvisory.speedReadingIntervals
.
Chaque intervalle est décrit par son startPolylinePointIndex
, sa 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 les pages Fonctionnalités des polylignes pour Android et Fonctionnalités des polylignes pour iOS.
Exemple d'affichage 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 polyligne. Par exemple, vous pouvez choisir d'afficher la vitesse "NORMAL" sous la forme d'une épaisse ligne bleue sur la carte, tandis que la vitesse "LENTE" peut être affichée sous la forme d'une épaisse ligne orange, et ainsi de suite.
Les extraits de code suivants ajoutent 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