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 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