Changeset 11146 in josm for trunk/data
- Timestamp:
- 2016-10-18T20:32:20+02:00 (8 years ago)
- Location:
- trunk/data
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/defaultpresets.xml
r11133 r11146 914 914 <space /> 915 915 <combo key="agricultural" text="Agricultural" values="yes,official,designated,destination,permissive,private,no" match="key" /> 916 <combo key="emergency" text="Emergency vehicles" values="yes,official,designated,destination, permissive,private,no" match="keyvalue" />916 <combo key="emergency" text="Emergency vehicles" values="yes,official,designated,destination,no" match="keyvalue" /> 917 917 <combo key="hov" text="High-occupancy vehicles (hov)" values="yes,official,designated,destination,permissive,private,no" match="key" /> 918 918 <combo key="psv" text="Public Service Vehicles (psv)" values="yes,official,designated,destination,permissive,private,no" match="key" /> -
trunk/data/validator/combinations.mapcss
r11133 r11146 77 77 *[source:maxspeed ][!/^maxspeed:?/] { 78 78 throwWarning: tr("{0} without {1}", "{0.key}", "{1.key}"); 79 group: tr("missing tag"); 79 80 assertMatch: "way lanes=42"; 80 81 assertNoMatch: "way lanes=42 highway=unclassified"; … … 90 91 *[leaf_cycle][!leaf_type] { 91 92 throwOther: tr("{0} without {1}", "{0.key}", "{1.key}"); 93 group: tr("missing tag"); 92 94 } 93 95 … … 109 111 *[bunker_type ][military!=bunker] { 110 112 throwWarning: tr("{0} without {1}", "{0.key}", "{1.tag}"); 113 group: tr("missing tag"); 111 114 } 112 115 … … 115 118 *[reservoir_type ][landuse!=reservoir][water!=reservoir] { 116 119 throwWarning: tr("{0} without {1} or {2}", "{0.key}", "{1.tag}", "{2.tag}"); 120 group: tr("missing tag"); 117 121 } 118 122 … … 129 133 *[amenity=place_of_worship][!religion] { 130 134 throwWarning: tr("{0} without {1}", "{0.tag}", "{1.key}"); 135 group: tr("missing tag"); 131 136 } 132 137 … … 144 149 *[amenity=parking_entrance ][!parking] { 145 150 throwOther: tr("{0} without {1}", "{0.tag}", "{1.key}"); 151 group: tr("missing tag"); 146 152 assertMatch: "way power=line"; 147 153 assertNoMatch: "way power=line voltage=1"; … … 158 164 way[oneway][!highway][!railway] { 159 165 throwWarning: tr("{0} without {1} or {2}", "{0.key}", "{1.key}", "{2.key}"); 166 group: tr("missing tag"); 160 167 } 161 168 … … 164 171 *[segregated ][!highway][railway!=crossing] { 165 172 throwWarning: tr("{0} without {1} or {2}", "{0.key}", "{1.key}", "{2.tag}"); 173 group: tr("missing tag"); 166 174 } 167 175 … … 170 178 *[highway=motorway_link][!oneway][junction!=roundabout] { 171 179 throwOther: tr("{0} without {1}", "{0.tag}", "{1.tag}"); 180 group: tr("missing tag"); 172 181 } 173 182 … … 175 184 *[amenity=recycling][recycling_type!=container][recycling_type!=centre] { 176 185 throwWarning: tr("{0} without {1} or {2}", "{0.tag}", "{1.tag}", "{2.tag}"); 186 group: tr("missing tag"); 177 187 } 178 188 … … 181 191 *[boat ][!waterway][natural!=water][landuse!=basin] { 182 192 throwWarning: tr("{0} without {1}, {2} or {3}", "{0.key}", "{1.key}", "{2.tag}", "{3.tag}"); 193 group: tr("missing tag"); 183 194 } 184 195 … … 186 197 *[snowplowing ][!highway][!amenity][!leisure] { 187 198 throwWarning: tr("{0} without {1}, {2} or {3}", "{0.key}", "{1.key}", "{2.key}", "{3.key}"); 199 group: tr("missing tag"); 188 200 } 189 201 … … 192 204 *[toll ][!highway][!barrier][route!~/^(ferry|road)$/] { 193 205 throwWarning: tr("{0} without {1}, {2} or {3}", "{0.key}", "{1.key}", "{2.key}", "{3.tag}"); 206 group: tr("missing tag"); 194 207 } 195 208 … … 197 210 *[noname?][name] { 198 211 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.key}"); 212 group: tr("suspicious tag combination"); 199 213 } 200 214 … … 205 219 way[oneway=-1 ][/:forward/][!traffic_sign:forward][bicycle:forward!=use_sidepath] { 206 220 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.key}"); 221 group: tr("suspicious tag combination"); 207 222 } 208 223 … … 210 225 *[highway=footway][oneway=no] { 211 226 throwOther: tr("{0} together with {1}", "{0.tag}", "{1.tag}"); 227 group: tr("suspicious tag combination"); 212 228 } 213 229 … … 215 231 *[highway=footway][bicycle=designated] { 216 232 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}"); 233 group: tr("suspicious tag combination"); 217 234 } 218 235 … … 221 238 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.tag}"); 222 239 suggestAlternative: "bridge=aqueduct"; 240 group: tr("suspicious tag combination"); 223 241 fixAdd: "bridge=aqueduct"; 224 242 } … … 228 246 suggestAlternative: "waterway=dam"; 229 247 suggestAlternative: tr("two objects, one with {0} and one with {1} + {2} + {3}", "{0.tag}", "{2.key}", "{1.tag}", "layer"); 248 group: tr("suspicious tag combination"); 230 249 } 231 250 … … 236 255 *[lit][eval(number_of_tags()) = 1] { 237 256 throwWarning: tr("incomplete object: only {0}", "{0.key}"); 257 group: tr("missing tag"); 238 258 } 239 259 /* only {0.key} and {1.key}, see #11104 */ … … 241 261 *[name][ref][eval(number_of_tags()) = 2] { 242 262 throwWarning: tr("incomplete object: only {0} and {1}", "{0.key}", "{1.key}"); 263 group: tr("missing tag"); 243 264 } 244 265 … … 248 269 *[highway][/^addr:/][highway!=services][highway!=rest_area][!"addr:postcode"] { 249 270 throwWarning: tr("{0} together with addr:*", "{0.key}"); 271 group: tr("suspicious tag combination"); 250 272 } 251 273 *[!highway][postal_code]["addr:postcode"][postal_code=*"addr:postcode"] { 252 274 throwWarning: tr("{0} together with {1}", "{1.key}", "{2.key}"); 275 group: tr("suspicious tag combination"); 253 276 } 254 277 *[!highway][postal_code]["addr:postcode"][postal_code!=*"addr:postcode"] { 255 278 throwWarning: tr("{0} together with {1} and conflicting values", "{1.key}", "{2.key}"); 279 group: tr("suspicious tag combination"); 256 280 } 257 281 way[highway][postal_code]["addr:postcode"][postal_code=*"addr:postcode"] { 258 282 throwWarning: tr("{0} together with {1}", "{1.key}", "{2.key}"); 283 group: tr("suspicious tag combination"); 259 284 fixRemove: "addr:postcode"; 260 285 } 261 286 way[highway][postal_code]["addr:postcode"][postal_code!=*"addr:postcode"] { 262 287 throwWarning: tr("{0} together with {1} and conflicting values", "{1.key}", "{2.key}"); 288 group: tr("suspicious tag combination"); 263 289 } 264 290 way[highway][highway!=services][highway!=rest_area][!postal_code]["addr:postcode"] { 265 291 throwWarning: tr("{0} together with {1}", "{0.key}", "{4.key}"); 266 292 suggestAlternative: "postal_code"; 293 group: tr("suspicious tag combination"); 267 294 fixChangeKey: "addr:postcode=>postal_code"; 268 295 } … … 272 299 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}"); 273 300 suggestAlternative: "highway=path + foot=designated + bicycle=designated + segregated=yes"; 301 group: tr("suspicious tag combination"); 274 302 } 275 303 … … 281 309 *[maxspeed][!highway][!railway][traffic_sign !~ /^((.*;)?maxspeed(;.*)?|[A-Z][A-Z]:.+)$/][type != enforcement][waterway !~ /^(river|canal|lock)$/][!traffic_calming] { 282 310 throwWarning: tr("{0} on suspicious object", "{0.key}"); 283 } 284 285 node[amenity =~ /^(restaurant|cafe|fast_food)$/][!name][noname!=yes] { 286 throwOther: tr("restaurant without name"); 311 group: tr("suspicious tag combination"); 312 } 313 314 node[amenity][amenity =~ /^(restaurant|cafe|fast_food)$/][!name][noname!=yes] { 315 throwOther: tr("{0} without {1}", "{0.tag}", "{2.key}"); 316 group: tr("missing tag"); 287 317 assertMatch: "node amenity=restaurant"; 288 318 assertNoMatch: "node amenity=restaurant noname=yes"; … … 294 324 way[highway][natural], 295 325 *[landuse][building] { 296 throwWarning: tr("{0} used with {1}", "{0.key}", "{1.key}"); 326 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}"); 327 group: tr("suspicious tag combination"); 297 328 assertNoMatch: "node highway=street_lamp natural=birds_nest note=josm#10193"; 298 329 } … … 301 332 *[natural=water][leisure=swimming_pool] { 302 333 throwWarning: tr("natural water used for swimming pool"); 334 group: tr("suspicious tag combination"); 303 335 fixRemove: "natural"; 304 336 } … … 307 339 *[sport][!building][!club][tourism != hotel][highway != raceway][leisure !~ /^(sports_centre|stadium|track|pitch|golf_course|water_park|swimming_pool|recreation_ground|ice_rink|horse_riding)$/][natural !~ /^(beach|bare_rock|cliff|peak|water)$/][amenity !~ /^(pub|restaurant|swimming_pool)$/][landuse !~ /^(recreation_ground|piste|farm|farmland)$/][barrier !~ /^(wall|retaining_wall)$/][!"piste:type"][shop!=sports] { 308 340 throwWarning: tr("sport without physical feature"); 341 group: tr("missing tag"); 309 342 assertMatch: "node sport=tennis"; 310 343 assertNoMatch: "node sport=tennis leisure=pitch"; … … 318 351 *[building:levels][!building][!building:part] { 319 352 throwWarning: tr("{0} without {1} or {2}", "{0.key}", "{1.key}", "{2.key}"); 320 } 321 322 /* #10471 */ 323 way[waterway] > node[ford?] { set ford_on_waterway; } 324 way[highway] > node[ford?] { set ford_on_highway; } 325 node[ford?]:in-downloaded-area!.ford_on_waterway, node[ford?]:in-downloaded-area!.ford_on_highway { 326 throwWarning: tr("{0} should be on the node where {1} and {2} intersect", "ford", "highway", "waterway"); 353 group: tr("missing tag"); 327 354 } 328 355 … … 330 357 *[/_name$/][!name][!old_name][!loc_name][!uic_name][!artist_name][!"osak:municipality_name"][!"osak:street_name"][noname!=yes] { 331 358 throwWarning: tr("alternative name without {0}", "{1.key}"); 359 group: tr("missing tag"); 332 360 } 333 361 … … 343 371 throwWarning: tr("Same value of {0} and {1}", "{0.key}", "{1.key}"); 344 372 suggestAlternative: "maxspeed"; 373 group: tr("suspicious tag combination"); 345 374 fixChangeKey: "maxspeed:forward=>maxspeed"; 346 375 fixRemove: "maxspeed:backward"; … … 350 379 set AllSameMaxspeed; 351 380 suggestAlternative: "maxspeed"; 381 group: tr("suspicious tag combination"); 352 382 fixRemove: "maxspeed:forward"; 353 383 fixRemove: "maxspeed:backward"; … … 355 385 way["maxspeed:forward"]["maxspeed:backward"][maxspeed]!.AllSameMaxspeed { 356 386 throwWarning: tr("{0} and {1} together with {2} and conflicting values", "{0.key}", "{1.key}", "{2.key}"); 387 group: tr("suspicious tag combination"); 357 388 } 358 389 way["maxspeed:forward"][maxspeed][!"maxspeed:backward"], 359 390 way["maxspeed:backward"][maxspeed][!"maxspeed:forward"] { 360 391 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}"); 392 group: tr("suspicious tag combination"); 361 393 } 362 394 … … 364 396 way[layer][layer<0][bridge][bridge!=no][location!=underground][indoor!=yes][!tunnel], 365 397 way[layer][layer>0][tunnel][tunnel!=no][location!=overground][indoor!=yes][!bridge] { 366 throwWarning: tr("Suspicious tag combination: {0} and {1}", "{2.tag}", "{0.tag}"); 398 throwWarning: tr("{0} together with {1}", "{2.tag}", "{0.tag}"); 399 group: tr("suspicious tag combination"); 367 400 } 368 401 … … 375 408 way[waterway][layer][layer=~/^(-1|-2|-3|-4|-5)$/][!tunnel][culvert!=yes][covered!=yes][pipeline!=yes][location!=underground][eval(waylength()) > 400] { 376 409 throwWarning: tr("Long waterway with {0} but without a tag which defines it as tunnel or underground. Remove {1} or add a tunnel tag if applicable. Also check crossing bridges and their {1} tags.", "{1.tag}", "{1.key}"); 410 group: tr("suspicious tag combination"); 377 411 } 378 412 way[waterway][layer][layer=~/^(-1|-2|-3|-4|-5)$/][!tunnel][culvert!=yes][covered!=yes][pipeline!=yes][location!=underground][eval(waylength()) <= 400] { 379 413 throwOther: tr("Short waterway with {0} but without a tag which defines it as tunnel or underground. Remove {1} or add a tunnel tag if applicable. Also check crossing bridges and their {1} tags.", "{1.tag}", "{1.key}"); 414 group: tr("suspicious tag combination"); 380 415 } 381 416 … … 384 419 *[unisex=yes][male=yes][female!=yes] { 385 420 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}"); 421 group: tr("suspicious tag combination"); 386 422 } 387 423 *[unisex=yes][female=yes][male=yes] { 388 424 throwWarning: tr("{0} together with {1} and {2}. Remove {1} and {2}", "{0.tag}", "{1.tag}", "{2.tag}"); 425 group: tr("suspicious tag combination"); 389 426 fixRemove: "female"; 390 427 fixRemove: "male"; … … 393 430 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}"); 394 431 suggestAlternative: "unisex=yes"; 432 group: tr("suspicious tag combination"); 395 433 fixRemove: "female"; 396 434 fixRemove: "male"; … … 401 439 area:closed[water][natural!=water][water!=intermittent] { /* water=intermittent is deprecated and has an own warning */ 402 440 throwWarning: tr("{0} without {1}", "{1.key}", "{2.tag}"); 441 group: tr("missing tag"); 403 442 fixAdd: "natural=water"; 404 443 } 405 444 way!:closed[water][natural!=water][water!=intermittent] { 406 445 throwWarning: tr("{0} without {1}", "{1.key}", "{2.tag}"); 446 group: tr("missing tag"); 407 447 } 408 448 … … 416 456 way[highway =~ /^(motorway|motorway_link|trunk|trunk_link)$/][lanes][destination:symbol:lanes][tag(lanes)!=eval(count(split("|", tag("destination:symbol:lanes"))))] { 417 457 throwWarning: tr("Different number of lanes in the keys {0} and {1}", "{1.key}", "{2.key}"); 458 group: tr("suspicious tag combination"); 418 459 } 419 460 … … 423 464 suggestAlternative: "natural=sand"; 424 465 suggestAlternative: "surface=sand"; 466 group: tr("suspicious tag combination"); 425 467 } 426 468 … … 431 473 way["addr:housenumber"][!building][!"building:part"][!"demolished:building"][!note][!amenity][!leisure][!landuse][!man_made][!tourism][!barrier]!.part_of_building_MP { 432 474 /* don't exclude shop because a lot of real missing bulding tag cases have a shop tag. */ 433 throwOther: tr("Suspicious object: possibly missing {0} tag.", "{1.key}"); 434 } 475 throwOther: tr("possibly missing {0} tag", "{1.key}"); 476 group: tr("missing tag"); 477 } -
trunk/data/validator/deprecated.mapcss
r11138 r11146 929 929 /* #12494 */ 930 930 *[/^[^t][^i][^g].+_[0-9]$/][!/^note_[0-9]$/][!/^description_[0-9]$/] { 931 throwOther: tr("questionable key (ending with a number): {0}", "{0.key}"); 931 throwOther: tr("{0}", "{0.key}"); 932 group: tr("questionable key (ending with a number)"); 932 933 assertMatch: "way name_1=foo"; 933 934 assertNoMatch: "way note_2=foo"; -
trunk/data/validator/geometry.mapcss
r11138 r11146 103 103 node[leisure=park][natural=tree] { 104 104 throwWarning: tr("{0} together with {1} on a node. Remove {0}.", "{0.tag}", "{1.tag}"); 105 group: tr("suspicious tag combination"); 105 106 fixRemove: "leisure"; 106 107 } … … 289 290 throwError: tr("Coastline inside {1}", "{0.tag}"); 290 291 } 292 293 /* #10471 */ 294 way[waterway] > node[ford?] { set ford_on_waterway; } 295 way[highway] > node[ford?] { set ford_on_highway; } 296 node[ford?]:in-downloaded-area!.ford_on_waterway, node[ford?]:in-downloaded-area!.ford_on_highway { 297 throwWarning: tr("{0} should be on the node where {1} and {2} intersect", "ford", "highway", "waterway"); 298 } -
trunk/data/validator/highway.mapcss
r11139 r11146 55 55 way.major_road[!ref] { 56 56 throwOther: tr("highway without a reference"); 57 group: tr("missing tag"); 57 58 assertMatch: "way highway=primary"; 58 59 assertNoMatch: "way highway=primary ref=123"; … … 120 121 way[highway =~ /^(bridleway|cycleway|footway|path|steps)$/] > node[railway != crossing].is_in_railway { 121 122 throwWarning: tr("pedestrian railway crossing without {0}", "{0.tag}"); 123 group: tr("missing tag"); 122 124 fixAdd: "railway=crossing"; 123 125 } 124 126 way[highway =~ /^(bus_guideway|living_street|motorway|pedestrian|primary|raceway|residential|road|secondary|service|tertiary|track|trunk|unclassified)/] > node[railway != level_crossing].is_in_railway { 125 127 throwWarning: tr("railway crossing without {0}", "{0.tag}"); 128 group: tr("missing tag"); 126 129 fixAdd: "railway=level_crossing"; 127 130 } -
trunk/data/validator/relation.mapcss
r8523 r11146 17 17 relation[type=enforcement][!enforcement] { 18 18 throwWarning: tr("{0} relation without {0} tag", "{1.key}"); 19 group: tr("missing tag"); 19 20 assertMatch: "relation type=route"; 20 21 assertNoMatch: "relation type=route route=train"; -
trunk/data/validator/religion.mapcss
r9729 r11146 3 3 *[religion =~ /^(christian|jewish|muslim)$/][!denomination] { 4 4 throwOther: tr("religion without denomination"); 5 group: tr("missing tag"); 5 6 assertMatch: "node religion=christian"; 6 7 assertNoMatch: "node religion=christian denomination=catholic"; -
trunk/data/validator/unnecessary.mapcss
r9541 r11146 25 25 *[emergency=permissive] { 26 26 /* see #9458 - emergency=permissive makes no sense */ 27 throwWarning: tr("{0} ={1}makes no sense", "emergency", "permissive");27 throwWarning: tr("{0} makes no sense", "{0.tag"); 28 28 fixAdd: "emergency=yes"; 29 29 assertMatch: "way emergency=permissive"; -
trunk/data/validator/wikipedia.mapcss
r7937 r11146 19 19 throwWarning: tr("deprecated format for wikipedia tag"); 20 20 suggestAlternative: tr("''wikipedia''=''language:page title''"); 21 group: tr("deprecated tagging"); 21 22 assertMatch: "node wikipedia=http://en.wikipedia.org/wiki/OpenStreetMap"; 22 23 assertNoMatch: "node wikipedia=en:OpenStreetMap";
Note:
See TracChangeset
for help on using the changeset viewer.