SlideShare a Scribd company logo
JOSM per “ninja”
Parliamo di QA
Quando Overpass non funziona?
Overpass per la QA
PRO
1. Flessibile
2. Riproducibile
3. Aree grandi
CONS
1. Collezione di query “personali”
2. Esecuzione una tantum
3. Errori già su OSM
4. Non “portabile”
SOLUZIONI
Istituire un archivio di query condivise per la QA
su Wiki
Validatore di JOSM per la QA
PRO
1. Riproducibile
2. Eseguito sempre prima della commit
(=prevenzione dell’errore)
3. Versatile (MapCSS usato anche in altri
progetti, come Osmose)
CONS
1. “hard-coded”
2. Aree piccole
3. Non scalabile su PC (risorse limitate)
SOLUZIONI
Usare delle regole esterne per estendere le
funzionalità di JOSM
https://josm.openstreetmap.de/wiki/Rules
https://github.com/fansanelli/map-this-way
MapCSS
Un linguaggio CSS-like per mappe
CSS - Cascading Style Sheets
In italiano fogli di stile a cascata, linguaggio di markup utile per definire le regole di utilizzo dei font, colori e layout.
Cos’è a cascata[1]? “Il processo di combinare diversi fogli di stile e risolvere conflitti tra essi” (Håkon Wium Lie).
Composizione: regole, proprietà, commenti
Esempio di regola:
Specifica
https://wiki.openstreetmap.org/wiki/MapCSS/0.2
Implementazione
https://josm.openstreetmap.de/wiki/Help/Styles/MapCSSImplementation
https://josm.openstreetmap.de/wiki/Help/Validator/MapCSSTagChecker
SFIDA
Ho appena installato JOSM per mappare la mia cascina (immaginaria):
SEGUE DEMO
al termine della quale, voglio sapere da voi quanti errori ho fatto!
Avete risposto correttamente?
/* mtw randomhighwayservice */
way[highway!=service][service] {
throwWarning: tr("{0} not {1}", "{0.key}", "{1.key}");
group: "MapThisWay";
}
1. In verde il commento
2. In giallo il selettore
3. In rosso il tipo (es. way, node, relation, area, line, canvas, *)
4. in blu i tag ed in marrone i valori
5. in rosa il blocco delle dichiarazioni
6. le proprietà throwWarning e group sono specifiche di JOSM
7. notare il valore tr(...) per gestire traduzioni con String.format
/* mtw addressonbuilding */
way[building][tag_regex("^addr:*")][inside("IT")] {
throwWarning: tr("building with addr:*");
group: "MapThisWay";
}
1. l’espressione tag_regex è un “eval” (espressione “valutata”) e esegue la regular expression sull’elenco delle chiavi (non sui valori)
2. “inside” è un selettore speciale (selettore di territorio) e serve per limitare un controllo per codice nazione
/* mtw onelanenooneway - Suggested by Volker */
way[highway][lanes<2][!oneway][!junction] {
throwWarning: tr("{0} {1}<{2} without {3}", "{0.key}", "{1.key}", "{1.value}",
"{2.key}");
group: "MapThisWay";
}
/* mtw onelanenopassingplaces - Suggested by Andrea Musuruane */
way[highway][lanes<2][oneway=no][passing_places!=yes] {
throwWarning: tr("{0} {1}<{2} with {3} without {4}", "{0.key}", "{1.key}",
"{1.value}", "{2.tag}", "{3.tag}");
group: "MapThisWay";
fixAdd: "passing_places=yes";
}
1. fixAdd è una proprietà particolare che attiva il tasto “Correggi” su JOSM e aggiunge (o sostituisce) un tag con un altro.
/* mtw invaliddug - suggested by canfe */
way[highway][highway != "cycleway"][highway != "path"][name][name !~
/^(?i)(arco|autostrada|belvedere|calata|calle|cavalcavia|circonvallazione|corso|corte|cort
ile|discesa|galleria|gradinata|larghetto|largo|litoranea|lungargine|lungo[a-
z]+|molo|parcheggio|passaggio|passeggiata|percorso ciclabile|percorso
ciclopedonale|percorso pedonale|piazza|piazzale|piazzetta|pista
ciclabile|ponte|raccordo|rampa|ronco|rotatoria|rotonda|salita|scalinata|scesa|sentiero|sla
rgo|sottopasso|sovrappasso|spiazzo|strada|strada antica|strada comunale|strada
consortile|strada nuova|strada panoramica|strada poderale|strada privata|strada
provinciale|strada regionale|strada statale|strada vecchia|strada
vicinale|stradella|stradello|stradone|tangenziale|traversa|traversa
privata|via|viadotto|via antica|via comunale|via nazionale|via nuova|via panoramica|via
privata|via provinciale|via vecchia|viale|vialetto|vico|vico chiuso|vico cieco|vico
privato|vicoletto|vicolo|vicolo chiuso|vicolo cieco|vicolo privato|viottolo)[
]/][inside("IT")] {
throwWarning: tr("unusual value of {0}", "{1.key}");
group: "MapThisWay";
}
/* mtw farmyardwithoutfarm - Suggested by Andrea Musuruane */
*[place=farm] ⊈ area:closed2[landuse=farmyard] {
throwWarning: tr("{0} without place=farm", "{1.tag}");
group: "MapThisWay";
}
1. “:closed2” è una pseudo-classe che controlla che il primo nodo e l’ultimo coincidano anche se non sono stati scaricati tutti gli elementi del
poligono
2. ⊈ è un operatore per verificare che un elemento sia uguale o parte di un altro
Come partecipare?
Grazie per l’attenzione
FINE

More Related Content

Similar to JOSM per “ninja”

Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayStudiabo
 
OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...
OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...
OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...Data Driven Innovation
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)PgTraining
 
Web base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di baseWeb base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di baseAnnalisa Vignoli
 
Media Queries Next Level
Media Queries Next LevelMedia Queries Next Level
Media Queries Next LevelCarmine Alfano
 
GWT vs CSS3
GWT vs CSS3GWT vs CSS3
GWT vs CSS3GWTcon
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptSinergia Totale
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017Gianluca Hotz
 
Drupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e DrupalDrupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e DrupalDrupalDay
 
Lez. 1 - Corso di Modelli e GIS per l'ambiente
Lez. 1 - Corso di Modelli e GIS per l'ambiente Lez. 1 - Corso di Modelli e GIS per l'ambiente
Lez. 1 - Corso di Modelli e GIS per l'ambiente Margherita Di Leo
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozartfede
 
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...LeonardoIurada
 
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...Codemotion
 
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...Codemotion
 
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Federico Feroldi
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meetingguest67beeb9
 

Similar to JOSM per “ninja” (20)

Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
 
OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...
OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...
OpenStreetMap - Sfide e opportunità degli open-geodata per creare contenuti a...
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)
 
OpenStreetMap per il web
OpenStreetMap per il webOpenStreetMap per il web
OpenStreetMap per il web
 
Web base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di baseWeb base - Javascript (Node.js): Elementi di base
Web base - Javascript (Node.js): Elementi di base
 
Media Queries Next Level
Media Queries Next LevelMedia Queries Next Level
Media Queries Next Level
 
GWT vs CSS3
GWT vs CSS3GWT vs CSS3
GWT vs CSS3
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017
 
Drupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e DrupalDrupal Day 2011 - Node.js e Drupal
Drupal Day 2011 - Node.js e Drupal
 
Lez. 1 - Corso di Modelli e GIS per l'ambiente
Lez. 1 - Corso di Modelli e GIS per l'ambiente Lez. 1 - Corso di Modelli e GIS per l'ambiente
Lez. 1 - Corso di Modelli e GIS per l'ambiente
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozart
 
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...Summary of “The Case for Writing Network Drivers in High-Level Programming La...
Summary of “The Case for Writing Network Drivers in High-Level Programming La...
 
Rest sdk
Rest sdkRest sdk
Rest sdk
 
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
 
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
 
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
 
08 mapreduce
08   mapreduce08   mapreduce
08 mapreduce
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 

More from Andrea Musuruane

La numerazione civica in OSM
La numerazione civica in OSMLa numerazione civica in OSM
La numerazione civica in OSMAndrea Musuruane
 
Il partimonio culturale in OSM
Il partimonio culturale in OSMIl partimonio culturale in OSM
Il partimonio culturale in OSMAndrea Musuruane
 
Il modello dei dati di OpenStreetMap per principianti
Il modello dei dati di OpenStreetMap per principiantiIl modello dei dati di OpenStreetMap per principianti
Il modello dei dati di OpenStreetMap per principiantiAndrea Musuruane
 
Un'introduzione a OpenStreetMap
Un'introduzione a OpenStreetMapUn'introduzione a OpenStreetMap
Un'introduzione a OpenStreetMapAndrea Musuruane
 
Analisi sui mapper di Biellese, Vercellese e Canavese
Analisi sui mapper di Biellese, Vercellese e CanaveseAnalisi sui mapper di Biellese, Vercellese e Canavese
Analisi sui mapper di Biellese, Vercellese e CanaveseAndrea Musuruane
 
Complete the map - Parte II
Complete the map - Parte IIComplete the map - Parte II
Complete the map - Parte IIAndrea Musuruane
 
Gli Open Data della Provincia di Biella per il miglioramento di OpenStreetMap
Gli Open Data della Provincia di Biella per il miglioramento di OpenStreetMapGli Open Data della Provincia di Biella per il miglioramento di OpenStreetMap
Gli Open Data della Provincia di Biella per il miglioramento di OpenStreetMapAndrea Musuruane
 
Roberta Castelli - OSM al servizio dell'infomobilità
Roberta Castelli - OSM al servizio dell'infomobilitàRoberta Castelli - OSM al servizio dell'infomobilità
Roberta Castelli - OSM al servizio dell'infomobilitàAndrea Musuruane
 
Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...
Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...
Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...Andrea Musuruane
 
Stefano Campus - Scegliere il software (geografico) libero e vivere felici
Stefano Campus - Scegliere il software (geografico) libero e vivere feliciStefano Campus - Scegliere il software (geografico) libero e vivere felici
Stefano Campus - Scegliere il software (geografico) libero e vivere feliciAndrea Musuruane
 
OpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del MondoOpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del MondoAndrea Musuruane
 
OpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del MondoOpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del MondoAndrea Musuruane
 
Ferruccio Cantone - Introduzione a Mapillary
Ferruccio Cantone - Introduzione a MapillaryFerruccio Cantone - Introduzione a Mapillary
Ferruccio Cantone - Introduzione a MapillaryAndrea Musuruane
 
OpenStreetMap ed escursionismo
OpenStreetMap ed escursionismoOpenStreetMap ed escursionismo
OpenStreetMap ed escursionismoAndrea Musuruane
 

More from Andrea Musuruane (20)

La numerazione civica in OSM
La numerazione civica in OSMLa numerazione civica in OSM
La numerazione civica in OSM
 
Errori comuni in OSM
Errori comuni in OSMErrori comuni in OSM
Errori comuni in OSM
 
Il partimonio culturale in OSM
Il partimonio culturale in OSMIl partimonio culturale in OSM
Il partimonio culturale in OSM
 
Il modello dei dati di OpenStreetMap per principianti
Il modello dei dati di OpenStreetMap per principiantiIl modello dei dati di OpenStreetMap per principianti
Il modello dei dati di OpenStreetMap per principianti
 
Un'introduzione a OpenStreetMap
Un'introduzione a OpenStreetMapUn'introduzione a OpenStreetMap
Un'introduzione a OpenStreetMap
 
Analisi sui mapper di Biellese, Vercellese e Canavese
Analisi sui mapper di Biellese, Vercellese e CanaveseAnalisi sui mapper di Biellese, Vercellese e Canavese
Analisi sui mapper di Biellese, Vercellese e Canavese
 
Complete the map - Parte II
Complete the map - Parte IIComplete the map - Parte II
Complete the map - Parte II
 
OSM Quality Assurance
OSM Quality AssuranceOSM Quality Assurance
OSM Quality Assurance
 
Gli Open Data della Provincia di Biella per il miglioramento di OpenStreetMap
Gli Open Data della Provincia di Biella per il miglioramento di OpenStreetMapGli Open Data della Provincia di Biella per il miglioramento di OpenStreetMap
Gli Open Data della Provincia di Biella per il miglioramento di OpenStreetMap
 
Roberta Castelli - OSM al servizio dell'infomobilità
Roberta Castelli - OSM al servizio dell'infomobilitàRoberta Castelli - OSM al servizio dell'infomobilità
Roberta Castelli - OSM al servizio dell'infomobilità
 
OsmAnd - Linux Day 2019
OsmAnd - Linux Day 2019OsmAnd - Linux Day 2019
OsmAnd - Linux Day 2019
 
Open data e OpenStreetMap
Open data e OpenStreetMapOpen data e OpenStreetMap
Open data e OpenStreetMap
 
Complete The Map
Complete The MapComplete The Map
Complete The Map
 
Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...
Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...
Stefano Campus - La rappresentazione della realtà attraverso la cartografia e...
 
Stefano Campus - Scegliere il software (geografico) libero e vivere felici
Stefano Campus - Scegliere il software (geografico) libero e vivere feliciStefano Campus - Scegliere il software (geografico) libero e vivere felici
Stefano Campus - Scegliere il software (geografico) libero e vivere felici
 
OpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del MondoOpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del Mondo
 
OpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del MondoOpenStreetMap - La mappa libera del Mondo
OpenStreetMap - La mappa libera del Mondo
 
Openstreetmap QA
Openstreetmap QAOpenstreetmap QA
Openstreetmap QA
 
Ferruccio Cantone - Introduzione a Mapillary
Ferruccio Cantone - Introduzione a MapillaryFerruccio Cantone - Introduzione a Mapillary
Ferruccio Cantone - Introduzione a Mapillary
 
OpenStreetMap ed escursionismo
OpenStreetMap ed escursionismoOpenStreetMap ed escursionismo
OpenStreetMap ed escursionismo
 

JOSM per “ninja”

  • 2. Parliamo di QA Quando Overpass non funziona?
  • 3. Overpass per la QA PRO 1. Flessibile 2. Riproducibile 3. Aree grandi CONS 1. Collezione di query “personali” 2. Esecuzione una tantum 3. Errori già su OSM 4. Non “portabile” SOLUZIONI Istituire un archivio di query condivise per la QA su Wiki
  • 4. Validatore di JOSM per la QA PRO 1. Riproducibile 2. Eseguito sempre prima della commit (=prevenzione dell’errore) 3. Versatile (MapCSS usato anche in altri progetti, come Osmose) CONS 1. “hard-coded” 2. Aree piccole 3. Non scalabile su PC (risorse limitate) SOLUZIONI Usare delle regole esterne per estendere le funzionalità di JOSM https://josm.openstreetmap.de/wiki/Rules https://github.com/fansanelli/map-this-way
  • 6. CSS - Cascading Style Sheets In italiano fogli di stile a cascata, linguaggio di markup utile per definire le regole di utilizzo dei font, colori e layout. Cos’è a cascata[1]? “Il processo di combinare diversi fogli di stile e risolvere conflitti tra essi” (Håkon Wium Lie). Composizione: regole, proprietà, commenti Esempio di regola:
  • 8. SFIDA Ho appena installato JOSM per mappare la mia cascina (immaginaria): SEGUE DEMO al termine della quale, voglio sapere da voi quanti errori ho fatto!
  • 10. /* mtw randomhighwayservice */ way[highway!=service][service] { throwWarning: tr("{0} not {1}", "{0.key}", "{1.key}"); group: "MapThisWay"; } 1. In verde il commento 2. In giallo il selettore 3. In rosso il tipo (es. way, node, relation, area, line, canvas, *) 4. in blu i tag ed in marrone i valori 5. in rosa il blocco delle dichiarazioni 6. le proprietà throwWarning e group sono specifiche di JOSM 7. notare il valore tr(...) per gestire traduzioni con String.format
  • 11. /* mtw addressonbuilding */ way[building][tag_regex("^addr:*")][inside("IT")] { throwWarning: tr("building with addr:*"); group: "MapThisWay"; } 1. l’espressione tag_regex è un “eval” (espressione “valutata”) e esegue la regular expression sull’elenco delle chiavi (non sui valori) 2. “inside” è un selettore speciale (selettore di territorio) e serve per limitare un controllo per codice nazione
  • 12. /* mtw onelanenooneway - Suggested by Volker */ way[highway][lanes<2][!oneway][!junction] { throwWarning: tr("{0} {1}<{2} without {3}", "{0.key}", "{1.key}", "{1.value}", "{2.key}"); group: "MapThisWay"; } /* mtw onelanenopassingplaces - Suggested by Andrea Musuruane */ way[highway][lanes<2][oneway=no][passing_places!=yes] { throwWarning: tr("{0} {1}<{2} with {3} without {4}", "{0.key}", "{1.key}", "{1.value}", "{2.tag}", "{3.tag}"); group: "MapThisWay"; fixAdd: "passing_places=yes"; } 1. fixAdd è una proprietà particolare che attiva il tasto “Correggi” su JOSM e aggiunge (o sostituisce) un tag con un altro.
  • 13. /* mtw invaliddug - suggested by canfe */ way[highway][highway != "cycleway"][highway != "path"][name][name !~ /^(?i)(arco|autostrada|belvedere|calata|calle|cavalcavia|circonvallazione|corso|corte|cort ile|discesa|galleria|gradinata|larghetto|largo|litoranea|lungargine|lungo[a- z]+|molo|parcheggio|passaggio|passeggiata|percorso ciclabile|percorso ciclopedonale|percorso pedonale|piazza|piazzale|piazzetta|pista ciclabile|ponte|raccordo|rampa|ronco|rotatoria|rotonda|salita|scalinata|scesa|sentiero|sla rgo|sottopasso|sovrappasso|spiazzo|strada|strada antica|strada comunale|strada consortile|strada nuova|strada panoramica|strada poderale|strada privata|strada provinciale|strada regionale|strada statale|strada vecchia|strada vicinale|stradella|stradello|stradone|tangenziale|traversa|traversa privata|via|viadotto|via antica|via comunale|via nazionale|via nuova|via panoramica|via privata|via provinciale|via vecchia|viale|vialetto|vico|vico chiuso|vico cieco|vico privato|vicoletto|vicolo|vicolo chiuso|vicolo cieco|vicolo privato|viottolo)[ ]/][inside("IT")] { throwWarning: tr("unusual value of {0}", "{1.key}"); group: "MapThisWay"; }
  • 14. /* mtw farmyardwithoutfarm - Suggested by Andrea Musuruane */ *[place=farm] ⊈ area:closed2[landuse=farmyard] { throwWarning: tr("{0} without place=farm", "{1.tag}"); group: "MapThisWay"; } 1. “:closed2” è una pseudo-classe che controlla che il primo nodo e l’ultimo coincidano anche se non sono stati scaricati tutti gli elementi del poligono 2. ⊈ è un operatore per verificare che un elemento sia uguale o parte di un altro