[Talk-it] XML scritto a mano... come si carica sul server?

Carlo Stemberger carlo.stemberger at gmail.com
Fri Nov 14 07:19:41 GMT 2008


Dando un'occhiata a Tagwatch Italy[1], ho visto che c'era un errore 
molto diffuso per quanto riguarda il tag cycleway="track", che era 
inserito come cycleway="track " (spazio di troppo) più di 750 volte.

Allora ho scaricato il file .osm, l'ho aperto con Merkaartor, e mi sono 
accorto che l'errore era ben più grave: il tag era stato inserito su 
ogni singolo nodo del sentiero, e non è presente nessuna way!

A quel punto mi sono chiesto se fosse possibile correggere l'errore e mi 
sono messo ad analizzare la struttura XML di OSM (che non avevo mai 
approfondito); andando per tentativi (creandomi degli esempi man mano un 
po' più complessi) ho capito che in pratica basta aggiungere in alto, 
sopra ai tag dei nodi, il tag <way> contenente il riferimento a tutti i 
nodi che poi vengono descritti sotto.

Quindi, dopo aver suddiviso in 2 nuovi file il file scaricato (perché in 
realtà i sentieri sono 2), sono arrivato a scrivere questi comandi per 
estrarre i dati da mettere in cima:

 for i in $(grep "node id" primo.osm | cut -f 4 -d " " | sed -e 
's/id/ref/g'); do echo "    <nd "$i"/>"; done  | sort > nodiprimo.txt

(e la stessa cosa per il secondo sentiero)

Poi ho aperto i 2 file, ho creato i tag <way> e ci ho piazzato dentro i 
2 elenchi ottenuti (ovviamente si poteva fare tutto direttamente con uno 
script, ma al momento sono una capra in questo settore...).

Infine ho provato ad aprire i 2 file "corretti" con Merkaartor, e tutto 
sembrava perfetto. Peccato che adesso non riesca a caricare sul server 
la nuova way: tutti i nodi (a cui ho rimosso tutti i tag) sono stati 
aggiornati, ma quando cerco di caricare la way mi vien detto:

> There was an error uploading this request (404)
>
> Server message is 'Not Found'
>

La way del primo sentiero ha questo id:
  <way id="{9dc2eba1-8d97-4170-b049-19ab82fe34d3}">

la del seconda:
  <way id="{9dc2eba1-8d97-4170-b049-19ab82fe34d5}">

(sono dei valori che ho messo abbastanza a caso seguendo ciò che produce 
normalmente Merkaartor)

Immagino che il problema stia lì: si può correggere?

Ovviamente non è che ci tenga particolarmente a quei 2 sentieri (anche 
se adesso sono ormai quasi recuperati), era solo un'occasione per 
mettere il naso ad un livello un po' più basso.

Grazie!

-- 
 .'  `.   | Registered Linux User #443882
 |a_a  |  | http://counter.li.org/                      .''`.
 \<_)__/  +---                                         : :'  :
 /(   )\                                          ---+ `. `'`
|\`> < /\                  Registered Debian User #9 |   `-
\_|=='|_/       http://debiancounter.altervista.org/ |





More information about the Talk-it mailing list