source: josm/trunk/resources/data/validator/deprecated.mapcss@ 19591

Last change on this file since 19591 was 19591, checked in by stoecker, 3 days ago

fix #22748 - patch by francois.lacombe - Extend utility=* to buildings, street cabinets and industrial landuses

  • Property svn:eol-style set to native
File size: 84.6 KB
RevLine 
[6506]1*[barrier=wire_fence] {
[9551]2 throwWarning: tr("{0} is deprecated", "{0.tag}");
[11138]3 group: tr("deprecated tagging");
[10538]4 suggestAlternative: "barrier=fence + fence_type=chain_link";
[6506]5 fixAdd: "barrier=fence";
6 fixAdd: "fence_type=chain_link";
[6512]7 assertMatch: "way barrier=wire_fence";
8 assertNoMatch: "way barrier=fence";
[6506]9}
[17092]10
[6506]11*[barrier=wood_fence] {
[9551]12 throwWarning: tr("{0} is deprecated", "{0.tag}");
13 suggestAlternative: "barrier=fence + fence_type=wood";
[11138]14 group: tr("deprecated tagging");
[6506]15 fixAdd: "barrier=fence";
16 fixAdd: "fence_type=wood";
17}
[17092]18
[10916]19node[highway=ford] {
[9551]20 throwWarning: tr("{0} is deprecated", "{0.tag}");
21 suggestAlternative: "ford=yes";
[11138]22 group: tr("deprecated tagging");
[6506]23 fixRemove: "highway";
24 fixAdd: "ford=yes";
25}
[10916]26way[highway=ford] {
27 throwWarning: tr("{0} is deprecated", "{0.tag}");
28 suggestAlternative: "highway=* + ford=yes";
[11138]29 group: tr("deprecated tagging");
[10916]30}
[17092]31
32/* from http://wiki.openstreetmap.org/wiki/Deprecated_features */
[11985]33way[class] {
[6689]34 throwWarning: tr("{0} is deprecated", "{0.key}");
[6506]35 suggestAlternative: "highway";
[11138]36 group: tr("deprecated tagging");
[6506]37}
38*[highway=stile] {
[9551]39 throwWarning: tr("{0} is deprecated", "{0.tag}");
40 suggestAlternative: "barrier=stile";
[11138]41 group: tr("deprecated tagging");
[6506]42 fixRemove: "highway";
43 fixAdd: "barrier=stile";
44}
45*[highway=incline] {
[9551]46 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]47 suggestAlternative: "incline";
[11138]48 group: tr("deprecated tagging");
[6506]49}
50*[highway=incline_steep] {
[9551]51 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]52 suggestAlternative: "incline";
[11138]53 group: tr("deprecated tagging");
[6506]54}
55*[highway=unsurfaced] {
[9551]56 throwWarning: tr("{0} is deprecated", "{0.tag}");
57 suggestAlternative: "highway=* + surface=unpaved";
[11138]58 group: tr("deprecated tagging");
[6506]59 fixAdd: "highway=road";
[8161]60 fixAdd: "surface=unpaved";
[6506]61}
62*[landuse=wood] {
[9551]63 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]64 suggestAlternative: "landuse=forest";
65 suggestAlternative: "natural=wood";
[11138]66 group: tr("deprecated tagging");
[6506]67}
68*[natural=marsh] {
[9551]69 throwWarning: tr("{0} is deprecated", "{0.tag}");
70 suggestAlternative: "natural=wetland + wetland=marsh";
[11138]71 group: tr("deprecated tagging");
[6506]72 fixAdd: "natural=wetland";
73 fixAdd: "wetland=marsh";
74}
[18844]75/* #23185 */
[18843]76*[landuse=reservoir][!reservoir_type],
77*[landuse=reservoir][reservoir_type=water_storage] {
78 group: tr("deprecated tagging");
79 throwWarning: tr("{0} is deprecated", "{0.tag}");
80 suggestAlternative: "natural=water + water=reservoir";
81 fixAdd: "natural=water";
82 fixAdd: "water=reservoir";
83 fixRemove: "reservoir_type";
84}
85*[landuse=reservoir][reservoir_type=tailings] {
86 group: tr("deprecated tagging");
87 throwWarning: tr("{0} is deprecated", "{0.tag}");
88 suggestAlternative: "man_made=tailings_pond";
89 fixAdd: "man_made=tailings_pond";
90 fixRemove: "reservoir_type";
91 fixRemove: "reservoir_type";
92}
93*[landuse=reservoir][reservoir_type=evaporator] {
94 group: tr("deprecated tagging");
95 throwWarning: tr("{0} is deprecated", "{0.tag}");
96 suggestAlternative: "basin=evaporation or landuse=salt_pond";
97}
98*[landuse=reservoir][reservoir_type=sewage] {
99 group: tr("deprecated tagging");
100 throwWarning: tr("{0} is deprecated", "{0.tag}");
101 suggestAlternative: "natural=water + water=wastewater or landuse=basin + basin=settling or man_made=basin + basin=settling";
102}
103
[6506]104*[highway=byway] {
[9551]105 throwWarning: tr("{0} is deprecated", "{0.tag}");
[11138]106 group: tr("deprecated tagging");
[6506]107}
108*[power_source] {
[6689]109 throwWarning: tr("{0} is deprecated", "{0.key}");
[6506]110 suggestAlternative: "generator:source";
[11138]111 group: tr("deprecated tagging");
[6506]112}
113*[power_rating] {
[6689]114 throwWarning: tr("{0} is deprecated", "{0.key}");
[6506]115 suggestAlternative: "generator:output";
[11138]116 group: tr("deprecated tagging");
[6506]117}
[17092]118
[7600]119*[shop=antique] {
[9551]120 throwWarning: tr("{0} is deprecated", "{0.tag}");
121 suggestAlternative: "shop=antiques";
[11138]122 group: tr("deprecated tagging");
[7600]123 fixAdd: "shop=antiques";
124}
125
126*[shop=bags] {
[9551]127 throwWarning: tr("{0} is deprecated", "{0.tag}");
128 suggestAlternative: "shop=bag";
[11138]129 group: tr("deprecated tagging");
[7600]130 fixAdd: "shop=bag";
131}
132
[14940]133/* #17527 */
[14935]134*[shop=fashion] {
135 throwWarning: tr("{0} is deprecated", "{0.tag}");
136 suggestAlternative: "shop=clothes";
137 group: tr("deprecated tagging");
138 fixAdd: "shop=clothes";
139}
140
[6506]141*[shop=organic] {
[9551]142 throwWarning: tr("{0} is deprecated", "{0.tag}");
[10329]143 suggestAlternative: "shop=* + organic=yes";
144 suggestAlternative: "shop=* + organic=only";
[11138]145 group: tr("deprecated tagging");
[6506]146}
[7600]147
148*[shop=pets] {
[9551]149 throwWarning: tr("{0} is deprecated", "{0.tag}");
150 suggestAlternative: "shop=pet";
[11138]151 group: tr("deprecated tagging");
[7600]152 fixAdd: "shop=pet";
153}
154
155*[shop=pharmacy] {
[9551]156 throwWarning: tr("{0} is deprecated", "{0.tag}");
157 suggestAlternative: "amenity=pharmacy";
[11138]158 group: tr("deprecated tagging");
[7600]159 fixChangeKey: "shop => amenity";
160}
161
[6506]162*[bicycle_parking=sheffield] {
[9551]163 throwWarning: tr("{0} is deprecated", "{0.tag}");
164 suggestAlternative: "bicycle_parking=stands";
[11138]165 group: tr("deprecated tagging");
[6506]166 fixAdd: "bicycle_parking=stands";
167}
[17092]168
[6506]169*[amenity=emergency_phone] {
[9551]170 throwWarning: tr("{0} is deprecated", "{0.tag}");
171 suggestAlternative: "emergency=phone";
[11138]172 group: tr("deprecated tagging");
[6506]173 fixRemove: "amenity";
174 fixAdd: "emergency=phone";
175}
[17092]176
177/* #8132 */
[6506]178*[sport=gaelic_football] {
[9551]179 throwWarning: tr("{0} is deprecated", "{0.tag}");
180 suggestAlternative: "sport=gaelic_games";
[11138]181 group: tr("deprecated tagging");
[6506]182 fixAdd: "sport=gaelic_games";
183}
[17092]184
185/* #8847, #8961 */
[6506]186*[power=station] {
[9551]187 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]188 suggestAlternative: "power=plant";
[6688]189 suggestAlternative: "power=substation";
[11138]190 group: tr("deprecated tagging");
[6506]191}
[6689]192
193*[power=sub_station] {
[9551]194 throwWarning: tr("{0} is deprecated", "{0.tag}");
195 suggestAlternative: "power=substation";
[11138]196 group: tr("deprecated tagging");
[6689]197 fixAdd: "power=substation";
198}
[15372]199
200*[location=rooftop] {
201 throwWarning: tr("{0} is deprecated", "{0.tag}");
202 suggestAlternative: "location=roof";
203 group: tr("deprecated tagging");
204 fixAdd: "location=roof";
205}
206
[15373]207*[generator:location] {
[15372]208 throwWarning: tr("{0} is deprecated", "{0.key}");
209 suggestAlternative: "location";
210 group: tr("deprecated tagging");
211 fixChangeKey: "generator:location => location";
212}
213
[6506]214*[generator:method=dam] {
[9551]215 throwWarning: tr("{0} is deprecated", "{0.tag}");
216 suggestAlternative: "generator:method=water-storage";
[11138]217 group: tr("deprecated tagging");
[6506]218 fixAdd: "generator:method=water-storage";
219}
[17092]220
[6506]221*[generator:method=pumped-storage] {
[9551]222 throwWarning: tr("{0} is deprecated", "{0.tag}");
223 suggestAlternative: "generator:method=water-pumped-storage";
[11138]224 group: tr("deprecated tagging");
[6506]225 fixAdd: "generator:method=water-pumped-storage";
226}
[17092]227
[6506]228*[generator:method=pumping] {
[9551]229 throwWarning: tr("{0} is deprecated", "{0.tag}");
230 suggestAlternative: "generator:method=water-pumped-storage";
[11138]231 group: tr("deprecated tagging");
[6506]232 fixAdd: "generator:method=water-pumped-storage";
233}
[17092]234
235/* #8962 */
[6506]236*[fence_type=chain] {
[9551]237 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]238 suggestAlternative: "barrier=chain";
[9552]239 suggestAlternative: "barrier=fence + fence_type=chain_link";
[11138]240 group: tr("deprecated tagging");
[6506]241}
242
[17092]243/* #9000 */
[6506]244*[building=entrance] {
[9551]245 throwWarning: tr("{0} is deprecated", "{0.tag}");
[6506]246 suggestAlternative: "entrance";
[11138]247 group: tr("deprecated tagging");
[6506]248}
[17092]249
250/* #9213 */
[6506]251*[board_type=board] {
[9551]252 throwWarning: tr("{0} is deprecated", "{0.tag}");
[11138]253 group: tr("deprecated tagging");
[6506]254 fixRemove: "board_type";
255}
[17092]256
257/* #8434 */
[6506]258*[man_made=measurement_station] {
[9551]259 throwWarning: tr("{0} is deprecated", "{0.tag}");
260 suggestAlternative: "man_made=monitoring_station";
[11138]261 group: tr("deprecated tagging");
[6506]262 fixAdd: "man_made=monitoring_station";
263}
[17092]264
[6506]265*[measurement=water_level] {
[9551]266 throwWarning: tr("{0} is deprecated", "{0.tag}");
267 suggestAlternative: "monitoring:water_level=yes";
[11138]268 group: tr("deprecated tagging");
[6506]269 fixRemove: "measurement";
270 fixAdd: "monitoring:water_level=yes";
271}
[17092]272
[6506]273*[measurement=weather] {
[9551]274 throwWarning: tr("{0} is deprecated", "{0.tag}");
275 suggestAlternative: "monitoring:weather=yes";
[11138]276 group: tr("deprecated tagging");
[6506]277 fixRemove: "measurement";
278 fixAdd: "monitoring:weather=yes";
279}
[17092]280
[6506]281*[measurement=seismic] {
[9551]282 throwWarning: tr("{0} is deprecated", "{0.tag}");
283 suggestAlternative: "monitoring:seismic_activity=yes";
[11138]284 group: tr("deprecated tagging");
[6506]285 fixRemove: "measurement";
286 fixAdd: "monitoring:seismic_activity=yes";
287}
288
289*[monitoring:river_level] {
[6689]290 throwWarning: tr("{0} is deprecated", "{0.key}");
[9551]291 suggestAlternative: "monitoring:water_level";
[11138]292 group: tr("deprecated tagging");
[6506]293 fixChangeKey: "monitoring:river_level => monitoring:water_level";
294}
[6605]295
[7449]296*[stay] {
297 throwWarning: tr("{0} is deprecated", "{0.key}");
[9551]298 suggestAlternative: "maxstay";
[11138]299 group: tr("deprecated tagging");
[7449]300 fixChangeKey: "stay => maxstay";
301}
302
[17092]303/* #9554 */
[6658]304*[emergency=aed] {
[9551]305 throwWarning: tr("{0} is deprecated", "{0.tag}");
306 suggestAlternative: "emergency=defibrillator";
[11138]307 group: tr("deprecated tagging");
[6658]308 fixAdd: "emergency=defibrillator";
309}
310
[6605]311/* from http://wiki.openstreetmap.org/wiki/Conditional_restrictions#Deprecated_tags */
[6645]312*[day_on][!restriction],
313*[day_off][!restriction],
314*[date_on][!restriction],
315*[date_off][!restriction],
316*[hour_on][!restriction],
317*[hour_off][!restriction] {
[6605]318 throwWarning: tr("{0} is deprecated", "{0.key}");
319 suggestAlternative: "*:conditional";
[11138]320 group: tr("deprecated tagging");
[6605]321 assertMatch: "node day_on=0-12";
322}
[7105]323
[17092]324/* #10000 */
[7105]325*[access=designated] {
326 throwWarning: tr("''{0}'' is meaningless, use more specific tags, e.g. ''{1}''", "access=designated", "bicycle=designated");
327 assertMatch: "way access=designated";
328}
[7106]329*[access=official] {
330 throwWarning: tr("''{0}'' does not specify the official mode of transportation, use ''{1}'' for example", "access=official", "bicycle=official");
331 assertMatch: "way access=official";
332}
[7197]333
[17092]334/* #10085 */
[7197]335*[fixme=yes], *[FIXME=yes] {
336 throwWarning: tr("{0}={1} is unspecific. Instead of ''{1}'' please give more information about what exactly should be fixed.", "{0.key}", "{0.value}");
337 assertMatch: "way fixme=yes";
338}
339
[9088]340*[name][name=~/^(?i)fixme$/] {
341 throwWarning: tr("Wrong usage of {0} tag. Remove {1}, because it is clear that the name is missing even without an additional tag.", "{0.key}", "{0.tag}");
342 fixRemove: "name";
343 assertMatch: "node name=fixme";
344 assertMatch: "node name=Fixme";
345 assertMatch: "node name=FIXME";
346 assertNoMatch: "node name=valid name";
347}
348
[10004]349*[note][note=~/^(?i)fixme$/] {
350 throwWarning: tr("{0} is unspecific. Instead use the key fixme with the information what exactly should be fixed in the value of fixme.", "{0.tag}");
351}
352
[18544]353/* #10107, #10108, #10929, #13391, #22336 - http://wiki.openstreetmap.org/wiki/Proposed_features/leaftype#Features.2FPages_affected */
[7222]354*[type=broad_leaved],
355*[type=broad_leafed] {
[9551]356 throwWarning: tr("{0} is deprecated", "{0.tag}");
357 suggestAlternative: "leaf_type=broadleaved";
[11138]358 group: tr("deprecated tagging");
[7222]359 fixRemove: "{0.key}";
360 fixAdd: "leaf_type=broadleaved";
[9557]361}
[7924]362*[wood=coniferous],
363*[type=coniferous],
364*[type=conifer] {
[9551]365 throwWarning: tr("{0} is deprecated", "{0.tag}");
366 suggestAlternative: "leaf_type=needleleaved";
[11138]367 group: tr("deprecated tagging");
[7924]368 fixRemove: "{0.key}";
[7222]369 fixAdd: "leaf_type=needleleaved";
370}
371*[wood=mixed] {
[9551]372 throwWarning: tr("{0} is deprecated", "{0.tag}");
373 suggestAlternative: "leaf_type=mixed";
[11138]374 group: tr("deprecated tagging");
[7222]375 fixRemove: "wood";
376 fixAdd: "leaf_type=mixed";
377}
378*[wood=evergreen],
379*[type=evergreen] {
[9551]380 throwWarning: tr("{0} is deprecated", "{0.tag}");
381 suggestAlternative: "leaf_cycle=evergreen";
[11138]382 group: tr("deprecated tagging");
[7222]383 fixRemove: "{0.key}";
384 fixAdd: "leaf_cycle=evergreen";
385}
[18544]386*[wood=deciduous],
[7222]387*[type=deciduous],
388*[type=deciduos] {
[9551]389 throwWarning: tr("{0} is deprecated", "{0.tag}");
390 suggestAlternative: "leaf_cycle=deciduous";
[11138]391 group: tr("deprecated tagging");
[18544]392 fixRemove: "{0.key}";
[7222]393 fixAdd: "leaf_cycle=deciduous";
394}
[10798]395node[type=palm],
396way[type=palm] {
397 throwWarning: tr("{0} is deprecated", "{0.tag}");
398 suggestAlternative: "leaf_type";
399 suggestAlternative: "trees";
400 suggestAlternative: "species";
[11138]401 group: tr("deprecated tagging");
[10798]402}
403
[7391]404*[natural=land] {
[9551]405 throwWarning: tr("{0} is deprecated. Please use instead a multipolygon.", "{0.tag}");
[11138]406 group: tr("deprecated tagging");
[7391]407 assertMatch: "way natural=land";
408}
[7490]409
[17092]410/* #10447 - https://wiki.openstreetmap.org/wiki/Proposed_features/Bridge_types#Deprecated_bridge_key_values */
[7490]411*[bridge=causeway] {
[9551]412 throwWarning: tr("{0} is deprecated", "{0.tag}");
[7490]413 suggestAlternative: "ford=yes";
414 suggestAlternative: "bridge=low_water_crossing";
415 suggestAlternative: "embankment=yes";
[11138]416 group: tr("deprecated tagging");
[7490]417}
418*[bridge=swing] {
[9551]419 throwWarning: tr("{0} is deprecated", "{0.tag}");
[7490]420 suggestAlternative: "bridge:movable=swing";
421 suggestAlternative: "bridge:structure=simple-suspension";
[11138]422 group: tr("deprecated tagging");
[7490]423}
424*[bridge=suspension] {
[9551]425 throwWarning: tr("{0} is deprecated", "{0.tag}");
426 suggestAlternative: "bridge=yes + bridge:structure=suspension";
[11138]427 group: tr("deprecated tagging");
[7490]428 fixAdd: "bridge=yes";
429 fixAdd: "bridge:structure=suspension";
430}
[15262]431*[bridge=pontoon] {
432 throwWarning: tr("{0} is deprecated", "{0.tag}");
433 suggestAlternative: "bridge=yes + bridge:structure=floating";
434 group: tr("deprecated tagging");
435 fixAdd: "bridge=yes";
436 fixAdd: "bridge:structure=floating";
437}
[7599]438
[17092]439/* #10530 - Incorrect tag proposed in internal preset for years */
[7623]440*[fee=interval],
441*[lit=interval],
442*[supervised=interval] {
[7647]443 throwWarning: tr("{0} is deprecated. Please specify interval by using opening_hours syntax", "{0.tag}");
[11138]444 group: tr("deprecated tagging");
[7620]445}
446
[17092]447/* #10582 - JOSM supported this tag as "don't upload this" feature, before the introduction of upload flag at layer level */
[7599]448*[/josm\/ignore/] {
449 throwError: tr("{0} is deprecated. Please delete this object and use a private layer instead", "{0.key}");
[11138]450 group: tr("deprecated tagging");
[7599]451 fixDeleteObject: this;
452}
[7630]453
[17092]454/* #8281 */
[7630]455*[sport=diving] {
[7647]456 throwWarning: tr("{0} is deprecated", "{0.tag}");
[7630]457 suggestAlternative: "sport=scuba_diving";
458 suggestAlternative: "sport=cliff_diving";
[11138]459 group: tr("deprecated tagging");
[7635]460}
461
[17092]462/* #8281 */
[7635]463*[parking=park_and_ride] {
[7647]464 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9551]465 suggestAlternative: "amenity=parking + park_ride=yes";
[11138]466 group: tr("deprecated tagging");
[7635]467 fixRemove: "parking";
468 fixAdd: "amenity=parking";
469 fixAdd: "park_ride=yes";
[7647]470}
471
[18558]472/* #19287, #18334, #17950, #10661, #10837, #11737, #12771, #21009, #22379 */
473*[parking=yes],
[16500]474*[playground=yes],
[15530]475*[manhole=plain],
476*[manhole=unknown],
[15532]477*[manhole=yes],
[15307]478*[police=yes],
[9506]479*[traffic_calming=yes],
[8699]480*[access=restricted],
[7818]481*[barrier=yes],
[8630]482*[aerialway=yes][!public_transport],
[7818]483*[amenity=yes],
[10272]484*[leisure=yes],
[17926]485*[landuse=yes],
[9435]486*[shop="*"],
[14805]487*[shop=yes][amenity!=fuel],
[9681]488*[craft=yes],
[10229]489*[service=yes],
[7818]490*[place=yes] {
[7647]491 throwWarning: tr("{0}={1} is unspecific. Please replace ''{1}'' by a specific value.", "{0.key}", "{0.value}");
[7697]492}
493
[17092]494/* #10693 - http://wiki.openstreetmap.org/wiki/Proposed_features/drop_recommendation_for_place_name , #10837 */
[7697]495*[place_name][!name] {
496 throwWarning: tr("{0} should be replaced with {1}", "{0.key}", "{1.key}");
497 fixChangeKey: "place_name => name";
498}
[7818]499*[place][place_name = *name] {
500 throwWarning: tr("{0} = {1}; remove {0}", "{1.key}", "{1.value}");
501 fixRemove: "{1.key}";
502}
[7707]503
504way[sidewalk=yes] {
[17216]505 throwWarning: tr("{0} is unspecific", "{0.tag}");
506 suggestAlternative: "sidewalk=left";
507 suggestAlternative: "sidewalk=right";
508 suggestAlternative: "sidewalk=both";
509 suggestAlternative: "sidewalk=separate";
[7737]510}
511
[9551]512*[waterway=water_point] {
513 throwWarning: tr("{0} is deprecated", "{0.tag}");
514 suggestAlternative: "amenity=water_point";
[11138]515 group: tr("deprecated tagging");
[9551]516 fixChangeKey: "waterway => amenity";
517}
[7737]518*[waterway=waste_disposal] {
519 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9551]520 suggestAlternative: "amenity=waste_disposal";
[11138]521 group: tr("deprecated tagging");
[7737]522 fixChangeKey: "waterway => amenity";
523}
524*[waterway=mooring] {
525 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9551]526 suggestAlternative: "mooring=yes";
[11138]527 group: tr("deprecated tagging");
[7737]528 fixRemove: "waterway";
529 fixAdd: "mooring=yes";
[7818]530}
531
[18188]532/* #10837, #21268 */
[7969]533*[building][levels],
[18188]534*[building:part][levels] {
[7818]535 throwWarning: tr("{0} is deprecated", "{1.key}");
536 suggestAlternative: "building:levels";
[11138]537 group: tr("deprecated tagging");
[7818]538 fixChangeKey: "levels => building:levels";
[18188]539 set levels_building;
[7973]540}
[18188]541*[levels]!.levels_building {
542 throwWarning: tr("Unusual key {0}, maybe {1} or {2} is meant", "{0.key}", "level", "building:levels");
543}
[7973]544
[18642]545/* #22481 */
546*[building:level][!building:levels] {
[18647]547 throwWarning: tr("{0} is deprecated", "{0.key}");
[18642]548 suggestAlternative: "building:levels";
549 group: tr("deprecated tagging");
550 fixChangeKey: "building:level => building:levels";
551}
552*[building:level][building:levels] {
[18647]553 throwWarning: tr("{0} is deprecated", "{0.key}");
[18642]554 suggestAlternative: "building:levels";
555 group: tr("deprecated tagging");
556}
557
[17092]558/* #10691 */
[7973]559*[protected_class] {
560 throwWarning: tr("{0} is deprecated", "{0.key}");
561 suggestAlternative: "protect_class";
[11138]562 group: tr("deprecated tagging");
[7973]563 fixChangeKey: "protected_class => protect_class";
[8008]564}
565
[17092]566/* #11070 */
[15648]567*[kerb=unknown],
[8008]568*[lock=unknown],
569*[hide=unknown],
570*[shelter=unknown],
571*[access=unknown],
572*[capacity:parent=unknown],
573*[capacity:women=unknown],
574*[capacity:disabled=unknown],
575*[crossing=unknown],
576*[foot=unknown] {
[8023]577 throwWarning: tr("Unspecific tag {0}", "{0.tag}");
[8121]578}
579
[17092]580/* #11183 */
[11159]581*[sport=skiing] {
[8121]582 throwWarning: tr("Definition of {0} is unclear", "{0.tag}");
[11159]583 suggestAlternative: tr("{0} + {1} + {2}", "piste:type=*", "piste:difficulty=*", "piste:grooming=*");
584 group: tr("deprecated tagging");
[8135]585}
586
[17092]587/* #11223 */
[8135]588*[waterway=wadi] {
589 throwWarning: tr("{0} is deprecated", "{0.tag}");
590 suggestAlternative: "{0.key}=* + intermittent=yes";
591 suggestAlternative: "natural=valley";
[11138]592 group: tr("deprecated tagging");
[8137]593}
594
[17209]595/* #10346 */
596way[oneway=1] {
[8137]597 throwWarning: tr("{0} is deprecated", "{0.tag}");
598 suggestAlternative: "oneway=yes";
[11138]599 group: tr("deprecated tagging");
[8137]600 fixAdd: "oneway=yes";
[8165]601}
602
[17209]603/* #11329 */
604way[oneway=-1] {
[8183]605 throwWarning: tr("{0} is not recommended. Use the Reverse Ways function from the Tools menu.", "{0.tag}");
606}
607
[8165]608*[drinkable] {
609 throwWarning: tr("{0} is deprecated", "{0.key}");
610 suggestAlternative: "drinking_water";
[11138]611 group: tr("deprecated tagging");
[8184]612}
613
[17092]614/* #10329, #15877 */
[13788]615 /* simple key change */
[8184]616*[color][!colour] {
617 throwWarning: tr("{0} is deprecated", "{0.key}");
618 suggestAlternative: "colour";
[11138]619 group: tr("deprecated tagging");
[8184]620 fixChangeKey: "color => colour";
[13788]621 assertMatch: "way color=red";
622 assertNoMatch: "way color=red colour=red";
[8184]623}
[13788]624area[building:color][!building:colour] {
625 throwWarning: tr("{0} is deprecated", "{0.key}");
626 suggestAlternative: "building:colour";
[11138]627 group: tr("deprecated tagging");
[13788]628 fixChangeKey: "building:color => building:colour";
629 assertMatch: "way building:color=red";
630 assertNoMatch: "way building:color=red building:colour=red";
631}
632area[roof:color][!roof:colour] {
633 throwWarning: tr("{0} is deprecated", "{0.key}");
634 suggestAlternative: "roof:colour";
635 group: tr("deprecated tagging");
636 fixChangeKey: "roof:color => roof:colour";
637 assertMatch: "way roof:color=red";
638 assertNoMatch: "way roof:color=red roof:colour=red";
639}
640 /* both tags with same value, remove color */
641*[color][colour][color=*colour] {
642 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
643 suggestAlternative: "colour";
644 group: tr("deprecated tagging");
[8184]645 set samecolor;
646 fixRemove: "color";
[11049]647 assertMatch: "way color=red colour=red";
648 assertNoMatch: "way color=red colour=green";
[8184]649}
[13788]650area[building:color][building:colour]["building:color"=*"building:colour"] {
651 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
652 suggestAlternative: "building:colour";
653 group: tr("deprecated tagging");
654 set samebuildingcolor;
655 fixRemove: "building:color";
656 assertMatch: "way building:color=red building:colour=red";
657 assertNoMatch: "way building:color=red building:colour=green";
658}
659area[roof:color][roof:colour]["roof:color"=*"roof:colour"] {
660 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
661 suggestAlternative: "roof:colour";
662 group: tr("deprecated tagging");
663 set sameroofcolor;
664 fixRemove: "roof:color";
665 assertMatch: "way roof:color=red roof:colour=red";
666 assertNoMatch: "way roof:color=red roof:colour=green";
667}
668 /* both tags with different values, no autofix */
[8184]669*[color][colour]!.samecolor {
[13788]670 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
671 suggestAlternative: "colour";
[11138]672 group: tr("deprecated tagging");
[11049]673 assertNoMatch: "way color=red colour=red";
674 assertMatch: "way color=red colour=green";
[8185]675}
[13788]676*[building:color][building:colour]!.samebuildingcolor {
677 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
678 suggestAlternative: "building:colour";
679 group: tr("deprecated tagging");
680 assertNoMatch: "way building:color=red building:colour=red";
681 assertMatch: "way building:color=red building:colour=green";
682}
683*[roof:color][roof:colour]!.sameroofcolor {
684 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
685 suggestAlternative: "roof:colour";
686 group: tr("deprecated tagging");
687 assertNoMatch: "way roof:color=red roof:colour=red";
688 assertMatch: "way roof:color=red roof:colour=green";
689}
[15496]690/* further more universal checks, no autofix */
691/* gpxd:color has another warning in unnecessary.mapcss */
692*[/:color/][!building:color][!roof:color][!gpxd:color] {
[8204]693 throwWarning: tr("{0} is deprecated", "{0.key}");
694 suggestAlternative: ":colour";
[11138]695 group: tr("deprecated tagging");
[11049]696 assertNoMatch: "way color=red";
[13788]697 assertNoMatch: "way roof:color=grey";
698 assertMatch: "way cycleway:surface:color=grey";
[8204]699}
[13788]700*[/color:/] {
[8204]701 throwWarning: tr("{0} is deprecated", "{0.key}");
702 suggestAlternative: "colour:";
[11138]703 group: tr("deprecated tagging");
[13788]704 assertNoMatch: "way color=red";
705 assertMatch: "way color:back=grey";
[8204]706}
[8185]707
[17092]708/* #11234 */
[8544]709*[/=|\+|\/|&|<|>|;|'|"|%|#|@|\\|,|\.|\{|\}|\?|\*|\^|\$/] {
[11133]710 throwWarning: tr("{0}", "{0.key}");
711 group: tr("key with uncommon character");
[8192]712}
713
[17092]714/* #11330, #18642 */
[8192]715*[/^.$/],
[17466]716node[/^..$/][!kp][!pk],
[15828]717way[/^..$/][route=ferry][!to],
718way[/^..$/][route!=ferry],
[8204]719relation[/^..$/][!to] {
[8192]720 throwWarning: tr("uncommon short key");
[11049]721 assertNoMatch: "relation to=Berlin";
722 assertMatch: "relation fo=bar";
723 assertMatch: "way to=bar";
[15828]724 assertNoMatch: "way to=Zuidschermer;Akersloot route=ferry";
[11049]725 assertMatch: "node fo=bar";
726 assertMatch: "node f=b";
[17466]727 assertNoMatch: "node kp=5"; /* already has a deprecated warning */
728 assertNoMatch: "node pk=7"; /* already has a deprecated warning */
[8204]729}
730
[17092]731/* #11439 */
[8383]732*[sport=hockey] {
[11138]733 throwWarning: tr("{0} is deprecated", "{0.tag}");
[8383]734 suggestAlternative: "sport=field_hockey";
735 suggestAlternative: "sport=ice_hockey";
[11138]736 group: tr("deprecated tagging");
[8428]737}
738
[17092]739/* #11471 */
[8428]740*[sport=billard],
741*[sport=billards],
742*[sport=billiard] {
743 throwWarning: tr("{0} is deprecated", "{0.tag}");
744 suggestAlternative: "sport=billiards";
[11138]745 group: tr("deprecated tagging");
[8428]746 fixAdd: "sport=billiards";
[8546]747}
748
[18557]749/* #11499, #16928, #22367 */
[8546]750*[payment:electronic_purses=yes] {
[18557]751 throwOther: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:ep_geldkarte=yes", "payment:ep_quick=yes");
[8546]752}
753*[payment:cryptocurrencies=yes] {
[18557]754 throwOther: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:bitcoin=yes", "payment:litecoin=yes");
[8725]755}
756
[17092]757/* #16253 */
[13786]758*[payment:ep_quick],
759*[payment:ep_cash],
760*[payment:ep_proton],
761*[payment:ep_chipknip] {
762 throwWarning: tr("{0} is deprecated", "{0.key}");
763 group: tr("deprecated tagging");
764 fixRemove: "{0.key}";
765}
766
[17466]767/* #8717, #20326 */
768*[kp][railway!=milestone] {
[8725]769 throwWarning: tr("{0} is deprecated", "{0.key}");
770 suggestAlternative: "distance";
[11138]771 group: tr("deprecated tagging");
[8725]772 fixChangeKey: "kp => distance";
773}
[17466]774*[pk][railway!=milestone] {
[8725]775 throwWarning: tr("{0} is deprecated", "{0.key}");
776 suggestAlternative: "distance";
[11138]777 group: tr("deprecated tagging");
[8725]778 fixChangeKey: "pk => distance";
[8730]779}
[17466]780*[kp][railway=milestone] {
781 throwWarning: tr("{0} is deprecated", "{0.key}");
782 suggestAlternative: "railway:position";
783 group: tr("deprecated tagging");
784 fixChangeKey: "kp => railway:position";
785}
786*[pk][railway=milestone] {
787 throwWarning: tr("{0} is deprecated", "{0.key}");
788 suggestAlternative: "railway:position";
789 group: tr("deprecated tagging");
790 fixChangeKey: "pk => railway:position";
791}
792*[distance][railway=milestone] {
793 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
794 suggestAlternative: "railway:position";
795 group: tr("deprecated tagging");
796 fixChangeKey: "distance => railway:position";
797}
[8730]798
799*[postcode] {
800 throwWarning: tr("{0} is deprecated", "{0.key}");
801 suggestAlternative: "addr:postcode";
[11138]802 group: tr("deprecated tagging");
[8730]803 suggestAlternative: "postal_code";
[9031]804}
805
806*[water=intermittent] {
807 throwWarning: tr("{0} is deprecated", "{0.tag}");
808 suggestAlternative: "intermittent=yes";
[11138]809 group: tr("deprecated tagging");
[9031]810 fixRemove: "water";
811 fixAdd: "intermittent=yes";
[9037]812}
813
[11409]814/* #10907, #14141 */
815/* type=waterway on ways is questionable, but the autofix doesn't make it better, so disabled; type=route and type=network is used only on relations */
816way[type][type!=waterway][man_made=pipeline],
817node[type][pipeline=marker] {
[9037]818 throwWarning: tr("{0} is deprecated", "{0.key}");
819 suggestAlternative: "substance";
[11138]820 group: tr("deprecated tagging");
[9037]821 fixChangeKey: "type => substance";
822}
[9040]823
824*[landuse=farm] {
825 throwWarning: tr("{0} is deprecated", "{0.tag}");
826 suggestAlternative: "landuse=farmland";
[9045]827 suggestAlternative: "landuse=farmyard";
[11138]828 group: tr("deprecated tagging");
[9040]829}
[9093]830
831/* #12135 comment:11 */
832*[seamark=buoy]["seamark:type"=~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
833 throwWarning: tr("{0} is deprecated", "{0.tag}");
834 suggestAlternative: "{1.tag}";
[11138]835 group: tr("deprecated tagging");
[9093]836 fixRemove: "seamark";
837}
838*[seamark=buoy]["seamark:type"!~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
839 throwWarning: tr("{0} is deprecated", "{0.tag}");
840 suggestAlternative: "{1.tag}";
[11138]841 group: tr("deprecated tagging");
[9156]842}
[17092]843/* #12135 */
[9160]844*[landuse=conservation] {
845 throwWarning: tr("{0} is deprecated", "{0.tag}");
846 suggestAlternative: "boundary=protected_area";
[11138]847 group: tr("deprecated tagging");
[9160]848 fixAdd: "boundary=protected_area";
849 fixRemove: "landuse";
850}
[9156]851
852/* #12205 */
853*[amenity=kiosk] {
854 throwWarning: tr("{0} is deprecated", "{0.tag}");
855 suggestAlternative: "shop=kiosk";
[11138]856 group: tr("deprecated tagging");
[9156]857 fixChangeKey: "amenity => shop";
858}
859*[amenity=shop] {
860 throwWarning: tr("{0} is deprecated", "{0.tag}");
861 suggestAlternative: "shop=*";
[11138]862 group: tr("deprecated tagging");
[9156]863}
864*[shop=fishmonger] {
865 throwWarning: tr("{0} is deprecated", "{0.tag}");
866 suggestAlternative: "shop=seafood";
[11138]867 group: tr("deprecated tagging");
[9156]868 fixAdd: "shop=seafood";
869}
870*[shop=fish] {
871 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9435]872 suggestAlternative: "shop=seafood";
873 suggestAlternative: "shop=pet";
874 suggestAlternative: "shop=fishing";
[11138]875 group: tr("deprecated tagging");
[9156]876}
877*[shop=betting] {
878 throwWarning: tr("{0} is deprecated", "{0.tag}");
[9163]879 suggestAlternative: "shop=bookmaker";
880 suggestAlternative: "shop=lottery";
881 suggestAlternative: "amenity=casino";
882 suggestAlternative: "leisure=amusement_arcade";
883 suggestAlternative: "leisure=adult_gaming_centre";
884 suggestAlternative: "amenity=gambling";
[11138]885 group: tr("deprecated tagging");
[9156]886}
887*[shop=perfume] {
888 throwWarning: tr("{0} is deprecated", "{0.tag}");
889 suggestAlternative: "shop=perfumery";
[11138]890 group: tr("deprecated tagging");
[9156]891 fixAdd: "shop=perfumery";
892}
893*[amenity=exercise_point] {
894 throwWarning: tr("{0} is deprecated", "{0.tag}");
895 suggestAlternative: "leisure=fitness_station";
[11138]896 group: tr("deprecated tagging");
[9156]897 fixAdd: "leisure=fitness_station";
898 fixRemove: "amenity";
899}
900*[shop=auto_parts] {
901 throwWarning: tr("{0} is deprecated", "{0.tag}");
902 suggestAlternative: "shop=car_parts";
[11138]903 group: tr("deprecated tagging");
[9156]904 fixAdd: "shop=car_parts";
905}
906*[amenity=car_repair] {
907 throwWarning: tr("{0} is deprecated", "{0.tag}");
908 suggestAlternative: "shop=car_repair";
[11138]909 group: tr("deprecated tagging");
[9156]910 fixChangeKey: "amenity => shop";
911}
[9363]912
913/* #12311 */
914*[amenity=studio][type=audio],
915*[amenity=studio][type=radio],
916*[amenity=studio][type=television],
917*[amenity=studio][type=video] {
918 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
919 suggestAlternative: "studio";
[11138]920 group: tr("deprecated tagging");
[9363]921 fixChangeKey: "type => studio";
[9434]922}
923
[12930]924/* #11507, #12297, #15409 */
[9434]925*[power=cable_distribution_cabinet] {
926 throwWarning: tr("{0} is deprecated", "{0.tag}");
[19591]927 suggestAlternative: "man_made=street_cabinet + utility=power";
[11138]928 group: tr("deprecated tagging");
[9434]929 fixAdd: "man_made=street_cabinet";
[19591]930 fixAdd: "utility=power";
[9434]931 fixRemove: "power";
[9435]932}
933
[13982]934/* #16430 */
935*[power][location=kiosk] {
936 throwWarning: tr("{0} is deprecated", "{1.tag}");
[19591]937 suggestAlternative: "man_made=street_cabinet + utility=power";
[13982]938 group: tr("deprecated tagging");
939 fixAdd: "man_made=street_cabinet";
[19591]940 fixAdd: "utility=power";
[13982]941 fixRemove: "location";
942}
943
[9435]944/* #12276 */
945*[man_made=well] {
946 throwWarning: tr("{0} is deprecated", "{0.tag}");
947 suggestAlternative: "man_made=water_well";
948 suggestAlternative: "man_made=petroleum_well";
[11138]949 group: tr("deprecated tagging");
[9435]950}
951*[amenity=dog_bin],
952*[amenity=dog_waste_bin] {
953 throwWarning: tr("{0} is deprecated", "{0.tag}");
954 suggestAlternative: "amenity=waste_basket + waste=dog_excrement + vending=excrement_bags";
[11138]955 group: tr("deprecated tagging");
[9435]956 fixAdd: "amenity=waste_basket";
957 fixAdd: "waste=dog_excrement";
958 fixAdd: "vending=excrement_bags";
959}
960*[amenity=artwork] {
961 throwWarning: tr("{0} is deprecated", "{0.tag}");
962 suggestAlternative: "tourism=artwork";
[11138]963 group: tr("deprecated tagging");
[9435]964 fixAdd: "tourism=artwork";
965 fixRemove: "amenity";
966}
967*[amenity=community_center] {
968 throwWarning: tr("{0} is deprecated", "{0.tag}");
969 suggestAlternative: "amenity=community_centre";
[11138]970 group: tr("deprecated tagging");
[9435]971 fixAdd: "amenity=community_centre";
972}
973*[man_made=cut_line] {
974 throwWarning: tr("{0} is deprecated", "{0.tag}");
975 suggestAlternative: "man_made=cutline";
[11138]976 group: tr("deprecated tagging");
[9435]977 fixAdd: "man_made=cutline";
978}
979*[amenity=park] {
980 throwWarning: tr("{0} is deprecated", "{0.tag}");
981 suggestAlternative: "leisure=park";
[11138]982 group: tr("deprecated tagging");
[9435]983 fixAdd: "leisure=park";
984 fixRemove: "amenity";
985}
986*[amenity=hotel] {
987 throwWarning: tr("{0} is deprecated", "{0.tag}");
988 suggestAlternative: "tourism=hotel";
[11138]989 group: tr("deprecated tagging");
[9435]990 fixAdd: "tourism=hotel";
991 fixRemove: "amenity";
992}
993*[shop=window],
994*[shop=windows] {
995 throwWarning: tr("{0} is deprecated", "{0.tag}");
996 suggestAlternative: "craft=window_construction";
[11138]997 group: tr("deprecated tagging");
[9435]998 fixAdd: "craft=window_construction";
999 fixRemove: "shop";
1000}
1001*[amenity=education] {
1002 throwWarning: tr("{0} is deprecated", "{0.tag}");
1003 suggestAlternative: "amenity=college";
1004 suggestAlternative: "amenity=school";
1005 suggestAlternative: "amenity=university";
[17950]1006 suggestAlternative: "landuse=education";
[11138]1007 group: tr("deprecated tagging");
[9435]1008}
1009*[shop=gallery] {
1010 throwWarning: tr("{0} is deprecated", "{0.tag}");
1011 suggestAlternative: "shop=art";
[11138]1012 group: tr("deprecated tagging");
[9435]1013 fixAdd: "shop=art";
1014}
1015*[shop=gambling],
1016*[leisure=gambling] {
1017 throwWarning: tr("{0} is deprecated", "{0.tag}");
1018 suggestAlternative: "shop=bookmaker";
1019 suggestAlternative: "shop=lottery";
1020 suggestAlternative: "amenity=casino";
1021 suggestAlternative: "leisure=amusement_arcade";
1022 suggestAlternative: "amenity=gambling";
[11138]1023 group: tr("deprecated tagging");
[9435]1024}
[15262]1025*[office=real_estate],
[9435]1026*[office=real_estate_agent] {
1027 throwWarning: tr("{0} is deprecated", "{0.tag}");
[15262]1028 suggestAlternative: "office=estate_agent";
[11138]1029 group: tr("deprecated tagging");
[15262]1030 fixAdd: "office=estate_agent";
[9435]1031}
1032*[shop=glass] {
1033 throwWarning: tr("{0} is deprecated", "{0.tag}");
1034 suggestAlternative: "shop=glaziery";
1035 suggestAlternative: "craft=glaziery";
[11138]1036 group: tr("deprecated tagging");
[9435]1037}
1038*[amenity=proposed],
1039*[amenity=disused],
1040*[shop=disused],
[15262]1041*[highway=abandoned],
[9435]1042*[historic=abandoned] {
1043 throwWarning: tr("{0} is deprecated. Use the {1}: key prefix instead.", "{0.tag}", "{0.value}");
[11138]1044 group: tr("deprecated tagging");
[9593]1045}
1046
[14815]1047/* #12431 */
1048*[amenity=swimming_pool] {
1049 throwWarning: tr("{0} is deprecated", "{0.tag}");
1050 suggestAlternative: "leisure=swimming_pool";
1051 group: tr("deprecated tagging");
1052 fixChangeKey: "amenity => leisure";
1053}
1054
1055/* #17379 */
[14804]1056*[amenity=sauna] {
[9593]1057 throwWarning: tr("{0} is deprecated", "{0.tag}");
[14815]1058 suggestAlternative: "leisure=sauna";
[11138]1059 group: tr("deprecated tagging");
[9593]1060 fixChangeKey: "amenity => leisure";
[9747]1061}
1062
[14957]1063/* #12494, #17554 */
[9836]1064*[/^[^t][^i][^g].+_[0-9]$/][!/^note_[0-9]$/][!/^description_[0-9]$/] {
[14957]1065 throwWarning: tr("{0}", "{0.key}");
[11146]1066 group: tr("questionable key (ending with a number)");
[11138]1067 assertMatch: "way name_1=foo";
1068 assertNoMatch: "way note_2=foo";
1069 assertNoMatch: "way description_3=foo";
1070 assertNoMatch: "way tiger:name_base_1=bar"; /*should not warn for key tiger:name_base_1 */
1071}
[9835]1072
1073/* #12500 */
1074*[sport=skating] {
1075 throwWarning: tr("{0} is deprecated", "{0.tag}");
1076 suggestAlternative: "sport=ice_skating";
1077 suggestAlternative: "sport=roller_skating";
[11138]1078 group: tr("deprecated tagging");
[10027]1079}
1080
1081way[barrier=wall][type=noise_barrier][!wall],
1082way[barrier=wall][type=noise_barrier][wall=noise_barrier] {
1083 throwWarning: tr("{0} is deprecated", "{1.tag}");
1084 suggestAlternative: "wall=noise_barrier";
[11138]1085 group: tr("deprecated tagging");
[10027]1086 fixChangeKey: "type => wall";
1087}
1088way[barrier=wall][type=noise_barrier][wall][wall!=noise_barrier] {
1089 throwWarning: tr("{0} is deprecated", "{1.tag}");
1090 suggestAlternative: "wall=noise_barrier";
[11138]1091 group: tr("deprecated tagging");
[10095]1092}
1093
1094/* #8978, 12588 */
1095*[amenity=public_building] {
1096 throwWarning: tr("{0} is deprecated", "{0.tag}");
1097 suggestAlternative: "amenity=townhall";
1098 suggestAlternative: "amenity=community_centre";
1099 suggestAlternative: "amenity=hospital";
1100 suggestAlternative: "leisure=sports_centre";
1101 suggestAlternative: "office=government";
1102 suggestAlternative: "building=hospital";
1103 suggestAlternative: "building=public";
1104 suggestAlternative: "...";
[11138]1105 group: tr("deprecated tagging");
[10100]1106}
1107
[15648]1108/* #18517 */
[15634]1109*[office=administrative] {
1110 throwWarning: tr("{0} is deprecated", "{0.tag}");
[15648]1111 suggestAlternative: "office=government";
[15634]1112 group: tr("deprecated tagging");
[15648]1113 fixAdd: "office=government";
[15634]1114}
1115
[10100]1116/* #12708 */
1117*[vending=news_papers] {
1118 throwWarning: tr("{0} is deprecated", "{0.tag}");
1119 suggestAlternative: "vending=newspapers";
[11138]1120 group: tr("deprecated tagging");
[10100]1121 fixAdd: "vending=newspapers";
[10229]1122}
1123
1124/* #12771 */
1125*[service=drive_through] {
1126 throwWarning: tr("{0} is deprecated", "{0.tag}");
1127 suggestAlternative: "service=drive-through";
[11138]1128 group: tr("deprecated tagging");
[10229]1129 fixAdd: "service=drive-through";
[10230]1130}
1131
[15954]1132/* #12771, #9895 */
1133*[noexit][noexit!=yes][noexit!=no], /* noexit=no has an own warning */
[15548]1134way[highway=service][service][service !~ /^(alley|drive-through|drive_through|driveway|emergency_access|parking_aisle|rest_area|slipway|yes)$/], /* drive_through and yes have special warnings */
[10230]1135way[railway=rail][service][service !~ /^(crossover|siding|spur|yard)$/],
1136way[waterway=canal][service][service !~ /^(irrigation|transportation|water_power)$/] {
1137 throwWarning: tr("The key {0} has an uncommon value.", "{1.key}");
[10451]1138}
1139
1140/* #13008 */
1141*[name:botanical] {
1142 throwWarning: tr("{0} is deprecated", "{0.key}");
1143 suggestAlternative: "species";
[11138]1144 group: tr("deprecated tagging");
[10511]1145}
1146
[13049]1147/* #11344, #13101, #15480 */
1148node[pole=air_to_ground],
[10511]1149node[pole=transition] {
1150 throwWarning: tr("{0} is deprecated", "{0.tag}");
1151 suggestAlternative: "location:transition=yes";
[11138]1152 group: tr("deprecated tagging");
[10511]1153 fixAdd: "location:transition=yes";
1154 fixRemove: "pole";
1155}
[13049]1156node[tower=air_to_ground],
[10511]1157node[tower=transition] {
1158 throwWarning: tr("{0} is deprecated", "{0.tag}");
1159 suggestAlternative: "location:transition=yes";
[11138]1160 group: tr("deprecated tagging");
[10511]1161 fixAdd: "location:transition=yes";
1162 fixRemove: "tower";
[10538]1163}
1164
1165/* #13138 */
1166area[landuse=pond] {
1167 throwWarning: tr("{0} is deprecated", "{0.tag}");
1168 suggestAlternative: "natural=water + water=pond";
[11138]1169 group: tr("deprecated tagging");
[10538]1170 fixAdd: "natural=water";
1171 fixAdd: "water=pond";
1172 fixRemove: "landuse";
[10911]1173}
1174
1175*[shop=souvenir],
1176*[shop=souvenirs],
1177*[shop=souveniers] {
1178 throwWarning: tr("{0} is deprecated", "{0.tag}");
1179 suggestAlternative: "shop=gift";
[11138]1180 group: tr("deprecated tagging");
[10911]1181 fixAdd: "shop=gift";
1182}
1183
1184*[vending=animal_food] {
1185 throwWarning: tr("{0} is deprecated", "{0.tag}");
1186 suggestAlternative: "vending=animal_feed";
[11138]1187 group: tr("deprecated tagging");
[10911]1188 fixAdd: "vending=animal_feed";
[11025]1189}
1190
[11583]1191/* #14376 */
1192node[vending=photos][amenity=vending_machine],
1193node[vending=photo][amenity=vending_machine] {
1194 throwWarning: tr("{0} is deprecated", "{0.tag}");
1195 suggestAlternative: "amenity=photo_booth";
1196 group: tr("deprecated tagging");
1197 fixRemove: "vending";
1198 fixAdd: "amenity=photo_booth";
1199
1200}
1201node[vending=photos][amenity!=vending_machine] {
1202 throwWarning: tr("{0} is deprecated", "{0.tag}");
1203 suggestAlternative: "amenity=photo_booth";
1204 group: tr("deprecated tagging");
1205}
1206
[11025]1207/* #13653 */
1208node[highway=emergency_access_point][phone][!emergency_telephone_code],
1209way[highway=emergency_access_point][phone][!emergency_telephone_code] {
1210 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1211 suggestAlternative: "emergency_telephone_code";
[11138]1212 group: tr("deprecated tagging");
[11025]1213 fixChangeKey: "phone => emergency_telephone_code";
1214 assertMatch: "node highway=emergency_access_point phone=123";
1215 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=456";
1216 assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=456";
1217 assertNoMatch: "node phone=123";
1218}
1219node[highway=emergency_access_point][phone=*emergency_telephone_code],
1220way[highway=emergency_access_point][phone=*emergency_telephone_code] {
1221 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1222 suggestAlternative: "emergency_telephone_code";
[11138]1223 group: tr("deprecated tagging");
[11025]1224 fixRemove: "phone";
1225 assertNoMatch: "node highway=emergency_access_point phone=123";
1226 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123";
1227 assertMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123";
1228}
1229node[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code],
1230way[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code] {
1231 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1232 suggestAlternative: "emergency_telephone_code";
[11138]1233 group: tr("deprecated tagging");
[11025]1234 assertNoMatch: "node highway=emergency_access_point phone=123";
1235 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123";
1236 assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123";
[11232]1237}
1238
1239/* #13879 */
1240way[tracktype=1] {
1241 throwError: tr("{0}", "{0.tag}");
1242 suggestAlternative: "tracktype=grade1";
1243 group: tr("misspelled value");
1244 fixAdd: "tracktype=grade1";
1245}
1246way[tracktype=2] {
1247 throwError: tr("{0}", "{0.tag}");
1248 suggestAlternative: "tracktype=grade2";
1249 group: tr("misspelled value");
1250 fixAdd: "tracktype=grade2";
1251}
1252way[tracktype=3] {
1253 throwError: tr("{0}", "{0.tag}");
1254 suggestAlternative: "tracktype=grade3";
1255 group: tr("misspelled value");
1256 fixAdd: "tracktype=grade3";
1257}
1258way[tracktype=4] {
1259 throwError: tr("{0}", "{0.tag}");
1260 suggestAlternative: "tracktype=grade4";
1261 group: tr("misspelled value");
1262 fixAdd: "tracktype=grade4";
1263}
1264way[tracktype=5] {
1265 throwError: tr("{0}", "{0.tag}");
1266 suggestAlternative: "tracktype=grade5";
1267 group: tr("misspelled value");
1268 fixAdd: "tracktype=grade5";
1269}
1270way[tracktype][tracktype!~/^(1|2|3|4|5|grade1|grade2|grade3|grade4|grade5)$/] {
1271 throwError: tr("wrong value: {0}", "{0.tag}");
1272 suggestAlternative: "tracktype=grade1";
1273 suggestAlternative: "tracktype=grade2";
1274 suggestAlternative: "tracktype=grade3";
1275 suggestAlternative: "tracktype=grade4";
1276 suggestAlternative: "tracktype=grade5";
[11263]1277}
1278
[11477]1279area[area][area!=yes][area!=no] {
[11476]1280 throwError: tr("wrong value: {0}", "{0.tag}");
1281 suggestAlternative: "area=yes";
1282 suggestAlternative: "area=no";
1283}
1284
[11263]1285/* #13953 */
1286*[amenity=hunting_stand][lock=yes],
1287*[amenity=hunting_stand][lock=no] {
1288 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1289 suggestAlternative: "lockable";
1290 group: tr("deprecated tagging");
1291 fixChangeKey: "lock => lockable";
[11337]1292}
1293
1294*[amenity=advertising][!advertising] {
1295 throwWarning: tr("{0} is deprecated", "{0.tag}");
1296 suggestAlternative: "advertising=*";
1297 group: tr("deprecated tagging");
1298}
1299*[amenity=advertising][advertising] {
1300 throwWarning: tr("{0} is deprecated", "{0.tag}");
1301 suggestAlternative: "advertising=*";
1302 group: tr("deprecated tagging");
1303 fixRemove: "amenity";
1304}
1305
1306way[direction=up][incline=up],
1307way[direction=down][incline=down],
1308way[direction=up][!incline],
1309way[direction=down][!incline] {
1310 throwWarning: tr("{0} is deprecated", "{0.tag}");
1311 suggestAlternative: "incline";
1312 group: tr("deprecated tagging");
1313 fixChangeKey: "direction => incline";
1314}
1315way[direction=up][incline][incline!=up],
1316way[direction=down][incline][incline!=down] {
1317 throwWarning: tr("{0} is deprecated", "{0.tag}");
1318 suggestAlternative: "incline";
1319 group: tr("deprecated tagging");
[13218]1320}
1321
[15310]1322*[building=true],
1323*[building="*"],
1324*[building=Y],
1325*[building=y],
1326*[building=1] {
[13218]1327 throwError: tr("{0}", "{0.tag}");
1328 suggestAlternative: "building=yes";
1329 group: tr("misspelled value");
1330 fixAdd: "building=yes";
[13290]1331}
1332
[15758]1333/* #17786, #18612 */
[15309]1334*[building=abandoned],
1335*[building=address],
1336*[building=bing],
1337*[building=collapsed],
1338*[building=damaged],
1339*[building=demolished],
1340*[building=disused],
1341*[building=fixme],
1342*[building=occupied],
[15758]1343*[building=razed] {
1344 throwWarning: tr("{0} is not a building type.", "{0.tag}");
1345 group: tr("deprecated tagging");
1346}
[15309]1347*[building=other],
1348*[building=unclassified],
1349*[building=undefined],
1350*[building=unknown],
1351*[building=unidentified] {
1352 throwWarning: tr("{0} is not a building type.", "{0.tag}");
1353 group: tr("deprecated tagging");
[15758]1354 fixAdd: "building=yes";
[15309]1355}
1356
[13290]1357/* #15675 */
1358node[power=transformer][location=pole][transformer] {
1359 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
1360 group: tr("deprecated tagging");
1361 fixChangeKey: "location => power";
1362}
1363node[power=transformer][location=pole][!transformer] {
1364 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
1365 group: tr("deprecated tagging");
1366 fixChangeKey: "location => power";
1367 fixAdd: "transformer=yes";
1368}
[13320]1369
1370node[tourism=picnic_table],
1371node[amenity=picnic_table],
1372node[leisure=picnic],
1373node[leisure=picnic_site] {
1374 throwWarning: tr("{0} is deprecated", "{0.tag}");
1375 suggestAlternative: "tourism=picnic_site";
1376 suggestAlternative: "leisure=picnic_table";
1377 group: tr("deprecated tagging");
[13339]1378}
1379
1380/* #15804 */
1381relation[water=salt],
1382way[water=salt],
1383way[water=salt_pool],
1384way[water=salt_panne],
1385way[water=salt_pond] {
1386 throwWarning: tr("{0} is deprecated", "{0.tag}");
1387 suggestAlternative: "salt=yes";
1388 suggestAlternative: "landuse=salt_pond";
1389 group: tr("deprecated tagging");
1390}
1391
1392/* #15805 */
1393way[water=tidal] {
1394 throwWarning: tr("{0} is deprecated", "{0.tag}");
1395 suggestAlternative: "tidal=yes";
1396 fixAdd: "tidal=yes";
1397 fixRemove: "water";
1398 group: tr("deprecated tagging");
[13424]1399}
1400
1401*[amenity=toilet] {
1402 throwError: tr("{0}", "{0.tag}");
1403 suggestAlternative: "amenity=toilets";
1404 group: tr("misspelled value");
1405 fixAdd: "amenity=toilets";
[13576]1406}
1407
1408way[power=busbar] {
1409 throwWarning: tr("{0} is deprecated", "{0.tag}");
1410 suggestAlternative: "power=line + line=busbar";
1411 group: tr("deprecated tagging");
1412 fixAdd: "power=line";
1413 fixAdd: "line=busbar";
[14393]1414}
1415
1416/* #16924 */
1417*[man_made=MDF],
1418*[man_made=telephone_exchange] {
1419 throwWarning: tr("{0} is deprecated", "{0.tag}");
1420 suggestAlternative: "telecom=exchange";
1421 fixAdd: "telecom=exchange";
1422 fixRemove: "man_made";
1423 group: tr("deprecated tagging");
1424}
1425*[building=central_office] {
1426 throwWarning: tr("{0} is deprecated", "{0.tag}");
1427 suggestAlternative: "telecom=exchange";
1428 fixAdd: "telecom=exchange";
1429 fixAdd: "building=yes";
1430 group: tr("deprecated tagging");
1431}
1432*[telecom=central_office] {
1433 throwWarning: tr("{0} is deprecated", "{0.tag}");
1434 suggestAlternative: "telecom=exchange";
1435 fixAdd: "telecom=exchange";
1436 group: tr("deprecated tagging");
1437}
1438
1439/* #16925 */
1440node[communication=outdoor_dslam],
1441node[man_made=outdoor_dslam],
1442node[street_cabinet=outdoor_dslam] {
1443 throwWarning: tr("{0} is deprecated", "{0.tag}");
1444 suggestAlternative: "telecom=service_device";
1445 fixAdd: "telecom=service_device";
1446 fixRemove: "{0.key}";
1447 group: tr("deprecated tagging");
1448}
1449node[telecom=dslam],
1450node[telecom=outdoor_dslam] {
1451 throwWarning: tr("{0} is deprecated", "{0.tag}");
1452 suggestAlternative: "telecom=service_device";
1453 fixAdd: "telecom=service_device";
1454 group: tr("deprecated tagging");
1455}
[14593]1456
1457/* #15774 */
1458node[amenity=fire_hydrant] {
1459 throwWarning: tr("{0} is deprecated", "{0.tag}");
1460 suggestAlternative: "emergency=fire_hydrant";
1461 fixChangeKey: "amenity => emergency";
1462 group: tr("deprecated tagging");
1463}
1464node[fire_hydrant:type=pond] {
1465 throwWarning: tr("{0} is deprecated", "{0.tag}");
1466 suggestAlternative: "water_source=pond";
1467 fixAdd: "water_source=pond";
1468 fixRemove: "{0.key}";
1469 group: tr("deprecated tagging");
1470}
1471node[fire_hydrant:flow_capacity] {
1472 throwWarning: tr("{0} is deprecated", "{0.key}");
1473 suggestAlternative: "flow_rate";
1474 group: tr("deprecated tagging");
1475}
1476node[emergency=fire_hydrant][in_service=no] {
1477 throwWarning: tr("{0} is deprecated", "{1.tag}");
1478 suggestAlternative: "disused:emergency=fire_hydrant";
1479 fixAdd: "disused:emergency=fire_hydrant";
1480 fixRemove: "{1.key}";
1481 fixRemove: "{0.key}";
1482 group: tr("deprecated tagging");
1483}
1484node[fire_hydrant:water_source] {
1485 throwWarning: tr("{0} is deprecated", "{0.key}");
1486 suggestAlternative: "water_source";
1487 fixChangeKey: "fire_hydrant:water_source => water_source";
1488 group: tr("deprecated tagging");
[14814]1489}
1490
1491/* #17383 */
[14815]1492*[natural=waterfall] {
[14814]1493 throwWarning: tr("{0} is deprecated", "{0.tag}");
1494 suggestAlternative: "waterway=waterfall";
1495 fixChangeKey: "natural => waterway";
1496 group: tr("deprecated tagging");
[14867]1497}
1498
1499/* #17249 */
1500*[religion=unitarian] {
1501 throwWarning: tr("{0} is deprecated", "{0.tag}");
1502 suggestAlternative: "religion=unitarian_universalist";
1503 fixAdd: "religion=unitarian_universalist";
1504 group: tr("deprecated tagging");
[14874]1505}
1506
1507*[shop=shopping_centre] {
1508 throwWarning: tr("{0} is deprecated", "{0.tag}");
1509 suggestAlternative: "shop=mall";
1510 fixAdd: "shop=mall";
1511 group: tr("deprecated tagging");
[14917]1512}
1513
1514/* #17504 */
1515*[is_in],
[17944]1516node[/^is_in:/],
1517way[/^is_in:/] {
[14917]1518 throwWarning: tr("{0} is deprecated", "{0.key}");
1519 group: tr("deprecated tagging");
1520 fixRemove: "{0.key}";
1521}
[15004]1522
1523/* #17593 */
1524*[sport=football] {
1525 throwWarning: tr("{0} is deprecated", "{0.tag}");
1526 suggestAlternative: "sport=soccer";
1527 suggestAlternative: "sport=american_football";
1528 suggestAlternative: "sport=australian_football";
1529 suggestAlternative: "sport=canadian_football";
1530 suggestAlternative: "sport=rugby_league";
1531 suggestAlternative: "sport=rugby_union";
1532 suggestAlternative: "sport=gaelic_games";
1533 group: tr("deprecated tagging");
1534}
[15086]1535
1536/* #17556 */
1537*[leisure=common] {
1538 throwWarning: tr("{0} is deprecated", "{0.tag}");
1539 suggestAlternative: "landuse=*";
1540 suggestAlternative: "leisure=*";
1541 suggestAlternative: "designation=common";
1542 group: tr("deprecated tagging");
[15166]1543}
1544
1545/* #17043 */
1546*[cuisine=vegan],
1547*[cuisine=vegetarian] {
1548 throwWarning: tr("{0} is deprecated", "{0.tag}");
1549 suggestAlternative: concat("diet:", "{0.value}", "=yes");
1550 suggestAlternative: concat("diet:", "{0.value}", "=only");
1551 group: tr("deprecated tagging");
1552}
1553
1554/* #17798 */
1555*[kitchen_hours] {
1556 throwWarning: tr("{0} is deprecated", "{0.key}");
1557 suggestAlternative: "opening_hours:kitchen";
1558 fixChangeKey: "kitchen_hours => opening_hours:kitchen";
1559 group: tr("deprecated tagging");
[15199]1560}
1561
1562/* #17681 */
1563*[shop=money_transfer] {
1564 throwWarning: tr("{0} is deprecated", "{0.tag}");
1565 suggestAlternative: "amenity=money_transfer";
1566 fixChangeKey: "shop => amenity";
1567 group: tr("deprecated tagging");
[15200]1568}
1569
1570*[contact:google_plus] {
1571 throwWarning: tr("{0} is deprecated", "{0.key}");
1572 fixRemove: "contact:google_plus";
1573 group: tr("deprecated tagging");
[15262]1574}
1575
1576/* #17370 */
1577*[amenity=garages],
1578*[amenity=garage] {
1579 throwWarning: tr("{0} is deprecated", "{0.tag}");
1580 suggestAlternative: concat("building=", "{0.value}");
1581 suggestAlternative: "landuse=garages";
1582 suggestAlternative: "amenity=parking + parking=garage_boxes";
1583 group: tr("deprecated tagging");
1584}
1585*[shop=winery],
1586*[amenity=winery] {
1587 throwWarning: tr("{0} is deprecated", "{0.tag}");
1588 suggestAlternative: "craft=winery";
1589 suggestAlternative: "shop=wine";
1590 group: tr("deprecated tagging");
1591}
1592*[amenity=youth_centre] {
1593 throwWarning: tr("{0} is deprecated", "{0.tag}");
1594 suggestAlternative: "amenity=community_centre + community_centre=youth_centre";
1595 fixAdd: "amenity=community_centre";
1596 fixAdd: "community_centre=youth_centre";
1597 group: tr("deprecated tagging");
1598}
1599*[building:type][building=yes],
1600*[building:type][!building] {
1601 throwWarning: tr("{0} is deprecated", "{0.key}");
1602 suggestAlternative: "building";
1603 group: tr("deprecated tagging");
1604 fixChangeKey: "building:type => building";
1605 assertMatch: "way building:type=church";
1606 assertMatch: "way building:type=church building=yes";
1607 assertNoMatch: "way building:type=church building=supermarket";
1608}
1609*[building:type][building][building!=yes] {
1610 throwWarning: tr("{0} is deprecated", "{0.key}");
1611 suggestAlternative: "building";
1612 group: tr("deprecated tagging");
1613 assertNoMatch: "way building:type=church";
1614 assertNoMatch: "way building:type=church building=yes";
1615 assertMatch: "way building:type=church building=supermarket";
1616}
1617*[escalator] {
1618 throwWarning: tr("{0} is deprecated", "{0.key}");
1619 suggestAlternative: "highway=steps + conveying=*";
1620 group: tr("deprecated tagging");
1621}
1622*[historic_name][!old_name] {
1623 throwWarning: tr("{0} is deprecated", "{0.key}");
1624 suggestAlternative: "old_name";
1625 group: tr("deprecated tagging");
1626 fixChangeKey: "historic_name => old_name";
1627}
1628*[historic_name][old_name] {
1629 throwWarning: tr("{0} is deprecated", "{0.key}");
1630 suggestAlternative: "old_name";
1631 group: tr("deprecated tagging");
1632}
1633*[landuse=field] {
1634 throwWarning: tr("{0} is deprecated", "{0.tag}");
1635 suggestAlternative: "landuse=farmland";
1636 group: tr("deprecated tagging");
1637 fixAdd: "landuse=farmland";
1638}
1639*[leisure=beach] {
1640 throwWarning: tr("{0} is deprecated", "{0.tag}");
1641 suggestAlternative: "natural=beach";
1642 suggestAlternative: "leisure=beach_resort";
1643 group: tr("deprecated tagging");
1644}
1645*[leisure=club] {
1646 throwWarning: tr("{0} is deprecated", "{0.tag}");
1647 suggestAlternative: "club=*";
1648 group: tr("deprecated tagging");
1649}
1650*[leisure=video_arcade] {
1651 throwWarning: tr("{0} is deprecated", "{0.tag}");
1652 suggestAlternative: "leisure=amusement_arcade";
1653 suggestAlternative: "leisure=adult_gaming_centre";
1654 group: tr("deprecated tagging");
1655}
1656*[man_made=jetty] {
1657 throwWarning: tr("{0} is deprecated", "{0.tag}");
1658 suggestAlternative: "man_made=pier";
1659 group: tr("deprecated tagging");
1660 fixAdd: "man_made=pier";
1661}
1662*[man_made=village_pump] {
1663 throwWarning: tr("{0} is deprecated", "{0.tag}");
1664 suggestAlternative: "man_made=water_well";
1665 group: tr("deprecated tagging");
1666 fixAdd: "man_made=water_well";
1667}
1668*[man_made=water_tank] {
1669 throwWarning: tr("{0} is deprecated", "{0.tag}");
1670 suggestAlternative: "man_made=storage_tank + content=water";
1671 group: tr("deprecated tagging");
1672 fixAdd: "man_made=storage_tank";
1673 fixAdd: "content=water";
1674}
1675*[natural=moor] {
1676 throwWarning: tr("{0} is deprecated", "{0.tag}");
1677 suggestAlternative: "natural=heath";
1678 suggestAlternative: "natural=scrub";
1679 suggestAlternative: "natural=grassland";
1680 suggestAlternative: "natural=wetland";
1681 suggestAlternative: "natural=fell";
1682 suggestAlternative: "natural=tundra";
1683 suggestAlternative: "landuse=meadow + meadow=agricultural";
1684 group: tr("deprecated tagging");
1685}
1686*[noexit=no][!fixme] {
1687 throwWarning: tr("{0} is deprecated", "{0.tag}");
1688 suggestAlternative: "fixme=continue";
1689 group: tr("deprecated tagging");
1690 fixAdd: "fixme=continue";
1691 fixRemove: "noexit";
1692}
1693*[noexit=no][fixme] {
1694 throwWarning: tr("{0} is deprecated", "{0.tag}");
1695 suggestAlternative: "fixme=continue";
1696 group: tr("deprecated tagging");
1697}
1698*[shop=dive] {
1699 throwWarning: tr("{0} is deprecated", "{0.tag}");
1700 suggestAlternative: "shop=scuba_diving";
1701 group: tr("deprecated tagging");
1702 fixAdd: "shop=scuba_diving";
1703}
1704*[shop=furnace] {
1705 throwWarning: tr("{0} is deprecated", "{0.tag}");
1706 suggestAlternative: "shop=fireplace";
1707 suggestAlternative: "craft=plumber";
1708 group: tr("deprecated tagging");
1709}
1710*[sport=paragliding] {
1711 throwWarning: tr("{0} is deprecated", "{0.tag}");
1712 suggestAlternative: "sport=free_flying";
1713 group: tr("deprecated tagging");
1714 fixAdd: "sport=free_flying";
1715}
1716*[tourism=bed_and_breakfast] {
1717 throwWarning: tr("{0} is deprecated", "{0.tag}");
1718 suggestAlternative: "tourism=guest_house + guest_house=bed_and_breakfast";
1719 group: tr("deprecated tagging");
1720 fixAdd: "tourism=guest_house";
1721 fixAdd: "guest_house=bed_and_breakfast";
[15263]1722}
1723
1724/* #17880 */
1725*[diaper=yes],
1726*[diaper=no] {
1727 throwWarning: tr("{0} is deprecated", "{0.tag}");
1728 suggestAlternative: concat("changing_table=", "{0.value}");
1729 group: tr("deprecated tagging");
1730 fixChangeKey: "diaper => changing_table";
1731 set diaper_checked;
1732}
1733*[diaper][diaper =~ /^[1-9][0-9]*$/] {
1734 throwWarning: tr("{0} is deprecated", "{0.tag}");
1735 suggestAlternative: concat("changing_table=yes + changing_table:count=", "{0.value}");
1736 group: tr("deprecated tagging");
1737 fixChangeKey: "diaper => changing_table:count";
1738 fixAdd: "changing_table=yes";
1739 set diaper_checked;
1740}
1741*[diaper=room] {
1742 throwWarning: tr("{0} is deprecated", "{0.tag}");
1743 suggestAlternative: "changing_table=room";
1744 suggestAlternative: "changing_table=dedicated_room";
1745 group: tr("deprecated tagging");
1746 set diaper_checked;
1747}
1748*[diaper]!.diaper_checked {
1749 throwWarning: tr("{0} is deprecated", "{0.key}");
1750 suggestAlternative: "changing_table";
1751 group: tr("deprecated tagging");
1752}
1753*[diaper:male=yes] {
1754 throwWarning: tr("{0} is deprecated", "{0.tag}");
1755 suggestAlternative: "changing_table:location=male_toilet";
1756 group: tr("deprecated tagging");
1757 fixAdd: "changing_table:location=male_toilet";
1758 fixRemove: "diaper:male";
1759 set diaper___checked;
1760}
1761*[diaper:female=yes] {
1762 throwWarning: tr("{0} is deprecated", "{0.tag}");
1763 suggestAlternative: "changing_table:location=female_toilet";
1764 group: tr("deprecated tagging");
1765 fixAdd: "changing_table:location=female_toilet";
1766 fixRemove: "diaper:female";
1767 set diaper___checked;
1768}
1769*[diaper:unisex=yes] {
1770 throwWarning: tr("{0} is deprecated", "{0.tag}");
1771 suggestAlternative: "changing_table:location=unisex_toilet";
1772 group: tr("deprecated tagging");
1773 fixAdd: "changing_table:location=unisex_toilet";
1774 fixRemove: "diaper:unisex";
1775 set diaper___checked;
1776}
1777*[diaper:wheelchair=yes],
1778*[diaper:wheelchair=no] {
1779 throwWarning: tr("{0} is deprecated", "{0.tag}");
1780 suggestAlternative: concat("changing_table:wheelchair=", "{0.value}");
1781 group: tr("deprecated tagging");
1782 fixChangeKey: "diaper:wheelchair => changing_table:wheelchair";
1783 set diaper___checked;
1784}
1785*[diaper:fee=yes],
1786*[diaper:fee=no] {
1787 throwWarning: tr("{0} is deprecated", "{0.tag}");
1788 suggestAlternative: concat("changing_table:fee=", "{0.value}");
1789 group: tr("deprecated tagging");
1790 fixChangeKey: "diaper:fee => changing_table:fee";
1791 set diaper___checked;
1792}
1793*[/^diaper:/]!.diaper___checked {
1794 throwWarning: tr("{0} is deprecated", "diaper:*");
1795 suggestAlternative: "changing_table:*";
1796 group: tr("deprecated tagging");
1797}
1798*[changing_table][changing_table!~/^(yes|no|limited)$/] {
1799 throwWarning: tr("wrong value: {0}", "{0.tag}");
1800 suggestAlternative: "changing_table=yes";
1801 suggestAlternative: "changing_table=no";
1802 suggestAlternative: "changing_table=limited";
[15264]1803}
1804
1805/* #17990 */
1806*[roof:shape=half_hipped] {
1807 throwWarning: tr("{0} is deprecated", "{0.tag}");
1808 suggestAlternative: "roof:shape=half-hipped";
1809 group: tr("deprecated tagging");
1810 fixAdd: "roof:shape=half-hipped";
[15266]1811}
1812
1813/* #18003 */
1814*[bridge_name] {
1815 throwWarning: tr("{0} is deprecated", "{0.key}");
1816 suggestAlternative: "bridge:name";
1817 group: tr("deprecated tagging");
1818 fixChangeKey: "bridge_name => bridge:name";
[15270]1819}
1820
1821/* #18007 */
1822*[access=public] {
1823 throwWarning: tr("{0} is deprecated", "{0.tag}");
1824 suggestAlternative: "access=yes";
1825 group: tr("deprecated tagging");
1826 fixAdd: "access=yes";
[15273]1827}
1828
1829/* #17330 */
1830*[crossing=island] {
1831 throwWarning: tr("{0} is deprecated", "{0.tag}");
1832 suggestAlternative: "crossing:island=yes";
1833 group: tr("deprecated tagging");
1834 fixRemove: "crossing";
1835 fixAdd: "crossing:island=yes";
[15360]1836}
1837
1838/* #18152 */
1839*[recycling:metal] {
1840 throwWarning: tr("{0} is deprecated", "{0.key}");
1841 suggestAlternative: "recycling:scrap_metal";
1842 group: tr("deprecated tagging");
1843 fixChangeKey: "recycling:metal => recycling:scrap_metal";
1844}
[15435]1845
1846/* #18154 */
1847*[shop=dog_grooming] {
1848 throwWarning: tr("{0} is deprecated", "{0.tag}");
1849 suggestAlternative: "shop=pet_grooming";
1850 fixAdd: "shop=pet_grooming";
1851 group: tr("deprecated tagging");
[15454]1852}
1853
[17263]1854/* #17984, #19383 */
[15454]1855*[tower:type=anchor],
1856*[tower:type=suspension] {
1857 throwWarning: tr("{0} is deprecated", "{0.tag}");
1858 suggestAlternative: concat("line_attachment=", "{0.value}");
1859 fixChangeKey: "tower:type => line_attachment";
[17263]1860 set power_tower_type_warning;
[15454]1861 group: tr("deprecated tagging");
[15464]1862}
[17263]1863*[tower:type=branch][branch:type=split],
1864*[tower:type=branch][branch:type=loop] {
1865 throwWarning: tr("{0} is deprecated", "{0.tag}");
1866 suggestAlternative: "line_management=split";
1867 fixAdd: "line_management=split";
1868 fixRemove: "tower:type";
1869 fixRemove: "branch:type";
1870 set power_tower_type_warning;
1871 group: tr("deprecated tagging");
1872}
1873*[tower:type=branch][!branch:type],
1874*[tower:type=branch][branch:type=tap] {
1875 throwWarning: tr("{0} is deprecated", "{0.tag}");
1876 suggestAlternative: "line_management=branch";
1877 fixAdd: "line_management=branch";
1878 fixRemove: "tower:type";
1879 fixRemove: "branch:type";
1880 set power_tower_type_warning;
1881 group: tr("deprecated tagging");
1882}
1883*[tower:type=branch][branch:type=cross] {
1884 throwWarning: tr("{0} is deprecated", "{0.tag}");
1885 suggestAlternative: "line_management=cross";
1886 fixAdd: "line_management=cross";
1887 fixRemove: "tower:type";
1888 fixRemove: "branch:type";
1889 set power_tower_type_warning;
1890 group: tr("deprecated tagging");
1891}
1892*[tower:type=termination] {
1893 throwWarning: tr("{0} is deprecated", "{0.tag}");
1894 suggestAlternative: "line_management=termination";
1895 fixAdd: "line_management=termination";
1896 fixRemove: "tower:type";
1897 set power_tower_type_warning;
1898 group: tr("deprecated tagging");
1899}
[17284]1900*[tower:type=transition] {
1901 throwWarning: tr("{0} is deprecated", "{0.tag}");
1902 suggestAlternative: "location:transition=yes";
1903 fixAdd: "location:transition=yes";
1904 fixRemove: "tower:type";
1905 set power_tower_type_warning;
1906 group: tr("deprecated tagging");
1907}
[17263]1908*[tower:type=transposing] {
1909 throwWarning: tr("{0} is deprecated", "{0.tag}");
1910 suggestAlternative: "line_management=transpose";
1911 fixAdd: "line_management=transpose";
1912 fixRemove: "tower:type";
1913 set power_tower_type_warning;
1914 group: tr("deprecated tagging");
1915}
1916*[tower:type=crossing] {
1917 throwWarning: tr("{0} is deprecated", "{0.tag}");
1918 suggestAlternative: "height=* + design=*";
1919 set power_tower_type_warning;
1920 group: tr("deprecated tagging");
1921}
1922*[tower:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_tower_type_warning {
1923 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
1924 suggestAlternative: "design";
1925 suggestAlternative: "structure";
[18834]1926 suggestAlternative: "line_arrangement";
1927 suggestAlternative: "line_attachment";
[17263]1928 suggestAlternative: "line_management";
1929 set generic_power_tower_type_warning;
1930 group: tr("deprecated tagging");
1931}
[15464]1932node[pole:type=anchor],
1933node[pole:type=suspension] {
1934 throwWarning: tr("{0} is deprecated", "{0.tag}");
1935 suggestAlternative: concat("line_attachment=", "{0.value}");
1936 fixChangeKey: "pole:type => line_attachment";
[17263]1937 set power_pole_type_warning;
[15464]1938 group: tr("deprecated tagging");
1939}
[17263]1940node[pole:type=branch][branch:type=split],
1941node[pole:type=branch][branch:type=loop] {
1942 throwWarning: tr("{0} is deprecated", "{0.tag}");
1943 suggestAlternative: "line_management=split";
1944 fixAdd: "line_management=split";
1945 fixRemove: "pole:type";
1946 fixRemove: "branch:type";
1947 set power_pole_type_warning;
1948 group: tr("deprecated tagging");
1949}
1950node[pole:type=branch][!branch:type],
1951node[pole:type=branch][branch:type=tap] {
1952 throwWarning: tr("{0} is deprecated", "{0.tag}");
1953 suggestAlternative: "line_management=branch";
1954 fixAdd: "line_management=branch";
1955 fixRemove: "pole:type";
1956 fixRemove: "branch:type";
1957 set power_pole_type_warning;
1958 group: tr("deprecated tagging");
1959}
1960node[pole:type=branch][branch:type=cross] {
1961 throwWarning: tr("{0} is deprecated", "{0.tag}");
1962 suggestAlternative: "line_management=cross";
1963 fixAdd: "line_management=cross";
1964 fixRemove: "pole:type";
1965 fixRemove: "branch:type";
1966 set power_pole_type_warning;
1967 group: tr("deprecated tagging");
1968}
1969node[pole:type=termination] {
1970 throwWarning: tr("{0} is deprecated", "{0.tag}");
1971 suggestAlternative: "line_management=termination";
1972 fixAdd: "line_management=termination";
1973 fixRemove: "pole:type";
1974 set power_pole_type_warning;
1975 group: tr("deprecated tagging");
1976}
[17284]1977node[pole:type=transition] {
1978 throwWarning: tr("{0} is deprecated", "{0.tag}");
1979 suggestAlternative: "location:transition=yes";
1980 fixAdd: "location:transition=yes";
1981 fixRemove: "pole:type";
1982 set power_pole_type_warning;
1983 group: tr("deprecated tagging");
1984}
[17263]1985*[pole:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_pole_type_warning!.generic_power_tower_type_warning {
1986 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
[18834]1987 suggestAlternative: "line_arrangement";
1988 suggestAlternative: "line_attachment";
[17263]1989 suggestAlternative: "line_management";
1990 group: tr("deprecated tagging");
1991}
[15526]1992
1993/* #18267 */
[15528]1994node[man_made=pipeline_marker],
[15526]1995node[pipeline=marker],
1996node[power=marker],
1997node[cable=marker] {
1998 throwWarning: tr("{0} is deprecated", "{0.tag}");
1999 suggestAlternative: "marker=* + utility=*";
2000 group: tr("deprecated tagging");
[15533]2001}
2002
2003/* #17643 */
2004way[barrier=embankment] {
2005 throwWarning: tr("{0} is deprecated", "{0.tag}");
2006 suggestAlternative: "man_made=embankment";
2007 suggestAlternative: "embankment=yes";
2008 group: tr("deprecated tagging");
[15636]2009}
2010
2011/* #18469 */
2012way[landuse=churchyard] {
2013 throwWarning: tr("{0} is deprecated", "{0.tag}");
2014 suggestAlternative: "landuse=religious";
2015 suggestAlternative: "amenity=graveyard";
2016 group: tr("deprecated tagging");
2017}
[15648]2018
2019*[sloped_curb=yes][!kerb],
2020*[sloped_curb=both][!kerb] {
2021 throwWarning: tr("{0} is deprecated", "{0.tag}");
2022 suggestAlternative: "kerb=lowered";
2023 group: tr("deprecated tagging");
2024 fixRemove: "sloped_curb";
2025 fixAdd: "kerb=lowered";
2026}
2027*[sloped_curb=no][!kerb] {
2028 throwWarning: tr("{0} is deprecated", "{0.tag}");
2029 suggestAlternative: "kerb=yes";
2030 group: tr("deprecated tagging");
2031 fixRemove: "sloped_curb";
2032 fixAdd: "kerb=yes";
2033}
2034*[sloped_curb][sloped_curb !~ /^(yes|both|no)$/][!kerb],
2035*[sloped_curb][kerb] {
2036 throwWarning: tr("{0} is deprecated", "{0.key}");
2037 suggestAlternative: "kerb=*";
2038 group: tr("deprecated tagging");
2039}
[15715]2040
2041/* #18571 */
2042*[unnamed=yes] {
2043 throwWarning: tr("{0} is deprecated", "{0.tag}");
2044 suggestAlternative: "noname=yes";
2045 fixChangeKey: "unnamed => noname";
2046 group: tr("deprecated tagging");
[15722]2047}
2048
2049node[segregated][segregated!=yes][segregated!=no],
2050way[segregated ][segregated!=yes][segregated!=no] {
2051 throwWarning: tr("unusual value of {0}", "{0.key}");
[15758]2052}
2053
2054/* #18603 */
2055way[bicycle:oneway] {
2056 throwWarning: tr("{0} is deprecated", "{0.key}");
2057 suggestAlternative: "oneway:bicycle";
2058 fixChangeKey: "bicycle:oneway => oneway:bicycle";
2059 group: tr("deprecated tagging");
2060}
2061
2062/* #18605 */
2063*[building:height] {
2064 throwWarning: tr("{0} is deprecated", "{0.key}");
2065 suggestAlternative: "height";
2066 fixChangeKey: "building:height => height";
2067 group: tr("deprecated tagging");
2068}
2069*[building:min_height] {
2070 throwWarning: tr("{0} is deprecated", "{0.key}");
2071 suggestAlternative: "min_height";
2072 fixChangeKey: "building:min_height => min_height";
2073 group: tr("deprecated tagging");
[15831]2074}
2075
2076/* #11232 */
2077way[highway][construction=yes][highway!=construction] {
2078 throwWarning: tr("{0} is deprecated", "{1.tag}");
2079 suggestAlternative: "construction=minor";
2080 suggestAlternative: concat("highway=construction + construction=", "{0.value}");
2081 group: tr("deprecated tagging");
[15867]2082}
2083
[18644]2084/* #18659, #20539 */
2085*[car] {
[15867]2086 throwWarning: tr("{0} is deprecated", "{0.key}");
2087 suggestAlternative: "motorcar";
2088 group: tr("deprecated tagging");
2089 fixChangeKey: "car => motorcar";
2090}
[15930]2091
2092/* #18767 */
2093*[navigationaid=approach_light],
2094*[navigationaid="ALS (Approach lighting system)"] {
2095 throwWarning: tr("{0} is deprecated", "{0.tag}");
2096 suggestAlternative: "navigationaid=als";
2097 group: tr("deprecated tagging");
2098 fixAdd: "navigationaid=als";
[15966]2099}
2100
2101/* #18819 */
2102node[exit_to] {
2103 throwWarning: tr("{0} is deprecated", "{0.key}");
2104 suggestAlternative: "destination";
2105 group: tr("deprecated tagging");
[16173]2106}
2107
2108/* #18951 */
[16185]2109*[water=riverbank][!natural] {
[16173]2110 throwWarning: tr("{0} is deprecated", "{0.tag}");
[16185]2111 suggestAlternative: "natural=water + water=river";
[16173]2112 group: tr("deprecated tagging");
2113 fixAdd: "water=river";
[16185]2114 fixAdd: "natural=water";
2115}
2116*[water=riverbank][natural] {
2117 throwWarning: tr("{0} is deprecated", "{0.tag}");
2118 suggestAlternative: "natural=water + water=river";
2119 group: tr("deprecated tagging");
[16316]2120}
2121
[18519]2122/* #21630 */
2123*[waterway=riverbank][!natural][!water],
2124*[waterway=riverbank][natural=water][!water],
2125*[waterway=riverbank][!natural][water=river],
2126*[waterway=riverbank][natural=water][water=river] {
2127 throwWarning: tr("{0} is deprecated", "{0.tag}");
2128 suggestAlternative: "natural=water + water=river";
2129 group: tr("deprecated tagging");
2130 fixAdd: "natural=water";
2131 fixAdd: "water=river";
2132 fixRemove: "waterway";
2133 assertMatch: "way waterway=riverbank";
2134 assertMatch: "way waterway=riverbank natural=water";
2135 assertMatch: "way waterway=riverbank water=river";
2136 assertMatch: "way waterway=riverbank natural=water water=river";
2137 assertNoMatch: "way waterway=riverbank natural=shingle";
2138 assertNoMatch: "way waterway=riverbank water=lake";
2139 assertNoMatch: "way waterway=riverbank natural=water water=lake";
2140 assertNoMatch: "way waterway=riverbank natural=shingle water=river";
2141}
2142*[waterway=riverbank][natural][natural!=water],
2143*[waterway=riverbank][water][water!=river] {
2144 throwWarning: tr("{0} is deprecated", "{0.tag}");
2145 suggestAlternative: "natural=water + water=river";
2146 group: tr("deprecated tagging");
2147 assertMatch: "way waterway=riverbank natural=shingle";
2148 assertMatch: "way waterway=riverbank water=lake";
2149 assertNoMatch: "way waterway=riverbank";
2150 assertNoMatch: "way waterway=riverbank natural=water";
2151 assertNoMatch: "way waterway=riverbank water=river";
2152 assertNoMatch: "way waterway=riverbank natural=water water=river";
2153}
2154
[16316]2155node[amenity=bench][capacity][!seats],
2156way[amenity=bench][capacity][!seats] {
2157 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
2158 suggestAlternative: "seats";
2159 group: tr("deprecated tagging");
2160 fixChangeKey: "capacity => seats";
2161}
2162node[amenity=bench][capacity][seats],
2163way[amenity=bench][capacity][seats] {
2164 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
2165 suggestAlternative: "seats";
2166 group: tr("deprecated tagging");
[16656]2167}
2168
2169/* #19396 */
2170way[stream=intermittent] {
2171 throwWarning: tr("{0} is deprecated", "{0.tag}");
2172 suggestAlternative: "intermittent=yes";
2173 suggestAlternative: "seasonal=yes";
2174 group: tr("deprecated tagging");
[16714]2175}
2176
2177*[shop=lamps] {
2178 throwWarning: tr("{0} is deprecated", "{0.tag}");
2179 suggestAlternative: "shop=lighting";
2180 group: tr("deprecated tagging");
2181 fixAdd: "shop=lighting";
[16752]2182}
2183
[16762]2184/* #19180 */
[16752]2185*[access=customer] {
2186 throwWarning: tr("{0} is deprecated", "{0.tag}");
2187 suggestAlternative: "access=customers";
2188 group: tr("deprecated tagging");
2189 fixAdd: "access=customers";
2190}
2191*[addr:inclusion=estimated] {
2192 throwWarning: tr("{0} is deprecated", "{0.tag}");
2193 suggestAlternative: "addr:inclusion=estimate";
2194 group: tr("deprecated tagging");
2195 fixAdd: "addr:inclusion=estimate";
2196}
2197*[building=apartment] {
2198 throwWarning: tr("{0} is deprecated", "{0.tag}");
2199 suggestAlternative: "building=apartments";
2200 group: tr("deprecated tagging");
2201 fixAdd: "building=apartments";
[16760]2202}
2203node[lamp_mount="bent mast"] {
2204 throwWarning: tr("{0} is deprecated", "{0.tag}");
2205 suggestAlternative: "lamp_mount=bent_mast";
2206 group: tr("deprecated tagging");
2207 fixAdd: "lamp_mount=bent_mast";
2208}
2209node[lamp_mount="straight mast"] {
2210 throwWarning: tr("{0} is deprecated", "{0.tag}");
2211 suggestAlternative: "lamp_mount=straight_mast";
2212 group: tr("deprecated tagging");
2213 fixAdd: "lamp_mount=straight_mast";
2214}
2215node[lamp_type=electrical] {
2216 throwWarning: tr("{0} is deprecated", "{0.tag}");
2217 suggestAlternative: "lamp_type=electric";
2218 group: tr("deprecated tagging");
2219 fixAdd: "lamp_type=electric";
[16787]2220}
2221*[generator:type=solar_photovoltaic_panels] {
2222 throwWarning: tr("{0} is deprecated", "{0.tag}");
2223 suggestAlternative: "generator:type=solar_photovoltaic_panel";
2224 group: tr("deprecated tagging");
2225 fixAdd: "generator:type=solar_photovoltaic_panel";
2226}
2227*[building=part] {
2228 throwWarning: tr("{0} is deprecated", "{0.tag}");
2229 suggestAlternative: "building:part=yes";
2230 group: tr("deprecated tagging");
2231 /* without autofix, it is not clear if a building or a building part is mapped */
2232}
2233
[17017]2234/* #19739 */
2235*[natural=sink_hole] {
2236 throwWarning: tr("{0} is deprecated", "{0.tag}");
2237 suggestAlternative: "natural=sinkhole";
2238 group: tr("deprecated tagging");
2239 fixAdd: "natural=sinkhole";
2240}
2241
[17020]2242/* #19782 */
2243*[climbing:grade:UIAA:min] {
2244 throwWarning: tr("{0} is deprecated", "{0.key}");
2245 suggestAlternative: "climbing:grade:uiaa:min";
2246 group: tr("deprecated tagging");
2247 fixChangeKey: "climbing:grade:UIAA:min => climbing:grade:uiaa:min";
2248}
2249*[climbing:grade:UIAA:max] {
2250 throwWarning: tr("{0} is deprecated", "{0.key}");
2251 suggestAlternative: "climbing:grade:uiaa:max";
2252 group: tr("deprecated tagging");
2253 fixChangeKey: "climbing:grade:UIAA:max => climbing:grade:uiaa:max";
2254}
2255*[climbing:grade:UIAA:mean] {
2256 throwWarning: tr("{0} is deprecated", "{0.key}");
2257 suggestAlternative: "climbing:grade:uiaa:mean";
2258 group: tr("deprecated tagging");
2259 fixChangeKey: "climbing:grade:UIAA:mean => climbing:grade:uiaa:mean";
2260}
2261*[climbing:grade:UIAA] {
2262 throwWarning: tr("{0} is deprecated", "{0.key}");
2263 suggestAlternative: "climbing:grade:uiaa";
2264 group: tr("deprecated tagging");
2265 fixChangeKey: "climbing:grade:UIAA => climbing:grade:uiaa";
2266}
2267
[17048]2268/* #19835 */
2269*[cuisine][cuisine =~ /^(?i)(bbq)$/] { /* single value cases with autofix */
2270 throwWarning: tr("{0} is deprecated", "{0.tag}");
2271 suggestAlternative: "cuisine=barbecue";
2272 group: tr("deprecated tagging");
2273 fixAdd: "cuisine=barbecue";
2274 set bbq_autofix;
2275 assertMatch: "way cuisine=bbq";
2276 assertMatch: "way cuisine=BBQ";
2277 assertNoMatch: "way cuisine=pizza;Bbq";
2278 assertNoMatch: "way cuisine=pizza;bbq";
2279 assertNoMatch: "way cuisine=bbq;pizza";
2280 assertNoMatch: "way cuisine=pasta;bbq;pizza";
2281 assertNoMatch: "way cuisine=korean_bbq";
2282 assertNoMatch: "way cuisine=korean_bbq;bbq";
2283}
2284*[cuisine =~ /(?i)(;bbq|bbq;)/][cuisine!~/(?i)(_bbq)/] { /* multi value cases without autofix */
2285 throwWarning: tr("{0} is deprecated", "cuisine=bbq");
2286 suggestAlternative: "cuisine=barbecue";
2287 group: tr("deprecated tagging");
2288 assertNoMatch: "way cuisine=bbq";
2289 assertNoMatch: "way cuisine=BBQ";
2290 assertMatch: "way cuisine=pizza;Bbq";
2291 assertMatch: "way cuisine=pizza;bbq";
2292 assertMatch: "way cuisine=bbq;pizza";
2293 assertMatch: "way cuisine=pasta;bbq;pizza";
2294 assertNoMatch: "way cuisine=korean_bbq";
2295 assertNoMatch: "way cuisine=korean_bbq;bbq"; /* corner case (mixed ; and _) not supported by these rules, probably not present in the osm database */
2296}
2297
[17469]2298/* #17498, #20392 */
[17122]2299way[cycleway=none],
2300way[cycleway:left=none],
[17469]2301way[cycleway:right=none],
2302way[shoulder=none] {
[17122]2303 throwWarning: tr("{0} is deprecated", "{0.tag}");
2304 suggestAlternative: concat("{0.key}", "=no");
2305 group: tr("deprecated tagging");
2306 fixAdd: concat("{0.key}", "=no");
2307}
2308
[17153]2309/* #17809 */
2310*[Fixme] {
2311 throwWarning: tr("{0} is deprecated", "{0.key}");
2312 suggestAlternative: "fixme";
2313 group: tr("deprecated tagging");
2314 fixChangeKey: "Fixme => fixme";
2315 assertMatch: "way Fixme=foo";
2316 assertNoMatch: "way fixme=foo";
2317 assertNoMatch: "way FIXME=foo";
2318}
2319
[17468]2320/* #20338 */
2321*[amenity=embassy] {
2322 throwWarning: tr("{0} is deprecated", "{0.tag}");
2323 suggestAlternative: "office=diplomatic + diplomatic=embassy";
2324 group: tr("deprecated tagging");
2325 fixAdd: "office=diplomatic";
2326 fixChangeKey: "amenity => diplomatic";
2327}
2328
[17940]2329/* #11019 */
2330*[service:bicycle:chaintool] {
2331 throwWarning: tr("{0} is deprecated", "{0.key}");
2332 suggestAlternative: "service:bicycle:chain_tool";
2333 group: tr("deprecated tagging");
2334 fixChangeKey: "service:bicycle:chaintool => service:bicycle:chain_tool";
2335}
2336
[19590]2337/* #20421 */
2338*[transformer=minor_distribution] {
2339 throwWarning: tr("{0} is deprecated", "{1.tag}");
2340 suggestAlternative: "transformer=distribution";
2341 group: tr("deprecated tagging");
2342 fixAdd: "transformer=distribution";
2343}
2344
2345*[transformer=traction] {
2346 throwWarning: tr("{0} is deprecated", "{0.tag}");
2347 suggestAlternative: "transformer=main";
2348 group: tr("deprecated tagging");
2349 fixAdd: "transformer=main";
2350}
2351
2352*[transformer=auto] {
2353 throwWarning: tr("{0} is deprecated", "{0.tag}");
2354 suggestAlternative: "transformer=* + windings:auto=yes";
2355 group: tr("deprecated tagging");
2356 fixRemove: "transformer";
2357 fixAdd: "windings:auto=yes";
2358}
2359
[19591]2360/* #20421 */
2361*[transformer=minor_distribution] {
2362 throwWarning: tr("{0} is deprecated", "{1.tag}");
2363 suggestAlternative: "transformer=distribution";
2364 group: tr("deprecated tagging");
2365 fixAdd: "transformer=distribution";
2366}
2367
2368*[transformer=traction] {
2369 throwWarning: tr("{0} is deprecated", "{0.tag}");
2370 suggestAlternative: "transformer=main";
2371 group: tr("deprecated tagging");
2372 fixAdd: "transformer=main";
2373}
2374
2375*[transformer=auto] {
2376 throwWarning: tr("{0} is deprecated", "{0.tag}");
2377 suggestAlternative: "transformer=* + windings:auto=yes";
2378 group: tr("deprecated tagging");
2379 fixRemove: "transformer";
2380 fixAdd: "windings:auto=yes";
2381}
2382
[17942]2383/* #20434 */
2384*[building:roof:shape] {
2385 throwWarning: tr("{0} is deprecated", "{0.key}");
2386 suggestAlternative: "roof:shape";
2387 group: tr("deprecated tagging");
2388 fixChangeKey: "building:roof:shape => roof:shape";
2389}
2390
[18230]2391/* #20530 */
2392*[man_made=pumping_rig][!pump_mechanism][!mechanical_driver][!mechanical_coupling] {
2393 throwWarning: tr("{0} is deprecated", "{0.tag}");
2394 suggestAlternative: "man_made=petroleum_well";
2395 suggestAlternative: "man_made=water_well";
2396 fixAdd: "pump_mechanism=piston";
2397 fixAdd: "mechanical_driver=combustion_engine";
2398 fixAdd: "mechanical_coupling=nodding_donkey";
2399 group: tr("deprecated tagging");
2400 set pumping_ring_no_mech;
2401}
2402*[man_made=pumping_rig]!.pumping_ring_no_mech {
2403 throwWarning: tr("{0} is deprecated", "{0.tag}");
2404 suggestAlternative: "man_made=petroleum_well";
2405 suggestAlternative: "man_made=water_well";
2406 group: tr("deprecated tagging");
2407}
2408*[pump:type=beam_pump][!pump_mechanism][!mechanical_driver][!mechanical_coupling] {
2409 throwWarning: tr("{0} is deprecated", "{0.tag}");
2410 suggestAlternative: "pump_mechanism";
2411 fixRemove: "pump:type";
2412 fixAdd: "pump_mechanism=piston";
2413 fixAdd: "mechanical_driver=combustion_engine";
2414 fixAdd: "mechanical_coupling=nodding_donkey";
2415 group: tr("deprecated tagging");
2416 set beam_pump_no_mech
2417}
2418*[pump:type]!.beam_pump_no_mech {
2419 throwWarning: tr("{0} is deprecated", "{0.tag}");
2420 suggestAlternative: "pump_mechanism";
2421 group: tr("deprecated tagging");
2422}
2423*[substance=heat] {
2424 throwWarning: tr("{0} is deprecated", "{0.tag}");
2425 suggestAlternative: "substance=hot_water";
2426 suggestAlternative: "substance=steam";
2427 group: tr("deprecated tagging");
2428}
2429
[17950]2430/* #20959 */
2431*[landuse=school] {
2432 throwWarning: tr("{0} is deprecated", "{0.tag}");
2433 suggestAlternative: "amenity=college";
2434 suggestAlternative: "amenity=school";
2435 suggestAlternative: "amenity=university";
2436 suggestAlternative: "landuse=education";
2437 group: tr("deprecated tagging");
2438}
2439
[18719]2440/* #21782 */
2441*[amenity=vending_machine][vending=parcel_mail_in],
2442*[amenity=vending_machine][vending=parcel_pickup] {
2443 set .parcel_fixable;
2444 throwWarning: tr("{0} is deprecated", "{1.tag}");
2445 suggestAlternative: "amenity=parcel_locker + {1.value}=yes";
2446 fixAdd: "amenity=parcel_locker";
2447 fixAdd: "{1.value}=yes";
2448 fixRemove: "vending";
2449 group: tr("deprecated tagging");
2450 assertMatch: "node amenity=vending_machine vending=parcel_mail_in";
2451 assertMatch: "node amenity=vending_machine vending=parcel_pickup";
2452}
2453*[amenity=vending_machine][vending][vending~=parcel_mail_in][vending~=parcel_pickup][count(uniq_list(split(";", tag("vending")))) == 2] {
2454 set .parcel_fixable;
2455 throwWarning: tr("{0} is deprecated", "{1.tag}");
2456 suggestAlternative: "amenity=parcel_locker + parcel_pickup=yes + parcel_mail_in=yes";
2457 fixAdd: "amenity=parcel_locker";
2458 fixAdd: "parcel_pickup=yes";
2459 fixAdd: "parcel_mail_in=yes";
2460 fixRemove: "vending";
2461 group: tr("deprecated tagging");
2462 assertMatch: "node amenity=vending_machine vending=parcel_mail_in;parcel_pickup";
2463 assertMatch: "node amenity=vending_machine vending=parcel_pickup;parcel_mail_in";
2464}
2465*[amenity=vending_machine][vending~=parcel_mail_in]!.parcel_fixable,
2466*[amenity=vending_machine][vending~=parcel_pickup]!.parcel_fixable {
2467 throwWarning: tr("{0} is deprecated", "{1.tag}");
2468 suggestAlternative: "amenity=parcel_locker + {1.value}=yes";
2469 assertMatch: "node amenity=vending_machine vending=parcel_pickup;stamp";
2470 group: tr("deprecated tagging");
2471}
2472
[18405]2473/* #21954 decoturf was added to JOSM presets in r8123 and replaced with acrylic in r18404 */
2474*[surface=decoturf] {
2475 throwWarning: tr("{0} is deprecated", "{0.tag}");
2476 suggestAlternative: "surface=acrylic";
2477 fixAdd: "surface=acrylic";
2478 group: tr("deprecated tagging");
2479}
2480
[17956]2481/* #20637 */
2482*[role] {
[17959]2483 throwWarning: tr("{0} as a tag on an object. Roles are specified in the relation members list instead.", "{0.tag}", "{0.key}");
[17956]2484 assertMatch: "node role=stop";
2485}
2486
[18524]2487/* #22120 */
2488*[school=entrance] {
2489 throwWarning: tr("{0} is deprecated", "{0.tag}");
2490 suggestAlternative: "entrance=yes";
2491 suggestAlternative: "entrance=main";
2492 group: tr("deprecated tagging");
2493}
2494
[18535]2495/* #21836 */
2496*[voltage-high],
2497*[voltage-low] {
2498 throwWarning: tr("{0} is deprecated", "{0.key}");
2499 suggestAlternative: "voltage:primary";
2500 suggestAlternative: "voltage:secondary";
2501 group: tr("deprecated tagging");
2502}
2503
[18545]2504/* #22335 */
2505*[toilet][!toilets] {
2506 throwWarning: tr("{0} is deprecated", "{0.key}");
2507 suggestAlternative: "toilets";
2508 group: tr("deprecated tagging");
2509 fixChangeKey: "toilet => toilets";
2510}
2511*[toilet][toilets] {
2512 throwWarning: tr("{0} is deprecated", "{0.key}");
2513 suggestAlternative: "toilets";
2514 group: tr("deprecated tagging");
2515}
2516
[18552]2517/* Replaced by type=connectivity */
2518*[type="turnlanes:turns"] {
2519 throwWarning: tr("{0} is deprecated", "{0.tag}");
2520 suggestAlternative: "type=connectivity";
2521 group: tr("deprecated tagging");
2522}
2523
[18633]2524/* temporary URLs, can be extended to other websites and other keys e.g. "url" or "website", #22397 */
[18564]2525*[image][image=~/^https:\/\/westnordost.de\/p\//] {
2526 throwWarning: tr("{0} with a temporary URL which may be outdated very soon", "{0.key}");
2527 fixRemove: "{0.key}";
2528 assertMatch: "node image=https://westnordost.de/p/17484.jpg";
2529 assertNoMatch: "node image=https://web.archive.org/web/20220623215400/https://westnordost.de/p/97331.jpg";
2530 assertNoMatch: "node image=https://commons.wikimedia.org/wiki/File:2015-05-13_Basteibr%C3%BCcke-.jpg";
2531}
2532
[18633]2533/* Replaced by archaeological_site, see #22561 */
2534*[historic=archaeological_site][site_type] {
2535 throwWarning: tr("{0} should be replaced with {1}", "{1.key}", "archaeological_site");
2536 fixChangeKey: "site_type => archaeological_site";
2537 assertMatch: "node historic=archaeological_site site_type=fortification";
2538 assertNoMatch: "node historic=archaeological_site site_type2=fortification";
2539}
2540
[19591]2541
2542/* #22748, Many street_cabinet values are deprecated*/
2543*[street_cabinet=power] {
2544 throwWarning: tr("{0} is deprecated", "{0.tag}");
2545 group: tr("deprecated tagging");
2546 suggestAlternative: "utility=power";
2547 fixAdd: "utility=power";
2548 fixRemove: "street_cabinet";
2549}
2550*[street_cabinet=telecom] {
2551 throwWarning: tr("{0} is deprecated", "{0.tag}");
2552 group: tr("deprecated tagging");
2553 suggestAlternative: "utility=telecom";
2554 fixAdd: "utility=telecom";
2555 fixRemove: "street_cabinet";
2556}
2557*[street_cabinet=gas] {
2558 throwWarning: tr("{0} is deprecated", "{0.tag}");
2559 group: tr("deprecated tagging");
2560 suggestAlternative: "utility=gas";
2561 fixAdd: "utility=gas";
2562 fixRemove: "street_cabinet";
2563}
2564*[street_cabinet=street_lighting] {
2565 throwWarning: tr("{0} is deprecated", "{0.tag}");
2566 group: tr("deprecated tagging");
2567 suggestAlternative: "utility=street_lighting";
2568 fixAdd: "utility=street_lighting";
2569 fixRemove: "street_cabinet";
2570}
2571*[street_cabinet=water] {
2572 throwWarning: tr("{0} is deprecated", "{0.tag}");
2573 group: tr("deprecated tagging");
2574 suggestAlternative: "utility=water";
2575 fixAdd: "utility=water";
2576 fixRemove: "street_cabinet";
2577}
2578*[street_cabinet=water_management] {
2579 throwWarning: tr("{0} is deprecated", "{0.tag}");
2580 group: tr("deprecated tagging");
2581 suggestAlternative: "utility=water";
2582 fixAdd: "utility=water";
2583 fixRemove: "street_cabinet";
2584}
2585*[industrial=gas] {
2586 throwWarning: tr("{0} is deprecated", "{0.tag}");
2587 group: tr("deprecated tagging");
2588 suggestAlternative: "utility=gas";
2589 fixAdd: "utility=gas";
2590 fixRemove: "industrial";
2591}
2592
[18736]2593/* Tag was renamed, see #22957 */
2594area[parking:orientation][!orientation] {
2595 throwWarning: tr("{0} is deprecated", "{0.tag}");
2596 group: tr("deprecated tagging");
2597 suggestAlternative: "{1.key}={0.value}";
2598 fixChangeKey: "{0.key} => {1.key}";
2599}
2600area[parking:orientation][orientation]["parking:orientation"=*orientation] {
2601 throwWarning: tr("{0} is deprecated", "{0.tag}");
2602 group: tr("deprecated tagging");
2603 fixRemove: "{0.key}";
2604}
2605area[parking:orientation][orientation]["parking:orientation"!=*orientation] {
2606 throwWarning: tr("{0} is deprecated", "{0.tag}");
2607 group: tr("deprecated tagging");
2608 suggestAlternative: "{1.key}={0.value}";
2609 suggestAlternative: "{1.key}={1.value}";
2610}
2611
[19025]2612/* Tags were consolidated, see #23177 */
2613*[gnis:id][!gnis:feature_id],
2614*[tiger:PLACENS][!gnis:feature_id],
2615*[NHD:GNIS_ID][!gnis:feature_id],
2616*[nhd:gnis_id][!gnis:feature_id],
2617*[ref:gnis][!gnis:feature_id] {
2618 throwWarning: tr("{0} is deprecated", "{0.key}");
2619 group: tr("deprecated tagging");
2620 suggestAlternative: "{1.key}={0.value}";
2621 fixChangeKey: "{0.key} => {1.key}";
2622}
2623*[gnis:id][gnis:feature_id],
2624*[tiger:PLACENS][gnis:feature_id],
2625*[NHD:GNIS_ID][gnis:feature_id],
2626*[nhd:gnis_id][gnis:feature_id],
2627*[ref:gnis][gnis:feature_id] {
2628 throwWarning: tr("{0} is deprecated", "{0.key}");
2629 group: tr("deprecated tagging");
2630 suggestAlternative: "{1.key}";
2631}
[19169]2632/* From the canvec import */
2633*[natural=landform][landform=esker] {
[19204]2634 throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "geological=esker");
[19169]2635 group: tr("deprecated tagging");
2636 suggestAlternative: "natural=ridge or geological=esker";
2637}
2638*[natural=landform][landform=moraine] {
[19204]2639 throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "geological=moraine");
[19169]2640 group: tr("deprecated tagging");
2641 suggestAlternative: "geological=moraine";
2642}
2643*[natural=landform][landform=beach] {
[19204]2644 throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "natural=beach");
[19169]2645 group: tr("deprecated tagging");
2646 suggestAlternative: "natural=beach";
2647}
2648*[natural=landform][landform=tundra_polygon] {
[19204]2649 throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "natural=tundra");
[19169]2650 group: tr("deprecated tagging");
2651 suggestAlternative: "natural=tundra or natural=fell";
2652}
[19025]2653
[19212]2654way[cycleway=opposite],
2655way[cycleway:left=opposite],
2656way[cycleway:right=opposite],
2657way[cycleway:both=opposite] {
2658 throwWarning: tr("{0} is deprecated", "{0.tag}");
2659 group: tr("deprecated tagging");
2660 fixAdd: "oneway:bicycle=no";
2661 fixRemove: "{0.key}";
2662 /* No automated addition of e.g. cycleway:both=no for cycleway=opposite as it may already be tagged with e.g. cycleway:left=lane */
2663}
2664way[cycleway:left][cycleway:left^=opposite_],
2665way[cycleway:right][cycleway:right^=opposite_] {
2666 throwWarning: tr("{0} is deprecated", "{0.tag}");
2667 group: tr("deprecated tagging");
2668 /* No fix: unambiguous definition */
2669}
2670way[cycleway][cycleway^=opposite_]:righthandtraffic {
2671 throwWarning: tr("{0} is deprecated", "{0.tag}");
2672 group: tr("deprecated tagging");
2673 suggestAlternative: "oneway:bicycle=no + cycleway:right=* + cycleway:left=* + cycleway:left:oneway=-1";
2674}
2675way[cycleway][cycleway^=opposite_]!:righthandtraffic {
2676 throwWarning: tr("{0} is deprecated", "{0.tag}");
2677 group: tr("deprecated tagging");
2678 suggestAlternative: "oneway:bicycle=no + cycleway:right=* + cycleway:left=* + cycleway:right:oneway=-1";
2679}
[19222]2680*[residential=condominium] {
2681 throwWarning: tr("{0} is deprecated", "{0.tag}");
2682 group: tr("deprecated tagging");
2683 suggestAlternative: "residential=apartments + condo=*"
2684}
[19212]2685
[19467]2686/* route=power is deprecated, see #24456 */
2687relation[route=power] {
2688 throwWarning: tr("{0} is deprecated", "{0.tag}");
2689 group: tr("deprecated tagging");
2690 suggestAlternative: "type=power + power=circuit";
2691}
2692relation[power=branch] {
2693 throwWarning: tr("{0} is deprecated", "{0.tag}");
2694 group: tr("deprecated tagging");
2695 suggestAlternative: "type=power + power=line_section";
2696}
2697
[19591]2698/* #24724, utility=hydrant is replaced by indication:emergency=fire_hydrant */
2699*[marker][utility=hydrant] {
2700 throwWarning: tr("{0} is deprecated", "{1.tag}");
2701 group: tr("deprecated tagging");
2702 suggestAlternative: "utility=water + indication:emergency=fire_hydrant";
2703 fixAdd: "indication:emergency=fire_hydrant";
2704 fixAdd": "utility=water";
2705}
2706
[18405]2707/* When tags are deprecated they should be added to ignoretags.cfg too. */
Note: See TracBrowser for help on using the repository browser.