[Talk-it] OSMNavigator/API 0.5 e varie

Niko! niko at unina.it
Tue Oct 9 15:46:13 BST 2007


Salve a tutti,
molti di voi mi avevano contattato per ottenere una copia di OSMNavigator. 
Purtroppo non ho potuto accontentare quasi nessuno in quanto la versione 
alpha che era quasi pronta per il rilascio è stata resa inutilizzabile dalla 
migrazione della api alla versione 0.5. Anche se ciò ha invalidato di colpo 
il lavoro di quasi un anno di sviluppo, poco importa, anzi fosse stato per me 
avrei proposto una "trasformazione" ancora più radicale, in particolare 
diretta verso un modello completamente GIS, con un sistema per implementare 
la topologia ad un livello di astrazione superiore. Tale cosa nonostante 
discussa e ridiscussa innumerevoli volte sulla dev e talk list è sempre stata 
vista con molta riluttanza, nonostante gli innumerevoli benefici che ne 
deriverebbero. Anche con il nuovo modello non è possibile, ad esempio, fare 
query del tipo  "dammi tutte le motorways d'Italia", interrogazione 
pesantissima con l'attuale organizzazione dei dati, e banale con un db gis 
oriented. Una delle caratteristiche di osmnavigator era quella di creare una 
shadow copy dei dati in temporeale con geometrie gis, indicizzate 
spazialmente,  e successivamente impiegate per il rendering dei tiles, cosa 
estremamente vantaggiosa soprattutto a zoom level molto bassi, e vi assicuro 
che la differenza prestazionale è imparagonabile.
L'avversione ai modelli GIS in generale traspare in ogni dibattito, non ultimo 
quello avviato da Niccolo' Rigacci, che saluto cordialmente dopo la sua  
fortunatamente breve assenza da OSM. Anche secondo me il tag is_in è 
completamente inutile, in quanto può essere derivato tranquillamente con un 
operazione di intersezione fra aree e punti, nativa e veloce appunto su 
sistemi gis, e che è intrinsecamente più manutenibile, in quanto 
se "graficamente" il luogo d'interesse ed il confine amministrativo sono 
ben "posizionati" sulla mappa, la relazione di appartenenza è implicita. Cosa 
che non avviene con i tag is_in, la cui modifica ed i cui errori sono 
difficilmente riscontrabili, e legati comunque da relazioni fra stringhe, per 
non parlare dello spreco in termini di storage. Perdonatemi comunque la 
divagazione, torno sul tema che volevo proporre. Devo migrare osmnavigator al 
nuovo modello, e mi rendo conto che il passasggio alla nuova api rivoluziona 
il vecchio concetto di editing. Spariscono i segmenti, i concetti di 
orientamento, switch di direzione, reordering (finalmente!). Voglio dunque 
ridefinire una modalità di "editing" comunque intuitiva orientata in maniera 
estrema al newbie. Con la api 0.4 osmnavigator ci era riuscito 
abbondantemente (instabilità varie a parte). In particolare un grande punto 
di forza era la modalità di costruzione delle way, che poi ho ritrovato 
parzialmente in potlatch. In pratica attivata la modalità di costruzione way 
(un click), bastava clickare su N posizioni per ottenere una way di n-1 
segmenti. Al termine si riclickava sull'ultimo punto (o si premeva esc) e si 
apriva automaticamente un dialog che chiedeva la classificazione della way ed 
altre tag con alcune combobox.
Altra cosa carina era il reoreding in tempo reale dei segmenti della way 
editata in subpath elementari consecutivi, che permettava in modo 
semplicissimo di creare aree con buchi, senza alcuna ulteriore fatica (e 
soprattutto altri click :)  (c'è un esempio in uno screencast su youtube). 
Ora mi ritrovo che una way nel nuovo modello è un elemento molto più 
semplice, in pratica un unica polyline, e quindi per manipolare ad esempio le 
aree con buchi, o sempicemente ways che si diramano devo usare più ways 
multiple ed una relazione fra esse. Non so a questo punto cosa fare del 
vecchio ed intuitivo build mode, ed in particolare se riemularlo nascondendo 
all'utente la generazione automatica di nuove way con autogenerazione delle 
relazioni, o demandare tutto all'utente, lasciando solo la possibilità di 
editing delle way elementari.
Questo è soltanto uno degli punti che devo analizzare prima di passare 
all'implementazione vera e propria. Se a voi fa piacere possiamo effettuare 
un lavoro di analisi assieme in modo da avere una specie di "editor" su 
misura, GPL e svincolato da Java.

Dimenticavo, l'idea della conferenza a Roma è bellissima ma, qualora ci 
dovessero essere problemi organizzativi in tale sede potete contare anche su 
Napoli come sito di backup, dove avremmo sicuramente l'appoggio del Nalug e 
dell'Università Federico II.

ciao

	Niko




More information about the Talk-it mailing list