L'API Routes Preferred offre la possibilità di richiedere informazioni sulle condizioni del traffico lungo la polilinea. Le condizioni del traffico sono espresse in termini di categorie di velocità (NORMAL, SLOW, TRAFFIC_JAM) applicabili a un determinato intervallo della polilinea di risposta. Gli intervalli sono definiti dagli indici dei punti della polilinea iniziale (inclusiva) e finale (esclusiva).
Richiesta di esempio
La polilinea sensibile al traffico è disponibile sia a livello di percorso che a livello di tratto.
A livello di route, le informazioni sulla velocità del traffico sono fornite come SpeedReadingIntervals nel campo di risposta RouteTravelAdvisory.
Per ricevere informazioni sul traffico insieme alla polilinea della route, includi sia polyline
sia speedReadingIntervals
nella maschera del campo di risposta.
Se la maschera del campo contiene routes.legs.travelAdvisory.speedReadingIntervals
, la risposta conterrà i dati del traffico a livello di leg in
RouteLegTravelAdvisory.
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals
Per ulteriori dettagli su come specificare la maschera del campo di risposta, consulta la pagina "Scegli i campi da restituire".
Esempio di risposta
Se i valori speedReadingIntervals
vengono richiesti tramite la maschera del campo, vengono inseriti routes.travelAdvisory.speedReadingIntervals
.
Il traffico a livello di tratto è disponibile in routes.legs.travelAdvisory.speedReadingIntervals
.
Ogni intervallo è descritto dai relativi startPolylinePointIndex
, endPolylinePointIndex
e dalla categoria di velocità corrispondente.
Tieni presente che la mancanza di un indice iniziale nell'intervallo corrisponde all'indice 0 in conformità con le pratiche di 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" } ] } } ] }
Esegui il rendering delle polilinee sensibili al traffico con l'SDK Maps
Ti consigliamo di visualizzare sulla mappa le polilinee sensibili al traffico utilizzando le varie funzionalità offerte dagli SDK di Google Maps, tra cui colorazioni, tratti e motivi personalizzati lungo le polilinee. Per ulteriori dettagli sull'utilizzo delle polilinee, vedi Funzionalità polilinea per Android e Funzionalità polilinea per iOS.
Esempio di rendering Polilinea
Gli utenti di Maps SDK hanno l'opportunità di definire una logica di mappatura personalizzata tra le categorie di velocità e gli schemi di rendering delle poliline. Ad esempio, si potrebbe decidere di visualizzare la velocità "NORMAL" sotto forma di linea blu spessa sulla mappa, mentre la velocità "LENTA" potrebbe essere visualizzata come una linea spessa arancione e così via.
I seguenti snippet aggiungono una spessa polilinea blu con segmenti geodetici da Melbourne a Perth. Per ulteriori informazioni, vedi Personalizzazione dell'aspetto (per Android) e Personalizzare la Polilinea (per 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