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

Last change on this file since 18557 was 18557, checked in by Klumbumbus, 3 years ago

fix #22367, see #11499 - Don't warn anymore about payment:credit_cards=yes and payment:debit_cards=yes, Reduce warning of payment:electronic_purses=yes and payment:cryptocurrencies=yes to info level

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