Ciao a tutti! Come accennato qualche post addietro, nei giorni di ferie dopo natale mi è venuta l'ispirazione e mi son messo sotto.
Volevo dare una
rinfrescata alla grafica dei menu per renderli un po' più moderni, senza rompere con l'idea di lasciare più spazio possibile alla mappa, ma considerando che alcuni pulsanti/opzioni sono difficili da usare sul telefono
Ecco come apparirà il pannello dove si vedono i punti dei percorsi e distanze, spero sia anche più intuitivo che cliccando sulle distanze/intertempi si cicla dal punto precedente, dall'ultima pausa (segnalini grigi) o dall'ultimo stop/inizio (segnalini neri) - in molti ignorano questa funzionalità!
C'è poi un problema strutturale che volevo affrontare, ve lo spiego. Per avere dei tempi di calcolo veloci (di certo non ho le risorse che ha google...), i nodi stradali vengono pre-processati per produrre dei grafi che contengo già i percorsi tra i nodi principali a seconda delle combinazioni scelte (più veloce, con autostrade etc). Questo processo impiega 8-10 ore di calcolo per preparare ciascuna combinazione, e poi ognuna di queste richiede in esecuzione una decina di GB di memoria Ram (per l'Europa). Tutte le combinazioni possibili (più veloci, più corto, autostrade, strade veloci, traghetti) generano un numero (precisamente 16) di grafi che richiederebbero oltre 160GB nel server.
Per fortuna la maggior parte (>80%) dei percorsi generati da mappite riguardano la combinazione "più veloce, con pedaggi e traghetti" o "più veloce senza pedaggi e con traghetti", per cui in passato mi sono concentrato su queste due delegando il calcolo delle altre ad un servizio esterno (gentilmente offerto dall'Heidelberg University, ORS -
https://openrouteservice.org). Il problema di quest'ultimo è che lo stradario (il grafo) non è aggiornato molto spesso e alcuni settaggi sono differenti da mappite (es. velocità di percorrenza, penalità alle svolte, poi non permettere di passare attraverso passi chiusi d'inverno, e su guadi etc - e di guadi normalmente transitabili (specie in Friuli dove bazzico sogni tanto) ce ne sono parecchi.
Tutta questa pappardella per spiegare come mai se oggi fate un percorso in terraferma con l'opzione "con traghetti" attiva (quindi il percorso lo calcola Mappite) o "senza traghetti" (quindi l percorso lo calcola ORS), anche se di traghetti non ce n'è traccia, vi potete trovare due risultati differenti.
Era ora di avere dei server più corazzati per poter gestire più opzioni direttamente e così ho fatto, cogliendo l'opportunità di fare aggiornamenti a tutto lo stack software utilizzato, incluso il "motore" di calcolo (lo stupendo progetto open source
https://www.graphhopper.com/ ). Questo negli anni è evoluto ed ha richiesto vario tempo per capire come far rifunzionare tutto.
Tornando al discorso traghetti, è una continua fonte di segnalazioni, perchè ci si dimentica che i traghetti gratis non esistono: quindi togliendo i pedaggi non verranno considerati neppure i traghetti.
Quindi perchè non sacrificare l'opzione traghetti si/no e affrontare un tema che mi stava più a cuore:
strade curvose e
strade sterrate.
Dopo un po' di prove ecco in anteprima come si presenterà la possibilità di scegliere tra diversi livelli di "curvosità" o di "sterratosità" (passatemi il termine):
Un paio di esempi
Strade curvose: da Enego ad Agordo, la strada più veloce (o anche la più corta) vi porterebbe a percorrere la valle di Feltre:
mentre la strada più curvosa vi fa prima salire per le scalette di Primolano, che non fanno mai male come riscaldamento, e poi su verso il passo Cereda:
Sterrate: nell'altopiano di Asiago, da Enego al capoluogo c'è quasi una sola opzione via asfalto:
ma con qualche sterrato si va allegramente in giro per baite:
Tutto sembra funzionare, anche se ci sarà bisogno di test approfonditi per validare il tutto, ogni percorso ha le sue peculiarità e i risultati non sono sempre quelli che ci si aspetta.
Tecnicamente l'algoritmo di calcolo assegna delle penalità a tutte le strade che non rientrano nella categoria e quindi preferisce le altre. La curvosità è ottenuta confrontando la distanza degli estremi di ogni tratto stradale con la loro percorrenza effettiva: più differisce, più la strada è curvosa. I livelli penalizzano più o meno le strade con un certo rapporto di "curvosità". Allo stesso modo le strade "pavimentate" vengono penalizzate in modo da preferire una strada sterrata, se disponibile nelle vicinanze. Un aggiornamento su cui lavorerò a breve è quello di indicare chiaramente quali sono i tratti sterrati.
Il fatto di lasciar selezionare il livello ha un grande impatto sulla velocità di calcolo: inizialmente i percorsi avranno un limite (150km per tratta o 500km in totale), noterete che il calcolo impiega qualche secondo invece di essere quasi istantaneo. In base ai test, può essere che una delle due opzioni non sarà disponibile da subito.
Preso dall'euforia ho poi modificato alcune cosette minori:
- la linea verde del percorso aumenta la trasparenza (e lo spessore) man mano che si fa lo zoom, così sarà possibile vedere il tipo di strada che c'è sotto
- ci saranno dei tooltip (suggerimenti) che appaiono nelle opzioni/segnalini per guidare chi è nuovo su alcune funzionalità
- appare un pulsante per "installare" mappite (mappite non è una vera e propria app, non funziona offline, ma se si installa vi appare una comoda icona sul telefono o sul desktop che poi lo aprirà full screen)
- (per gli utenti registrati) appare la data di registrazione nel pannello della nuvoletta
- per copiare il link (breve) al percorso, ora c'è un pulsante che se premuto lo copia nella clipboard (i.e. non è necessario selezionarlo e copiarlo)
- dovrei aver sistemato l'avviso su google maps, su telefoni permette fino a 25 punti ma non di più altrimenti google maps si blocca
- ci sarà come già annunciato un miglior supporto per OsmAnd, in modo da esportare esattamente il percorso mostrato da mappite:

Al momento sto finendo alcuni test, ma tra una-due settimane al massimo pubblicherò qui su qde il sito "beta" e se qualche anima pia vorrà fare delle validazioni lo ringrazio in anticipo!

