<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Il giorno 27 settembre 2013 23:23, marco bra <span dir="ltr"><<a href="mailto:marcobra.ubuntu@gmail.com" target="_blank">marcobra.ubuntu@gmail.com</a>></span> ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Groppo, non ho usato il tuo script, ma l'ho provato ed e' potente,<br>
sarebbero da discriminare alcune liste di parole... che non vanno<br>
maiuscole... "di", "del" etc.<br></blockquote><div><br></div><div>Sì, il mio era un esempio per far vedere cosa si può fare.<br>Lo si può modificare/migliorare in base alle proprie esigenze.<br><br>
</div><div>Ad esempio, con le modifiche qui sotto (vedi "### aggiunta"), tiene conto di alcune preposizioni ed alla fine stampa sul terminale la lista dei nomi e le loro conversioni.<br></div><div><br><br>#codice script<br>
"""<br>Capitalize words of "name=*" tags in JOSM<br>"""<br><br>import sys<br>from javax.swing import JOptionPane<br>from org.openstreetmap.josm import Main<br><br>def getMapView():<br>
if Main.main and Main.main.map:<br> return Main.main.map.mapView<br> else:<br> JOptionPane.showMessageDialog(Main.parent, "Apri dei dati, prima di eseguire lo script.")<br> sys.exit(1)<br>
<br>#### aggiunta<br>prepositions = [" di ", " del ", " della ", " delle "]<br><br>mv = getMapView()<br>if mv and mv.editLayer and mv.editLayer.data:<br> dataset = mv.editLayer.data<br>
elements = []<br> elements.extend(dataset.nodes)<br> elements.extend(dataset.ways)<br> elements.extend(dataset.relations)<br> <br> #For each OSM object in the dataset<br> for element in elements:<br>
tags = element.getKeys()<br> if len(tags) != 0:<br> if "name" in tags:<br> #capitalize words of "name" value<br> oldName = element.get("name")<br>
newName = oldName.title()<br> <br> #### aggiunta<br> for prep in prepositions:<br> newName = newName.replace(prep.title(), prep.lower())<br>
tags["name"] = newName<br>
<br> #Print names to terminal<br> print "%s ---> %s" % (oldName, newName)<br> #Update element tags<br> element.setKeys(tags)<br><br>
JOptionPane.showMessageDialog(Main.parent, "Done.")<br><br></div></div></div></div>