Richiesta di informazioni sul traffico sulla polilinea

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 del polilinea di risposta. Gli intervalli sono definiti dagli indici dei punti della polilinea iniziale (inclusi) e finale (esclusivi).

Richiesta di esempio

Il polilinea sensibile al traffico è disponibile sia a livello di percorso che di tratto. A livello di percorso, le informazioni sulla velocità del traffico vengono fornite come SpeedReadingIntervals nel campo di risposta RouteTravelAdvisory. Per ricevere informazioni sul traffico insieme alla polilinea del percorso, includi polyline e speedReadingIntervals nella maschera del campo di risposta.

Se la maschera del campo contiene routes.legs.travelAdvisory.speedReadingIntervals, la risposta conterrà i dati sul traffico a livello di tratto in RouteLegTravelAdvisory.

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals

Consulta la pagina "Scegli i campi da restituire" per ulteriori dettagli sulla specifica della maschera di campo della risposta.

Esempio di risposta

Se i criteri speedReadingIntervals vengono richiesti tramite la maschera dei campi, questi vengono compilati in routes.travelAdvisory.speedReadingIntervals. Il traffico a livello di tappa è disponibile in routes.legs.travelAdvisory.speedReadingIntervals. Ogni intervallo è descritto dai relativi startPolylinePointIndex, endPolylinePointIndex e dalla categoria di velocità corrispondente. Tieni presente che l'assenza dell'indice di inizio all'interno dell'intervallo corrisponde all'indice 0 in conformità con le norme 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"
          }
        ] 
      }
    }
  ]
}

Eseguire il rendering di polilinee sensibili al traffico con l'SDK Maps

Ti consigliamo di visualizzare le polilinee sensibili al traffico sulla mappa utilizzando le varie funzionalità offerte dagli SDK di Google Maps, tra cui colorazioni, tratti e motivi personalizzati lungo i tratti delle polilinee. Per ulteriori dettagli sull'uso delle polilinee, vedi Funzionalità di Polyline per Android e Funzionalità di Polyline 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 polilinee. Ad esempio, puoi decidere di mostrare la velocità "NORMALE" con una linea blu spessa sulla mappa, mentre la velocità "LENTE" può essere visualizzata con una linea arancione spessa e così via.

I seguenti snippet aggiungono un polilinea blu spesso con segmenti geodetici da Melbourne a Perth. Per saperne di più, consulta Personalizzare l'aspetto (per Android) e Personalizzare il tratto 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