Limiti di velocità

L'Roads API restituisce il limite di velocità registrato per un determinato segmento di strada. Nel caso di segmenti di strada con limiti di velocità variabili, viene restituito il limite di velocità predefinito per il segmento.

Non è possibile garantire l'accuratezza dei dati sui limiti di velocità restituiti dal Roads API. I dati sui limiti di velocità forniti non sono in tempo reale e potrebbero essere stimati, imprecisi, incompleti o obsoleti. Consulta i dettagli sulla copertura per vedere le regioni in cui sono disponibili i dati sui limiti di velocità.

Richieste

Invia le richieste per i limiti di velocità utilizzando HTTPS, nel seguente formato:

https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY

Utilizzo dei parametri

Parametri obbligatori

  • Un parametro path o placeId.

    • path : un elenco di un massimo di 100 coppie latitudine/longitudine che rappresentano un percorso. I valori di latitudine e longitudine devono essere separati da virgole. Le coppie latitudine/longitudine devono essere separate dal carattere barra verticale: "|". Quando fornisci il parametro path, l'API esegue prima lo snapping del percorso sulla strada più probabile percorsa da un veicolo (come fa per la snapToRoads richiesta), quindi determina il limite di velocità per il segmento di strada pertinente. Se non vuoi che l'API esegua lo snapping del percorso, devi passare un parametro placeId come spiegato di seguito. L'esempio seguente mostra il parametro path con tre coppie latitudine/longitudine: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.
    • placeId : gli ID luogo che rappresentano uno o più segmenti di strada. Assicurati che ogni ID luogo si riferisca a un segmento di strada e non a un tipo di luogo diverso. Puoi passare fino a 100 ID luogo con ogni richiesta. La risposta include un limite di velocità per ogni ID luogo nella richiesta.

      L'API non esegue lo snapping delle strade sugli ID luogo forniti. Puoi inviare una snapToRoads o nearestRoads richiesta per trovare gli ID luogo pertinenti e poi fornirli come input alla speedLimits richiesta. L'esempio seguente mostra il placeId parametro con due ID luogo: placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y

  • key : la chiave API della tua applicazione. La tua applicazione deve identificarsi ogni volta che invia una richiesta all' Roads API includendo una chiave API in ogni richiesta. Scopri come ottenere una chiave.

Parametri facoltativi

  • units : indica se restituire i limiti di velocità in chilometri o miglia all'ora. Può essere impostato su KPH o MPH. Il valore predefinito è KPH.

Risposte

I seguenti elementi potrebbero essere presenti in una risposta speedLimits:

  • speedLimits : un array di metadati delle strade. Ogni elemento è composto dai seguenti campi:
    • placeId : un identificatore univoco per un luogo. Tutti gli ID luogo restituiti da Roads API corrisponderanno a segmenti di strada.
    • speedLimit : il limite di velocità per quel segmento di strada.
    • units : restituisce KPH o MPH.
  • snappedPoints : un array di punti di snapping. Questo array è presente solo se la richiesta conteneva un parametro path. Ogni punto è composto dai seguenti campi:
    • location : contiene un valore latitude e longitude.
    • originalIndex : un numero intero che indica il valore corrispondente nella richiesta originale. Ogni valore nella richiesta deve essere mappato a un valore di snapping nella risposta. Questi valori sono indicizzati a partire da 0, quindi un punto con un originalIndex di 4 sarà il valore di snapping della quinta latitudine/longitudine passata al parametro path.
    • placeId : un identificatore univoco per un luogo. Tutti gli ID luogo restituiti da Roads API corrisponderanno a segmenti di strada. L'elemento placeId può essere passato in una richiesta di limiti di velocità per determinare il limite di velocità lungo quel segmento di strada.
  • warning_message : una stringa contenente un avviso visibile all'utente.

Esempio di richiesta che utilizza un percorso

Questa richiesta recupera il limite di velocità per ogni segmento di strada più vicino alle coppie latitudine/longitudine specificate in un percorso che attraversa il ponte Vasco da Gama a Lisbona, in Portogallo.

Richiesta

https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY

Risposta

{
  speedLimits:
  [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ],
  snappedPoints:
  [
    {
      location:
      {
        latitude: 38.75807927603043,
        longitude: -9.037417546438084
      },
      originalIndex: 0,
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE"
    },
    {
      location:
      {
        latitude: 38.689653701836896,
        longitude: -9.177051486847693
      },
      originalIndex: 1,
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU"
    },
    {
      location:
      {
        latitude: 41.13993011767777,
        longitude: -8.609400794783655
      },
      originalIndex: 2,
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M"
    }
  ],
  warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation."
}

Nella risposta sopra riportata, nota il messaggio di avviso relativo alla scarsità di punti. Se richiedi i limiti di velocità per i segmenti di strada più vicini in punti arbitrari, devi chiamare speedLimits con gli ID luogo recuperati dall' nearestRoads endpoint.

Esempio di richiesta che utilizza gli ID luogo

Anziché utilizzare le coppie latitudine/longitudine, puoi passare gli ID luogo dei segmenti di strada. Ti consigliamo di ottenere gli ID luogo per i segmenti di strada utilizzando le richieste snapToRoads o nearestRoads. Quando passi gli ID luogo, l'API restituisce il limite di velocità per il segmento di strada rappresentato da ogni ID luogo. L'API non applica lo snapping delle strade agli ID luogo forniti.

L'esempio seguente richiede i limiti di velocità per alcuni dei segmenti di strada che attraversano il ponte Vasco da Gama a Lisbona, in Portogallo.

Richiesta

https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY

Risposta

{
  "speedLimits": [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ]
}

Consigli per l'utilizzo

Per ridurre al minimo il volume di chiamate al servizio Speed Limit, ti consigliamo di campionare le posizioni delle risorse a intervalli di 5-15 minuti (il valore esatto dipende dalla velocità di spostamento di una risorsa). Se una risorsa è fissa, è sufficiente un singolo campione di posizione (non è necessario effettuare più chiamate).

Per ridurre al minimo la latenza complessiva, ti consigliamo di chiamare il servizio Speed Limit dopo aver accumulato alcuni dati, anziché chiamare l'API ogni volta che viene ricevuta la posizione di una risorsa mobile.

Perché mancano alcuni/tutti i limiti di velocità?

La causa più comune della mancanza di speedLimits è la richiesta del limite di velocità di un luogo che non è un segmento di strada.

L'esempio sopra riportato utilizza il ponte Vasco da Gama per illustrare i concetti; il ponte supporta la strada E90 che attraversa il Rio Tejo. Il ponte stesso ha un ID luogo ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Il primo segmento di strada nella risposta sopra riportata fa parte della strada E90 e ha un ID luogo ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Nella richiesta di esempio, se sostituisci l'ID luogo della strada con l'ID luogo del ponte, nella risposta saranno presenti solo due limiti di velocità nell'array speedLimits perché l'ID luogo del ponte non si riferisce a un singolo segmento di strada. Inoltre, se nessuno degli ID luogo è per i segmenti di strada, la risposta non conterrà limiti di velocità.

Quando effettui richieste di limiti di velocità utilizzando gli ID luogo, assicurati che ogni ID luogo si riferisca a un segmento di strada e non a un tipo di luogo diverso. Gli ID luogo per i singoli segmenti di strada vengono recuperati al meglio utilizzando le richieste snapToRoads o nearestRoads, che possono restituire più ID luogo da una singola chiamata.

Cosa succede se un segmento di strada pubblica limiti di velocità separati per auto e camion?

Il Roads API restituisce solo il limite di velocità registrato massimo per le automobili.