Best practice per l'API Isochrone

Uniformità e fedeltà

Puoi personalizzare l'aspetto e la precisione dei poligoni di output utilizzando i parametri polygon_fidelity e enable_smoothing. Sebbene queste opzioni siano indipendenti, funzionano insieme per determinare la forma finale.

  • polygon_fidelity: risoluzione. Controlla le dimensioni delle celle della griglia sottostante (celle S2) utilizzate per calcolare l'area raggiungibile.
    • LOW: utilizza celle della griglia più grandi. Ideale per coprire aree di grandi dimensioni senza spazi vuoti, con una forma generalizzata.
    • MEDIUM: precisione bilanciata.
    • HIGH: utilizza celle della griglia più piccole. Produce un adattamento più preciso alla rete stradale, ma potrebbe generare aree vuote o "buchi" dove la rete stradale è scarsa.
    • Predefinito: se non viene specificato, il servizio seleziona dinamicamente la fedeltà in base alla durata del viaggio richiesta.
  • enable_smoothing: l'estetica. Controlla se gli spigoli vivi delle celle della griglia definite dalla fedeltà vengono arrotondati.
    • false (non elaborato): restituisce il calcolo geometrico esatto. I bordi appaiono frastagliati o a gradoni, riflettendo le celle della griglia. Ideale per l'accuratezza analitica, ad esempio per i test punto-in-poligono rigorosi.
    • true (uniformato): applica un algoritmo di post-elaborazione per arrotondare gli angoli. Ideale per la visualizzazione sulle mappe.

Come interagiscono: la fedeltà imposta il dettaglio di base su cui agisce l'algoritmo di uniformità.

  • Fedeltà elevata + uniformità: produce una forma dettagliata e dall'aspetto organico che segue da vicino le estremità delle strade.
  • Fedeltà bassa + uniformità: produce una forma a "blob" ampia e generalizzata.

Dimensioni del payload e rendering

Le isocrone di grandi dimensioni possono contenere migliaia di coordinate e i payload possono variare da 300 a 500 kilobyte.

  • Larghezza di banda: tieni presente che le dimensioni della risposta JSON sono significative per le richieste di durata massima.
  • Rendering: il rendering di poligoni estremamente dettagliati influisce sulle prestazioni. Valuta la possibilità di utilizzare il parametro enable_smoothing o le librerie di semplificazione lato client per ridurre il numero di vertici per la visualizzazione.

Gestione degli errori

Implementa la logica per i nuovi tentativi con backoff esponenziale per gli errori del server 5xx. Tuttavia, non riprovare a eseguire gli errori del client 4xx senza modificare i parametri:

  • INVALID_ARGUMENT (400): verifica che la durata sia positiva e rientri nel limite per la modalità selezionata, ovvero al massimo 3600 secondi per DRIVE o 7200 secondi per le altre modalità.
  • NOT_FOUND (404): il punto di origine non è riuscito ad allinearsi a una strada. Prova ad avvicinare la coordinata a una strada nota o assicurati che la regione sia supportata.