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 della polilinea di risposta. Gli intervalli sono definiti dagli indici dei punti della polilinea di inizio (inclusivo) e fine (esclusivo).

Esempio di richiesta

La polilinea che tiene conto del traffico è disponibile sia a livello di percorso che di tratta. 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 sia polyline che 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 tratta 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 sulla specifica della maschera del campo di risposta, consulta "Scegliere i campi da restituire".

Esempio di risposta

Se speedReadingIntervals vengono richiesti tramite la maschera del campo, vengono compilati in routes.travelAdvisory.speedReadingIntervals. Il traffico a livello di tratta è disponibile in routes.legs.travelAdvisory.speedReadingIntervals. Ogni intervallo è descritto da startPolylinePointIndex, endPolylinePointIndex e dalla categoria di velocità corrispondente. Tieni presente che la mancanza dell'indice iniziale all'interno dell'intervallo corrisponde all'indice 0 in conformità con le pratiche 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 delle polilinee che tengono conto del traffico con Maps SDK

Ti consigliamo di visualizzare le polilinee che tengono conto del traffico sulla mappa utilizzando le varie funzionalità offerte da Google Maps SDK, tra cui colorazione, tratti e pattern personalizzati lungo le estensioni della polilinea. Per ulteriori dettagli sull'utilizzo delle polilinee, consulta Funzionalità delle polilinee per Android e Funzionalità delle polilinee per iOS.

Esempio di rendering della polilinea

Gli utenti di Maps SDK hanno la possibilità di definire una logica di mappatura personalizzata tra le categorie di velocità e gli schemi di rendering della polilinea. Ad esempio, potresti decidere di visualizzare la velocità "NORMAL" come una linea blu spessa sulla mappa, mentre la velocità "SLOW" potrebbe essere visualizzata come una linea arancione spessa e così via.

I seguenti snippet aggiungono una polilinea blu spessa con segmenti geodetici da Melbourne a Perth. Per ulteriori informazioni, consulta Personalizzare l'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