Risoluzione dei problemi

Errori

In caso di errore, verrà restituito un corpo della risposta di errore in formato standard e il codice di stato HTTP verrà impostato su uno stato di errore.

La risposta contiene un oggetto con un singolo oggetto error con le seguenti chiavi:

  • code: è uguale allo stato HTTP della risposta.
  • message: una breve descrizione dell'errore.
  • status: un codice di stato che indica la natura dell'errore.

Ad esempio, l'invio di un parametro placeId non valido restituirà il seguente errore:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

I possibili errori includono:

Codice Stato Messaggio Risoluzione dei problemi
400 INVALID_ARGUMENT La chiave fornita non è valida. La chiave API non è valida o non è stata inclusa nella richiesta. Assicurati di aver incluso l'intera chiave e di aver abilitato l'API per questa chiave.
400 INVALID_ARGUMENT "Il parametro "path" contiene un valore non valido: ☃" La tua richiesta conteneva argomenti non validi. Le cause più probabili di questo errore sono:
  • Un problema con il parametro path.
    Assicurati di avere almeno 1 e meno di 100 punti. Ogni punto deve essere una coppia di numeri separati da una virgola, ad esempio: 48.409114,-123.369158. I punti devono essere separati da una barra verticale: "|".
  • La tua richiesta includeva un placeId non valido.
  • La tua richiesta includeva sia placeId che un path. Per ogni richiesta può essere specificato solo uno di questi parametri.

Questo errore non verrà restituito se viene passato un placeId per una strada che non esiste più o per un luogo che non è una strada.

403 PERMISSION_DENIED La richiesta non registrata è stata bloccata. Registrati utilizzando Google Developers Console. La richiesta è stata rifiutata per uno o più dei seguenti motivi:
  • La chiave API è mancante o non valida.
  • La fatturazione non è stata abilitata sul tuo account.
  • È stato superato un limite di utilizzo autoimposto.
  • Il metodo di pagamento fornito non è più valido (ad esempio, una carta di credito è scaduta).

Per utilizzare i prodotti Google Maps Platform, la fatturazione deve essere abilitata sul tuo account e tutte le richieste devono includere una chiave API valida. Per risolvere il problema, segui questi passaggi:

404 NOT_FOUND Per questo servizio è obbligatorio HTTPS. Assicurati di inviare le richieste a https://roads.googleapis.com/ e non a http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED La richiesta è stata limitata perché sono stati raggiunti i limiti delle richieste del progetto. Hai superato il limite di richieste che hai configurato nella console di Google Cloud Platform. Questo limite viene in genere impostato come richieste al giorno, richieste ogni 100 secondi e richieste ogni 100 secondi per utente. Questo limite deve essere configurato in modo da impedire a un singolo utente o a un piccolo gruppo di utenti di esaurire la quota giornaliera, consentendo comunque un accesso ragionevole a tutti gli utenti. Consulta Limitazione dell'utilizzo dell'API per configurare questi limiti.

Backoff esponenziale

Quando le richieste non vanno a buon fine, devi assicurarti di riprovare con backoff esponenziale. Ad esempio, se una richiesta non va a buon fine una volta, riprova dopo un secondo, se non va a buon fine di nuovo, riprova dopo due secondi, poi quattro secondi e così via. In questo modo si garantisce che le richieste non funzionanti o gli errori su larga scala non sovraccarichino i server di Google, in quanto molti client tentano di ripetere le richieste molto rapidamente.

Domande frequenti sulla risoluzione dei problemi

Problemi di implementazione

Con quale frequenza devo campionare la posizione del mio veicolo?
È consigliabile un intervallo di 1-10 secondi per ottenere risultati di snap-to-road di alta qualità.
Esiste un limite al numero di punti che posso inviare per query?
Sì, una query può avere al massimo 100 punti.
Quale livello di precisione devo utilizzare per memorizzare le coppie di latitudine/longitudine istantanee?
Per garantire che i percorsi agganciati seguano le strade a tutti i livelli di zoom, anche a quello massimo, devi memorizzare le coppie di latitudine/longitudine agganciate con una precisione di 7 cifre decimali.
Posso utilizzare le polilinee codificate per visualizzare i percorsi agganciati?
Le polilinee codificate sono specificate solo con una precisione di 5 cifre decimali, il che comporta un errore di circa 2 metri. Pertanto, le polilinee codificate non sono adatte se vuoi che i percorsi agganciati seguano la strada a livelli di zoom elevati.

Problemi comuni

Alcuni punti non vengono agganciati o ho dei vuoti nei percorsi agganciati. Come posso correggere questo errore?
  • Se campioni i punti a intervalli di tempo, assicurati che i punti vengano campionati a intervalli più brevi (ogni 1-10 secondi). Se viene utilizzato un intervallo più lungo (ad esempio 60 secondi), l'algoritmo di snap to road potrebbe non essere in grado di determinare le strade percorse con sufficiente precisione.
  • Se fai clic manualmente su una mappa per creare punti, è molto facile creare percorsi con pochi punti o punti sparsi che l'algoritmo di snapping non gestisce bene. L'algoritmo di snapping funziona meglio per i punti vicini tra loro. Prova la demo Snap to Roads o utilizza lo strumento di ispezione delle strade per testare i tuoi percorsi.
Perché i miei percorsi agganciati sono irregolari o leggermente fuori strada quando ingrandisco?
  • Stai troncando la precisione delle coppie latitudine/longitudine acquisite prima di visualizzarle? L'archiviazione di coppie di latitudine/longitudine allineate con una precisione inferiore a 7 cifre decimali causa errori di precisione quando il percorso allineato viene visualizzato sulla mappa.
  • Utilizzi polilinee codificate? Le polilinee codificate troncano le coppie di latitudine/longitudine a 5 cifre decimali, il che introduce un errore di diversi metri, con conseguenti linee frastagliate o leggermente fuori strada a livelli di zoom elevati.

Se non si verifica nessuno dei casi precedenti, è possibile che i riquadri della mappa siano stati aggiornati di recente, causando la mancata sincronizzazione con l'indice stradale utilizzato per l'aggancio. Se solo alcune delle tue query sono interessate, è probabile che questa sia la causa. Poiché Google Maps viene aggiornato regolarmente, questo può accadere occasionalmente e può verificarsi più spesso se guardi regolarmente vecchi percorsi su una mappa (ad esempio, percorsi acquisiti diverse settimane fa). Per una visualizzazione ottimale, devi riposizionare i vecchi percorsi appena prima di mostrarli su una mappa, in modo da ridurre al minimo le incongruenze tra i riquadri della mappa e l'indice stradale utilizzato per il posizionamento.

Cosa potrebbe causare la visualizzazione errata del limite di velocità per la strada X?
I limiti di velocità provengono da diverse fonti che variano in termini di precisione e copertura. Se noti un pattern, ad esempio limiti di velocità per un particolare tipo di strada o in una particolare area che sono costantemente errati, segui questi passaggi per comunicarcelo:
  1. Apri Google Maps sul computer o l'app Google Maps per Android.
  2. Apri il menu laterale a sinistra.
  3. Seleziona Invia feedback. Nota: potrebbe esserti chiesto di accedere.
  4. Seleziona Modifica la mappa.
  5. Seleziona il segmento stradale che vuoi modificare.
  6. Seleziona Avanti.
  7. Nel campo "Altro", indica che il limite di velocità è errato per quella strada.
  8. Seleziona Invia.
Puoi anche segnalare altri problemi qui (ad esempio se la strada ha il nome errato, è disegnata in modo errato, è chiusa o privata).
Perché il percorso agganciato taglia gli angoli anziché seguire la strada?
Per risolvere il problema, verifica quanto segue:
  • Assicurati che il parametro interpolate sia impostato su true.
  • Verifica che i punti dati originali vengano campionati a intervalli sufficientemente ravvicinati (ogni 1-10 secondi).
Perché nel percorso agganciato per una strada senza variazioni del limite di velocità vengono restituiti molti segmenti stradali?
Quando il parametro interpolate è impostato su true, la query di allineamento alla strada restituisce una polilinea che segue la strada in corrispondenza di angoli, curve e rotonde. Se la strada è curva, vengono restituiti più segmenti stradali anche se il limite di velocità non cambia, in modo da creare una polilinea che segue da vicino la geometria della strada.