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

Last change on this file since 17451 was 17284, checked in by Klumbumbus, 4 years ago

see #19383 - Deprecate tower:type=transition and pole:type=transition in favor of location:transition=yes

  • Property svn:eol-style set to native
File size: 68.2 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 - 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*[type=deciduous],
358*[type=deciduos] {
359 throwWarning: tr("{0} is deprecated", "{0.tag}");
360 suggestAlternative: "leaf_cycle=deciduous";
361 group: tr("deprecated tagging");
362 fixRemove: "type";
363 fixAdd: "leaf_cycle=deciduous";
364}
365*[wood=deciduous] {
366 throwWarning: tr("{0} is deprecated", "{0.tag}");
367 suggestAlternative: "leaf_type + leaf_cycle";
368 group: tr("deprecated tagging");
369}
370node[type=palm],
371way[type=palm] {
372 throwWarning: tr("{0} is deprecated", "{0.tag}");
373 suggestAlternative: "leaf_type";
374 suggestAlternative: "trees";
375 suggestAlternative: "species";
376 group: tr("deprecated tagging");
377}
378
379*[natural=land] {
380 throwWarning: tr("{0} is deprecated. Please use instead a multipolygon.", "{0.tag}");
381 group: tr("deprecated tagging");
382 assertMatch: "way natural=land";
383}
384
385/* #10447 - https://wiki.openstreetmap.org/wiki/Proposed_features/Bridge_types#Deprecated_bridge_key_values */
386*[bridge=causeway] {
387 throwWarning: tr("{0} is deprecated", "{0.tag}");
388 suggestAlternative: "ford=yes";
389 suggestAlternative: "bridge=low_water_crossing";
390 suggestAlternative: "embankment=yes";
391 group: tr("deprecated tagging");
392}
393*[bridge=swing] {
394 throwWarning: tr("{0} is deprecated", "{0.tag}");
395 suggestAlternative: "bridge:movable=swing";
396 suggestAlternative: "bridge:structure=simple-suspension";
397 group: tr("deprecated tagging");
398}
399*[bridge=suspension] {
400 throwWarning: tr("{0} is deprecated", "{0.tag}");
401 suggestAlternative: "bridge=yes + bridge:structure=suspension";
402 group: tr("deprecated tagging");
403 fixAdd: "bridge=yes";
404 fixAdd: "bridge:structure=suspension";
405}
406*[bridge=pontoon] {
407 throwWarning: tr("{0} is deprecated", "{0.tag}");
408 suggestAlternative: "bridge=yes + bridge:structure=floating";
409 group: tr("deprecated tagging");
410 fixAdd: "bridge=yes";
411 fixAdd: "bridge:structure=floating";
412}
413
414/* #10530 - Incorrect tag proposed in internal preset for years */
415*[fee=interval],
416*[lit=interval],
417*[supervised=interval] {
418 throwWarning: tr("{0} is deprecated. Please specify interval by using opening_hours syntax", "{0.tag}");
419 group: tr("deprecated tagging");
420}
421
422/* #10582 - JOSM supported this tag as "don't upload this" feature, before the introduction of upload flag at layer level */
423*[/josm\/ignore/] {
424 throwError: tr("{0} is deprecated. Please delete this object and use a private layer instead", "{0.key}");
425 group: tr("deprecated tagging");
426 fixDeleteObject: this;
427}
428
429/* #8281 */
430*[sport=diving] {
431 throwWarning: tr("{0} is deprecated", "{0.tag}");
432 suggestAlternative: "sport=scuba_diving";
433 suggestAlternative: "sport=cliff_diving";
434 group: tr("deprecated tagging");
435}
436
437/* #8281 */
438*[parking=park_and_ride] {
439 throwWarning: tr("{0} is deprecated", "{0.tag}");
440 suggestAlternative: "amenity=parking + park_ride=yes";
441 group: tr("deprecated tagging");
442 fixRemove: "parking";
443 fixAdd: "amenity=parking";
444 fixAdd: "park_ride=yes";
445}
446
447/* #19287, #18334, #17950, #10661, #10837, #11737, #12771 */
448*[playground=yes],
449*[manhole=plain],
450*[manhole=unknown],
451*[manhole=yes],
452*[police=yes],
453*[traffic_calming=yes],
454*[access=restricted],
455*[barrier=yes],
456*[aerialway=yes][!public_transport],
457*[amenity=yes],
458*[leisure=yes],
459*[shop="*"],
460*[shop=yes][amenity!=fuel],
461*[craft=yes],
462*[service=yes],
463*[place=yes] {
464 throwWarning: tr("{0}={1} is unspecific. Please replace ''{1}'' by a specific value.", "{0.key}", "{0.value}");
465}
466
467/* #10693 - http://wiki.openstreetmap.org/wiki/Proposed_features/drop_recommendation_for_place_name , #10837 */
468*[place_name][!name] {
469 throwWarning: tr("{0} should be replaced with {1}", "{0.key}", "{1.key}");
470 fixChangeKey: "place_name => name";
471}
472*[place][place_name = *name] {
473 throwWarning: tr("{0} = {1}; remove {0}", "{1.key}", "{1.value}");
474 fixRemove: "{1.key}";
475}
476
477way[sidewalk=yes] {
478 throwWarning: tr("{0} is unspecific", "{0.tag}");
479 suggestAlternative: "sidewalk=left";
480 suggestAlternative: "sidewalk=right";
481 suggestAlternative: "sidewalk=both";
482 suggestAlternative: "sidewalk=separate";
483}
484
485*[waterway=water_point] {
486 throwWarning: tr("{0} is deprecated", "{0.tag}");
487 suggestAlternative: "amenity=water_point";
488 group: tr("deprecated tagging");
489 fixChangeKey: "waterway => amenity";
490}
491*[waterway=waste_disposal] {
492 throwWarning: tr("{0} is deprecated", "{0.tag}");
493 suggestAlternative: "amenity=waste_disposal";
494 group: tr("deprecated tagging");
495 fixChangeKey: "waterway => amenity";
496}
497*[waterway=mooring] {
498 throwWarning: tr("{0} is deprecated", "{0.tag}");
499 suggestAlternative: "mooring=yes";
500 group: tr("deprecated tagging");
501 fixRemove: "waterway";
502 fixAdd: "mooring=yes";
503}
504
505/* #10837 */
506*[building][levels],
507*[building:part=yes][levels] {
508 throwWarning: tr("{0} is deprecated", "{1.key}");
509 suggestAlternative: "building:levels";
510 group: tr("deprecated tagging");
511 fixChangeKey: "levels => building:levels";
512}
513
514/* #10691 */
515*[protected_class] {
516 throwWarning: tr("{0} is deprecated", "{0.key}");
517 suggestAlternative: "protect_class";
518 group: tr("deprecated tagging");
519 fixChangeKey: "protected_class => protect_class";
520}
521
522/* #11070 */
523*[kerb=unknown],
524*[lock=unknown],
525*[hide=unknown],
526*[shelter=unknown],
527*[access=unknown],
528*[capacity:parent=unknown],
529*[capacity:women=unknown],
530*[capacity:disabled=unknown],
531*[crossing=unknown],
532*[foot=unknown] {
533 throwWarning: tr("Unspecific tag {0}", "{0.tag}");
534}
535
536/* #11183 */
537*[sport=skiing] {
538 throwWarning: tr("Definition of {0} is unclear", "{0.tag}");
539 suggestAlternative: tr("{0} + {1} + {2}", "piste:type=*", "piste:difficulty=*", "piste:grooming=*");
540 group: tr("deprecated tagging");
541}
542
543/* #11223 */
544*[waterway=wadi] {
545 throwWarning: tr("{0} is deprecated", "{0.tag}");
546 suggestAlternative: "{0.key}=* + intermittent=yes";
547 suggestAlternative: "natural=valley";
548 group: tr("deprecated tagging");
549}
550
551/* #10346 */
552way[oneway=1] {
553 throwWarning: tr("{0} is deprecated", "{0.tag}");
554 suggestAlternative: "oneway=yes";
555 group: tr("deprecated tagging");
556 fixAdd: "oneway=yes";
557}
558
559/* #11329 */
560way[oneway=-1] {
561 throwWarning: tr("{0} is not recommended. Use the Reverse Ways function from the Tools menu.", "{0.tag}");
562}
563
564*[drinkable] {
565 throwWarning: tr("{0} is deprecated", "{0.key}");
566 suggestAlternative: "drinking_water";
567 group: tr("deprecated tagging");
568}
569
570/* #10329, #15877 */
571 /* simple key change */
572*[color][!colour] {
573 throwWarning: tr("{0} is deprecated", "{0.key}");
574 suggestAlternative: "colour";
575 group: tr("deprecated tagging");
576 fixChangeKey: "color => colour";
577 assertMatch: "way color=red";
578 assertNoMatch: "way color=red colour=red";
579}
580area[building:color][!building:colour] {
581 throwWarning: tr("{0} is deprecated", "{0.key}");
582 suggestAlternative: "building:colour";
583 group: tr("deprecated tagging");
584 fixChangeKey: "building:color => building:colour";
585 assertMatch: "way building:color=red";
586 assertNoMatch: "way building:color=red building:colour=red";
587}
588area[roof:color][!roof:colour] {
589 throwWarning: tr("{0} is deprecated", "{0.key}");
590 suggestAlternative: "roof:colour";
591 group: tr("deprecated tagging");
592 fixChangeKey: "roof:color => roof:colour";
593 assertMatch: "way roof:color=red";
594 assertNoMatch: "way roof:color=red roof:colour=red";
595}
596 /* both tags with same value, remove color */
597*[color][colour][color=*colour] {
598 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
599 suggestAlternative: "colour";
600 group: tr("deprecated tagging");
601 set samecolor;
602 fixRemove: "color";
603 assertMatch: "way color=red colour=red";
604 assertNoMatch: "way color=red colour=green";
605}
606area[building:color][building:colour]["building:color"=*"building:colour"] {
607 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
608 suggestAlternative: "building:colour";
609 group: tr("deprecated tagging");
610 set samebuildingcolor;
611 fixRemove: "building:color";
612 assertMatch: "way building:color=red building:colour=red";
613 assertNoMatch: "way building:color=red building:colour=green";
614}
615area[roof:color][roof:colour]["roof:color"=*"roof:colour"] {
616 throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}");
617 suggestAlternative: "roof:colour";
618 group: tr("deprecated tagging");
619 set sameroofcolor;
620 fixRemove: "roof:color";
621 assertMatch: "way roof:color=red roof:colour=red";
622 assertNoMatch: "way roof:color=red roof:colour=green";
623}
624 /* both tags with different values, no autofix */
625*[color][colour]!.samecolor {
626 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
627 suggestAlternative: "colour";
628 group: tr("deprecated tagging");
629 assertNoMatch: "way color=red colour=red";
630 assertMatch: "way color=red colour=green";
631}
632*[building:color][building:colour]!.samebuildingcolor {
633 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
634 suggestAlternative: "building:colour";
635 group: tr("deprecated tagging");
636 assertNoMatch: "way building:color=red building:colour=red";
637 assertMatch: "way building:color=red building:colour=green";
638}
639*[roof:color][roof:colour]!.sameroofcolor {
640 throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}");
641 suggestAlternative: "roof:colour";
642 group: tr("deprecated tagging");
643 assertNoMatch: "way roof:color=red roof:colour=red";
644 assertMatch: "way roof:color=red roof:colour=green";
645}
646/* further more universal checks, no autofix */
647/* gpxd:color has another warning in unnecessary.mapcss */
648*[/:color/][!building:color][!roof:color][!gpxd:color] {
649 throwWarning: tr("{0} is deprecated", "{0.key}");
650 suggestAlternative: ":colour";
651 group: tr("deprecated tagging");
652 assertNoMatch: "way color=red";
653 assertNoMatch: "way roof:color=grey";
654 assertMatch: "way cycleway:surface:color=grey";
655}
656*[/color:/] {
657 throwWarning: tr("{0} is deprecated", "{0.key}");
658 suggestAlternative: "colour:";
659 group: tr("deprecated tagging");
660 assertNoMatch: "way color=red";
661 assertMatch: "way color:back=grey";
662}
663
664/* #11234 */
665*[/=|\+|\/|&|<|>|;|'|"|%|#|@|\\|,|\.|\{|\}|\?|\*|\^|\$/] {
666 throwWarning: tr("{0}", "{0.key}");
667 group: tr("key with uncommon character");
668}
669
670/* #11330, #18642 */
671*[/^.$/],
672node[/^..$/],
673way[/^..$/][route=ferry][!to],
674way[/^..$/][route!=ferry],
675relation[/^..$/][!to] {
676 throwWarning: tr("uncommon short key");
677 assertNoMatch: "relation to=Berlin";
678 assertMatch: "relation fo=bar";
679 assertMatch: "way to=bar";
680 assertNoMatch: "way to=Zuidschermer;Akersloot route=ferry";
681 assertMatch: "node fo=bar";
682 assertMatch: "node f=b";
683}
684
685/* #11439 */
686*[sport=hockey] {
687 throwWarning: tr("{0} is deprecated", "{0.tag}");
688 suggestAlternative: "sport=field_hockey";
689 suggestAlternative: "sport=ice_hockey";
690 group: tr("deprecated tagging");
691}
692
693/* #11471 */
694*[sport=billard],
695*[sport=billards],
696*[sport=billiard] {
697 throwWarning: tr("{0} is deprecated", "{0.tag}");
698 suggestAlternative: "sport=billiards";
699 group: tr("deprecated tagging");
700 fixAdd: "sport=billiards";
701}
702
703/* #11499, #16928 */
704*[payment:credit_cards=yes] {
705 throwWarning: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:mastercard=yes", "payment:visa=yes");
706}
707*[payment:debit_cards=yes] {
708 throwWarning: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:maestro=yes", "payment:girocard=yes");
709}
710*[payment:electronic_purses=yes] {
711 throwWarning: 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");
712}
713*[payment:cryptocurrencies=yes] {
714 throwWarning: tr("{0} is inaccurate. Use separate tags for each specific type, e.g. {1} or {2}.", "{0.tag}", "payment:bitcoin=yes", "payment:litecoin=yes");
715}
716
717/* #16253 */
718*[payment:ep_quick],
719*[payment:ep_cash],
720*[payment:ep_proton],
721*[payment:ep_chipknip] {
722 throwWarning: tr("{0} is deprecated", "{0.key}");
723 group: tr("deprecated tagging");
724 fixRemove: "{0.key}";
725}
726
727/* #8717 */
728*[kp][highway=milestone],
729*[kp][railway=milestone],
730*[kp][waterway=milestone] {
731 throwWarning: tr("{0} is deprecated", "{0.key}");
732 suggestAlternative: "distance";
733 group: tr("deprecated tagging");
734 fixChangeKey: "kp => distance";
735}
736*[pk][highway=milestone],
737*[pk][railway=milestone],
738*[pk][waterway=milestone] {
739 throwWarning: tr("{0} is deprecated", "{0.key}");
740 suggestAlternative: "distance";
741 group: tr("deprecated tagging");
742 fixChangeKey: "pk => distance";
743}
744
745*[postcode] {
746 throwWarning: tr("{0} is deprecated", "{0.key}");
747 suggestAlternative: "addr:postcode";
748 group: tr("deprecated tagging");
749 suggestAlternative: "postal_code";
750}
751
752*[water=intermittent] {
753 throwWarning: tr("{0} is deprecated", "{0.tag}");
754 suggestAlternative: "intermittent=yes";
755 group: tr("deprecated tagging");
756 fixRemove: "water";
757 fixAdd: "intermittent=yes";
758}
759
760/* #10907, #14141 */
761/* 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 */
762way[type][type!=waterway][man_made=pipeline],
763node[type][pipeline=marker] {
764 throwWarning: tr("{0} is deprecated", "{0.key}");
765 suggestAlternative: "substance";
766 group: tr("deprecated tagging");
767 fixChangeKey: "type => substance";
768}
769
770*[landuse=farm] {
771 throwWarning: tr("{0} is deprecated", "{0.tag}");
772 suggestAlternative: "landuse=farmland";
773 suggestAlternative: "landuse=farmyard";
774 group: tr("deprecated tagging");
775}
776
777/* #12135 comment:11 */
778*[seamark=buoy]["seamark:type"=~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
779 throwWarning: tr("{0} is deprecated", "{0.tag}");
780 suggestAlternative: "{1.tag}";
781 group: tr("deprecated tagging");
782 fixRemove: "seamark";
783}
784*[seamark=buoy]["seamark:type"!~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] {
785 throwWarning: tr("{0} is deprecated", "{0.tag}");
786 suggestAlternative: "{1.tag}";
787 group: tr("deprecated tagging");
788}
789/* #12135 */
790*[landuse=conservation] {
791 throwWarning: tr("{0} is deprecated", "{0.tag}");
792 suggestAlternative: "boundary=protected_area";
793 group: tr("deprecated tagging");
794 fixAdd: "boundary=protected_area";
795 fixRemove: "landuse";
796}
797
798/* #12205 */
799*[amenity=kiosk] {
800 throwWarning: tr("{0} is deprecated", "{0.tag}");
801 suggestAlternative: "shop=kiosk";
802 group: tr("deprecated tagging");
803 fixChangeKey: "amenity => shop";
804}
805*[amenity=shop] {
806 throwWarning: tr("{0} is deprecated", "{0.tag}");
807 suggestAlternative: "shop=*";
808 group: tr("deprecated tagging");
809}
810*[shop=fishmonger] {
811 throwWarning: tr("{0} is deprecated", "{0.tag}");
812 suggestAlternative: "shop=seafood";
813 group: tr("deprecated tagging");
814 fixAdd: "shop=seafood";
815}
816*[shop=fish] {
817 throwWarning: tr("{0} is deprecated", "{0.tag}");
818 suggestAlternative: "shop=seafood";
819 suggestAlternative: "shop=pet";
820 suggestAlternative: "shop=fishing";
821 group: tr("deprecated tagging");
822}
823*[shop=betting] {
824 throwWarning: tr("{0} is deprecated", "{0.tag}");
825 suggestAlternative: "shop=bookmaker";
826 suggestAlternative: "shop=lottery";
827 suggestAlternative: "amenity=casino";
828 suggestAlternative: "leisure=amusement_arcade";
829 suggestAlternative: "leisure=adult_gaming_centre";
830 suggestAlternative: "amenity=gambling";
831 group: tr("deprecated tagging");
832}
833*[shop=perfume] {
834 throwWarning: tr("{0} is deprecated", "{0.tag}");
835 suggestAlternative: "shop=perfumery";
836 group: tr("deprecated tagging");
837 fixAdd: "shop=perfumery";
838}
839*[amenity=exercise_point] {
840 throwWarning: tr("{0} is deprecated", "{0.tag}");
841 suggestAlternative: "leisure=fitness_station";
842 group: tr("deprecated tagging");
843 fixAdd: "leisure=fitness_station";
844 fixRemove: "amenity";
845}
846*[shop=auto_parts] {
847 throwWarning: tr("{0} is deprecated", "{0.tag}");
848 suggestAlternative: "shop=car_parts";
849 group: tr("deprecated tagging");
850 fixAdd: "shop=car_parts";
851}
852*[amenity=car_repair] {
853 throwWarning: tr("{0} is deprecated", "{0.tag}");
854 suggestAlternative: "shop=car_repair";
855 group: tr("deprecated tagging");
856 fixChangeKey: "amenity => shop";
857}
858
859/* #12311 */
860*[amenity=studio][type=audio],
861*[amenity=studio][type=radio],
862*[amenity=studio][type=television],
863*[amenity=studio][type=video] {
864 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
865 suggestAlternative: "studio";
866 group: tr("deprecated tagging");
867 fixChangeKey: "type => studio";
868}
869
870/* #11507, #12297, #15409 */
871*[power=cable_distribution_cabinet] {
872 throwWarning: tr("{0} is deprecated", "{0.tag}");
873 suggestAlternative: "man_made=street_cabinet + street_cabinet=*";
874 group: tr("deprecated tagging");
875 fixAdd: "man_made=street_cabinet";
876 fixRemove: "power";
877}
878
879/* #16430 */
880*[power][location=kiosk] {
881 throwWarning: tr("{0} is deprecated", "{1.tag}");
882 group: tr("deprecated tagging");
883 fixAdd: "man_made=street_cabinet";
884 fixAdd: "street_cabinet=power";
885 fixRemove: "location";
886}
887
888/* #12276 */
889*[man_made=well] {
890 throwWarning: tr("{0} is deprecated", "{0.tag}");
891 suggestAlternative: "man_made=water_well";
892 suggestAlternative: "man_made=petroleum_well";
893 group: tr("deprecated tagging");
894}
895*[amenity=dog_bin],
896*[amenity=dog_waste_bin] {
897 throwWarning: tr("{0} is deprecated", "{0.tag}");
898 suggestAlternative: "amenity=waste_basket + waste=dog_excrement + vending=excrement_bags";
899 group: tr("deprecated tagging");
900 fixAdd: "amenity=waste_basket";
901 fixAdd: "waste=dog_excrement";
902 fixAdd: "vending=excrement_bags";
903}
904*[amenity=artwork] {
905 throwWarning: tr("{0} is deprecated", "{0.tag}");
906 suggestAlternative: "tourism=artwork";
907 group: tr("deprecated tagging");
908 fixAdd: "tourism=artwork";
909 fixRemove: "amenity";
910}
911*[amenity=community_center] {
912 throwWarning: tr("{0} is deprecated", "{0.tag}");
913 suggestAlternative: "amenity=community_centre";
914 group: tr("deprecated tagging");
915 fixAdd: "amenity=community_centre";
916}
917*[man_made=cut_line] {
918 throwWarning: tr("{0} is deprecated", "{0.tag}");
919 suggestAlternative: "man_made=cutline";
920 group: tr("deprecated tagging");
921 fixAdd: "man_made=cutline";
922}
923*[amenity=park] {
924 throwWarning: tr("{0} is deprecated", "{0.tag}");
925 suggestAlternative: "leisure=park";
926 group: tr("deprecated tagging");
927 fixAdd: "leisure=park";
928 fixRemove: "amenity";
929}
930*[amenity=hotel] {
931 throwWarning: tr("{0} is deprecated", "{0.tag}");
932 suggestAlternative: "tourism=hotel";
933 group: tr("deprecated tagging");
934 fixAdd: "tourism=hotel";
935 fixRemove: "amenity";
936}
937*[shop=window],
938*[shop=windows] {
939 throwWarning: tr("{0} is deprecated", "{0.tag}");
940 suggestAlternative: "craft=window_construction";
941 group: tr("deprecated tagging");
942 fixAdd: "craft=window_construction";
943 fixRemove: "shop";
944}
945*[amenity=education] {
946 throwWarning: tr("{0} is deprecated", "{0.tag}");
947 suggestAlternative: "amenity=college";
948 suggestAlternative: "amenity=school";
949 suggestAlternative: "amenity=university";
950 group: tr("deprecated tagging");
951}
952*[shop=gallery] {
953 throwWarning: tr("{0} is deprecated", "{0.tag}");
954 suggestAlternative: "shop=art";
955 group: tr("deprecated tagging");
956 fixAdd: "shop=art";
957}
958*[shop=gambling],
959*[leisure=gambling] {
960 throwWarning: tr("{0} is deprecated", "{0.tag}");
961 suggestAlternative: "shop=bookmaker";
962 suggestAlternative: "shop=lottery";
963 suggestAlternative: "amenity=casino";
964 suggestAlternative: "leisure=amusement_arcade";
965 suggestAlternative: "amenity=gambling";
966 group: tr("deprecated tagging");
967}
968*[office=real_estate],
969*[office=real_estate_agent] {
970 throwWarning: tr("{0} is deprecated", "{0.tag}");
971 suggestAlternative: "office=estate_agent";
972 group: tr("deprecated tagging");
973 fixAdd: "office=estate_agent";
974}
975*[shop=glass] {
976 throwWarning: tr("{0} is deprecated", "{0.tag}");
977 suggestAlternative: "shop=glaziery";
978 suggestAlternative: "craft=glaziery";
979 group: tr("deprecated tagging");
980}
981*[amenity=proposed],
982*[amenity=disused],
983*[shop=disused],
984*[highway=abandoned],
985*[historic=abandoned] {
986 throwWarning: tr("{0} is deprecated. Use the {1}: key prefix instead.", "{0.tag}", "{0.value}");
987 group: tr("deprecated tagging");
988}
989
990/* #12431 */
991*[amenity=swimming_pool] {
992 throwWarning: tr("{0} is deprecated", "{0.tag}");
993 suggestAlternative: "leisure=swimming_pool";
994 group: tr("deprecated tagging");
995 fixChangeKey: "amenity => leisure";
996}
997
998/* #17379 */
999*[amenity=sauna] {
1000 throwWarning: tr("{0} is deprecated", "{0.tag}");
1001 suggestAlternative: "leisure=sauna";
1002 group: tr("deprecated tagging");
1003 fixChangeKey: "amenity => leisure";
1004}
1005
1006/* #12494, #17554 */
1007*[/^[^t][^i][^g].+_[0-9]$/][!/^note_[0-9]$/][!/^description_[0-9]$/] {
1008 throwWarning: tr("{0}", "{0.key}");
1009 group: tr("questionable key (ending with a number)");
1010 assertMatch: "way name_1=foo";
1011 assertNoMatch: "way note_2=foo";
1012 assertNoMatch: "way description_3=foo";
1013 assertNoMatch: "way tiger:name_base_1=bar"; /*should not warn for key tiger:name_base_1 */
1014}
1015
1016/* #12500 */
1017*[sport=skating] {
1018 throwWarning: tr("{0} is deprecated", "{0.tag}");
1019 suggestAlternative: "sport=ice_skating";
1020 suggestAlternative: "sport=roller_skating";
1021 group: tr("deprecated tagging");
1022}
1023
1024way[barrier=wall][type=noise_barrier][!wall],
1025way[barrier=wall][type=noise_barrier][wall=noise_barrier] {
1026 throwWarning: tr("{0} is deprecated", "{1.tag}");
1027 suggestAlternative: "wall=noise_barrier";
1028 group: tr("deprecated tagging");
1029 fixChangeKey: "type => wall";
1030}
1031way[barrier=wall][type=noise_barrier][wall][wall!=noise_barrier] {
1032 throwWarning: tr("{0} is deprecated", "{1.tag}");
1033 suggestAlternative: "wall=noise_barrier";
1034 group: tr("deprecated tagging");
1035}
1036
1037/* #8978, 12588 */
1038*[amenity=public_building] {
1039 throwWarning: tr("{0} is deprecated", "{0.tag}");
1040 suggestAlternative: "amenity=townhall";
1041 suggestAlternative: "amenity=community_centre";
1042 suggestAlternative: "amenity=hospital";
1043 suggestAlternative: "leisure=sports_centre";
1044 suggestAlternative: "office=government";
1045 suggestAlternative: "building=hospital";
1046 suggestAlternative: "building=public";
1047 suggestAlternative: "...";
1048 group: tr("deprecated tagging");
1049}
1050
1051/* #18517 */
1052*[office=administrative] {
1053 throwWarning: tr("{0} is deprecated", "{0.tag}");
1054 suggestAlternative: "office=government";
1055 group: tr("deprecated tagging");
1056 fixAdd: "office=government";
1057}
1058
1059/* #12708 */
1060*[vending=news_papers] {
1061 throwWarning: tr("{0} is deprecated", "{0.tag}");
1062 suggestAlternative: "vending=newspapers";
1063 group: tr("deprecated tagging");
1064 fixAdd: "vending=newspapers";
1065}
1066
1067/* #12771 */
1068*[service=drive_through] {
1069 throwWarning: tr("{0} is deprecated", "{0.tag}");
1070 suggestAlternative: "service=drive-through";
1071 group: tr("deprecated tagging");
1072 fixAdd: "service=drive-through";
1073}
1074
1075/* #12771, #9895 */
1076*[noexit][noexit!=yes][noexit!=no], /* noexit=no has an own warning */
1077way[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 */
1078way[railway=rail][service][service !~ /^(crossover|siding|spur|yard)$/],
1079way[waterway=canal][service][service !~ /^(irrigation|transportation|water_power)$/] {
1080 throwWarning: tr("The key {0} has an uncommon value.", "{1.key}");
1081}
1082
1083/* #13008 */
1084*[name:botanical] {
1085 throwWarning: tr("{0} is deprecated", "{0.key}");
1086 suggestAlternative: "species";
1087 group: tr("deprecated tagging");
1088}
1089
1090/* #11344, #13101, #15480 */
1091node[pole=air_to_ground],
1092node[pole=transition] {
1093 throwWarning: tr("{0} is deprecated", "{0.tag}");
1094 suggestAlternative: "location:transition=yes";
1095 group: tr("deprecated tagging");
1096 fixAdd: "location:transition=yes";
1097 fixRemove: "pole";
1098}
1099node[tower=air_to_ground],
1100node[tower=transition] {
1101 throwWarning: tr("{0} is deprecated", "{0.tag}");
1102 suggestAlternative: "location:transition=yes";
1103 group: tr("deprecated tagging");
1104 fixAdd: "location:transition=yes";
1105 fixRemove: "tower";
1106}
1107
1108/* #13138 */
1109area[landuse=pond] {
1110 throwWarning: tr("{0} is deprecated", "{0.tag}");
1111 suggestAlternative: "natural=water + water=pond";
1112 group: tr("deprecated tagging");
1113 fixAdd: "natural=water";
1114 fixAdd: "water=pond";
1115 fixRemove: "landuse";
1116}
1117
1118*[shop=souvenir],
1119*[shop=souvenirs],
1120*[shop=souveniers] {
1121 throwWarning: tr("{0} is deprecated", "{0.tag}");
1122 suggestAlternative: "shop=gift";
1123 group: tr("deprecated tagging");
1124 fixAdd: "shop=gift";
1125}
1126
1127*[vending=animal_food] {
1128 throwWarning: tr("{0} is deprecated", "{0.tag}");
1129 suggestAlternative: "vending=animal_feed";
1130 group: tr("deprecated tagging");
1131 fixAdd: "vending=animal_feed";
1132}
1133
1134/* #14376 */
1135node[vending=photos][amenity=vending_machine],
1136node[vending=photo][amenity=vending_machine] {
1137 throwWarning: tr("{0} is deprecated", "{0.tag}");
1138 suggestAlternative: "amenity=photo_booth";
1139 group: tr("deprecated tagging");
1140 fixRemove: "vending";
1141 fixAdd: "amenity=photo_booth";
1142
1143}
1144node[vending=photos][amenity!=vending_machine] {
1145 throwWarning: tr("{0} is deprecated", "{0.tag}");
1146 suggestAlternative: "amenity=photo_booth";
1147 group: tr("deprecated tagging");
1148}
1149
1150/* #13653 */
1151node[highway=emergency_access_point][phone][!emergency_telephone_code],
1152way[highway=emergency_access_point][phone][!emergency_telephone_code] {
1153 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1154 suggestAlternative: "emergency_telephone_code";
1155 group: tr("deprecated tagging");
1156 fixChangeKey: "phone => emergency_telephone_code";
1157 assertMatch: "node highway=emergency_access_point phone=123";
1158 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=456";
1159 assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=456";
1160 assertNoMatch: "node phone=123";
1161}
1162node[highway=emergency_access_point][phone=*emergency_telephone_code],
1163way[highway=emergency_access_point][phone=*emergency_telephone_code] {
1164 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1165 suggestAlternative: "emergency_telephone_code";
1166 group: tr("deprecated tagging");
1167 fixRemove: "phone";
1168 assertNoMatch: "node highway=emergency_access_point phone=123";
1169 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123";
1170 assertMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123";
1171}
1172node[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code],
1173way[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code] {
1174 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1175 suggestAlternative: "emergency_telephone_code";
1176 group: tr("deprecated tagging");
1177 assertNoMatch: "node highway=emergency_access_point phone=123";
1178 assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123";
1179 assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123";
1180}
1181
1182/* #13879 */
1183way[tracktype=1] {
1184 throwError: tr("{0}", "{0.tag}");
1185 suggestAlternative: "tracktype=grade1";
1186 group: tr("misspelled value");
1187 fixAdd: "tracktype=grade1";
1188}
1189way[tracktype=2] {
1190 throwError: tr("{0}", "{0.tag}");
1191 suggestAlternative: "tracktype=grade2";
1192 group: tr("misspelled value");
1193 fixAdd: "tracktype=grade2";
1194}
1195way[tracktype=3] {
1196 throwError: tr("{0}", "{0.tag}");
1197 suggestAlternative: "tracktype=grade3";
1198 group: tr("misspelled value");
1199 fixAdd: "tracktype=grade3";
1200}
1201way[tracktype=4] {
1202 throwError: tr("{0}", "{0.tag}");
1203 suggestAlternative: "tracktype=grade4";
1204 group: tr("misspelled value");
1205 fixAdd: "tracktype=grade4";
1206}
1207way[tracktype=5] {
1208 throwError: tr("{0}", "{0.tag}");
1209 suggestAlternative: "tracktype=grade5";
1210 group: tr("misspelled value");
1211 fixAdd: "tracktype=grade5";
1212}
1213way[tracktype][tracktype!~/^(1|2|3|4|5|grade1|grade2|grade3|grade4|grade5)$/] {
1214 throwError: tr("wrong value: {0}", "{0.tag}");
1215 suggestAlternative: "tracktype=grade1";
1216 suggestAlternative: "tracktype=grade2";
1217 suggestAlternative: "tracktype=grade3";
1218 suggestAlternative: "tracktype=grade4";
1219 suggestAlternative: "tracktype=grade5";
1220}
1221
1222area[area][area!=yes][area!=no] {
1223 throwError: tr("wrong value: {0}", "{0.tag}");
1224 suggestAlternative: "area=yes";
1225 suggestAlternative: "area=no";
1226}
1227
1228/* #13953 */
1229*[amenity=hunting_stand][lock=yes],
1230*[amenity=hunting_stand][lock=no] {
1231 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
1232 suggestAlternative: "lockable";
1233 group: tr("deprecated tagging");
1234 fixChangeKey: "lock => lockable";
1235}
1236
1237*[amenity=advertising][!advertising] {
1238 throwWarning: tr("{0} is deprecated", "{0.tag}");
1239 suggestAlternative: "advertising=*";
1240 group: tr("deprecated tagging");
1241}
1242*[amenity=advertising][advertising] {
1243 throwWarning: tr("{0} is deprecated", "{0.tag}");
1244 suggestAlternative: "advertising=*";
1245 group: tr("deprecated tagging");
1246 fixRemove: "amenity";
1247}
1248
1249way[direction=up][incline=up],
1250way[direction=down][incline=down],
1251way[direction=up][!incline],
1252way[direction=down][!incline] {
1253 throwWarning: tr("{0} is deprecated", "{0.tag}");
1254 suggestAlternative: "incline";
1255 group: tr("deprecated tagging");
1256 fixChangeKey: "direction => incline";
1257}
1258way[direction=up][incline][incline!=up],
1259way[direction=down][incline][incline!=down] {
1260 throwWarning: tr("{0} is deprecated", "{0.tag}");
1261 suggestAlternative: "incline";
1262 group: tr("deprecated tagging");
1263}
1264
1265*[building=true],
1266*[building="*"],
1267*[building=Y],
1268*[building=y],
1269*[building=1] {
1270 throwError: tr("{0}", "{0.tag}");
1271 suggestAlternative: "building=yes";
1272 group: tr("misspelled value");
1273 fixAdd: "building=yes";
1274}
1275
1276/* #17786, #18612 */
1277*[building=abandoned],
1278*[building=address],
1279*[building=bing],
1280*[building=collapsed],
1281*[building=damaged],
1282*[building=demolished],
1283*[building=disused],
1284*[building=fixme],
1285*[building=occupied],
1286*[building=razed] {
1287 throwWarning: tr("{0} is not a building type.", "{0.tag}");
1288 group: tr("deprecated tagging");
1289}
1290*[building=other],
1291*[building=unclassified],
1292*[building=undefined],
1293*[building=unknown],
1294*[building=unidentified] {
1295 throwWarning: tr("{0} is not a building type.", "{0.tag}");
1296 group: tr("deprecated tagging");
1297 fixAdd: "building=yes";
1298}
1299
1300/* #15675 */
1301node[power=transformer][location=pole][transformer] {
1302 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
1303 group: tr("deprecated tagging");
1304 fixChangeKey: "location => power";
1305}
1306node[power=transformer][location=pole][!transformer] {
1307 throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}");
1308 group: tr("deprecated tagging");
1309 fixChangeKey: "location => power";
1310 fixAdd: "transformer=yes";
1311}
1312
1313node[tourism=picnic_table],
1314node[amenity=picnic_table],
1315node[leisure=picnic],
1316node[leisure=picnic_site] {
1317 throwWarning: tr("{0} is deprecated", "{0.tag}");
1318 suggestAlternative: "tourism=picnic_site";
1319 suggestAlternative: "leisure=picnic_table";
1320 group: tr("deprecated tagging");
1321}
1322
1323/* #15804 */
1324relation[water=salt],
1325way[water=salt],
1326way[water=salt_pool],
1327way[water=salt_panne],
1328way[water=salt_pond] {
1329 throwWarning: tr("{0} is deprecated", "{0.tag}");
1330 suggestAlternative: "salt=yes";
1331 suggestAlternative: "landuse=salt_pond";
1332 group: tr("deprecated tagging");
1333}
1334
1335/* #15805 */
1336way[water=tidal] {
1337 throwWarning: tr("{0} is deprecated", "{0.tag}");
1338 suggestAlternative: "tidal=yes";
1339 fixAdd: "tidal=yes";
1340 fixRemove: "water";
1341 group: tr("deprecated tagging");
1342}
1343
1344*[amenity=toilet] {
1345 throwError: tr("{0}", "{0.tag}");
1346 suggestAlternative: "amenity=toilets";
1347 group: tr("misspelled value");
1348 fixAdd: "amenity=toilets";
1349}
1350
1351way[power=busbar] {
1352 throwWarning: tr("{0} is deprecated", "{0.tag}");
1353 suggestAlternative: "power=line + line=busbar";
1354 group: tr("deprecated tagging");
1355 fixAdd: "power=line";
1356 fixAdd: "line=busbar";
1357}
1358
1359/* #16924 */
1360*[man_made=MDF],
1361*[man_made=telephone_exchange] {
1362 throwWarning: tr("{0} is deprecated", "{0.tag}");
1363 suggestAlternative: "telecom=exchange";
1364 fixAdd: "telecom=exchange";
1365 fixRemove: "man_made";
1366 group: tr("deprecated tagging");
1367}
1368*[building=central_office] {
1369 throwWarning: tr("{0} is deprecated", "{0.tag}");
1370 suggestAlternative: "telecom=exchange";
1371 fixAdd: "telecom=exchange";
1372 fixAdd: "building=yes";
1373 group: tr("deprecated tagging");
1374}
1375*[telecom=central_office] {
1376 throwWarning: tr("{0} is deprecated", "{0.tag}");
1377 suggestAlternative: "telecom=exchange";
1378 fixAdd: "telecom=exchange";
1379 group: tr("deprecated tagging");
1380}
1381
1382/* #16925 */
1383node[communication=outdoor_dslam],
1384node[man_made=outdoor_dslam],
1385node[street_cabinet=outdoor_dslam] {
1386 throwWarning: tr("{0} is deprecated", "{0.tag}");
1387 suggestAlternative: "telecom=service_device";
1388 fixAdd: "telecom=service_device";
1389 fixRemove: "{0.key}";
1390 group: tr("deprecated tagging");
1391}
1392node[telecom=dslam],
1393node[telecom=outdoor_dslam] {
1394 throwWarning: tr("{0} is deprecated", "{0.tag}");
1395 suggestAlternative: "telecom=service_device";
1396 fixAdd: "telecom=service_device";
1397 group: tr("deprecated tagging");
1398}
1399
1400/* #15774 */
1401node[amenity=fire_hydrant] {
1402 throwWarning: tr("{0} is deprecated", "{0.tag}");
1403 suggestAlternative: "emergency=fire_hydrant";
1404 fixChangeKey: "amenity => emergency";
1405 group: tr("deprecated tagging");
1406}
1407node[fire_hydrant:type=pond] {
1408 throwWarning: tr("{0} is deprecated", "{0.tag}");
1409 suggestAlternative: "water_source=pond";
1410 fixAdd: "water_source=pond";
1411 fixRemove: "{0.key}";
1412 group: tr("deprecated tagging");
1413}
1414node[fire_hydrant:flow_capacity] {
1415 throwWarning: tr("{0} is deprecated", "{0.key}");
1416 suggestAlternative: "flow_rate";
1417 group: tr("deprecated tagging");
1418}
1419node[emergency=fire_hydrant][in_service=no] {
1420 throwWarning: tr("{0} is deprecated", "{1.tag}");
1421 suggestAlternative: "disused:emergency=fire_hydrant";
1422 fixAdd: "disused:emergency=fire_hydrant";
1423 fixRemove: "{1.key}";
1424 fixRemove: "{0.key}";
1425 group: tr("deprecated tagging");
1426}
1427node[fire_hydrant:water_source] {
1428 throwWarning: tr("{0} is deprecated", "{0.key}");
1429 suggestAlternative: "water_source";
1430 fixChangeKey: "fire_hydrant:water_source => water_source";
1431 group: tr("deprecated tagging");
1432}
1433
1434/* #17383 */
1435*[natural=waterfall] {
1436 throwWarning: tr("{0} is deprecated", "{0.tag}");
1437 suggestAlternative: "waterway=waterfall";
1438 fixChangeKey: "natural => waterway";
1439 group: tr("deprecated tagging");
1440}
1441
1442/* #17249 */
1443*[religion=unitarian] {
1444 throwWarning: tr("{0} is deprecated", "{0.tag}");
1445 suggestAlternative: "religion=unitarian_universalist";
1446 fixAdd: "religion=unitarian_universalist";
1447 group: tr("deprecated tagging");
1448}
1449
1450*[shop=shopping_centre] {
1451 throwWarning: tr("{0} is deprecated", "{0.tag}");
1452 suggestAlternative: "shop=mall";
1453 fixAdd: "shop=mall";
1454 group: tr("deprecated tagging");
1455}
1456
1457/* #17504 */
1458*[is_in],
1459node[/^is_in:.*$/],
1460way[/^is_in:.*$/] {
1461 throwWarning: tr("{0} is deprecated", "{0.key}");
1462 group: tr("deprecated tagging");
1463 fixRemove: "{0.key}";
1464}
1465
1466/* #17593 */
1467*[sport=football] {
1468 throwWarning: tr("{0} is deprecated", "{0.tag}");
1469 suggestAlternative: "sport=soccer";
1470 suggestAlternative: "sport=american_football";
1471 suggestAlternative: "sport=australian_football";
1472 suggestAlternative: "sport=canadian_football";
1473 suggestAlternative: "sport=rugby_league";
1474 suggestAlternative: "sport=rugby_union";
1475 suggestAlternative: "sport=gaelic_games";
1476 group: tr("deprecated tagging");
1477}
1478
1479/* #17556 */
1480*[leisure=common] {
1481 throwWarning: tr("{0} is deprecated", "{0.tag}");
1482 suggestAlternative: "landuse=*";
1483 suggestAlternative: "leisure=*";
1484 suggestAlternative: "designation=common";
1485 group: tr("deprecated tagging");
1486}
1487
1488/* #17043 */
1489*[cuisine=vegan],
1490*[cuisine=vegetarian] {
1491 throwWarning: tr("{0} is deprecated", "{0.tag}");
1492 suggestAlternative: concat("diet:", "{0.value}", "=yes");
1493 suggestAlternative: concat("diet:", "{0.value}", "=only");
1494 group: tr("deprecated tagging");
1495}
1496
1497/* #17798 */
1498*[kitchen_hours] {
1499 throwWarning: tr("{0} is deprecated", "{0.key}");
1500 suggestAlternative: "opening_hours:kitchen";
1501 fixChangeKey: "kitchen_hours => opening_hours:kitchen";
1502 group: tr("deprecated tagging");
1503}
1504
1505/* #17681 */
1506*[shop=money_transfer] {
1507 throwWarning: tr("{0} is deprecated", "{0.tag}");
1508 suggestAlternative: "amenity=money_transfer";
1509 fixChangeKey: "shop => amenity";
1510 group: tr("deprecated tagging");
1511}
1512
1513*[contact:google_plus] {
1514 throwWarning: tr("{0} is deprecated", "{0.key}");
1515 fixRemove: "contact:google_plus";
1516 group: tr("deprecated tagging");
1517}
1518
1519/* #17370 */
1520*[amenity=garages],
1521*[amenity=garage] {
1522 throwWarning: tr("{0} is deprecated", "{0.tag}");
1523 suggestAlternative: concat("building=", "{0.value}");
1524 suggestAlternative: "landuse=garages";
1525 suggestAlternative: "amenity=parking + parking=garage_boxes";
1526 group: tr("deprecated tagging");
1527}
1528*[shop=winery],
1529*[amenity=winery] {
1530 throwWarning: tr("{0} is deprecated", "{0.tag}");
1531 suggestAlternative: "craft=winery";
1532 suggestAlternative: "shop=wine";
1533 group: tr("deprecated tagging");
1534}
1535*[amenity=youth_centre] {
1536 throwWarning: tr("{0} is deprecated", "{0.tag}");
1537 suggestAlternative: "amenity=community_centre + community_centre=youth_centre";
1538 fixAdd: "amenity=community_centre";
1539 fixAdd: "community_centre=youth_centre";
1540 group: tr("deprecated tagging");
1541}
1542*[building:type][building=yes],
1543*[building:type][!building] {
1544 throwWarning: tr("{0} is deprecated", "{0.key}");
1545 suggestAlternative: "building";
1546 group: tr("deprecated tagging");
1547 fixChangeKey: "building:type => building";
1548 assertMatch: "way building:type=church";
1549 assertMatch: "way building:type=church building=yes";
1550 assertNoMatch: "way building:type=church building=supermarket";
1551}
1552*[building:type][building][building!=yes] {
1553 throwWarning: tr("{0} is deprecated", "{0.key}");
1554 suggestAlternative: "building";
1555 group: tr("deprecated tagging");
1556 assertNoMatch: "way building:type=church";
1557 assertNoMatch: "way building:type=church building=yes";
1558 assertMatch: "way building:type=church building=supermarket";
1559}
1560*[escalator] {
1561 throwWarning: tr("{0} is deprecated", "{0.key}");
1562 suggestAlternative: "highway=steps + conveying=*";
1563 group: tr("deprecated tagging");
1564}
1565*[fenced] {
1566 throwWarning: tr("{0} is deprecated", "{0.key}");
1567 suggestAlternative: "barrier=fence";
1568 group: tr("deprecated tagging");
1569}
1570*[historic_name][!old_name] {
1571 throwWarning: tr("{0} is deprecated", "{0.key}");
1572 suggestAlternative: "old_name";
1573 group: tr("deprecated tagging");
1574 fixChangeKey: "historic_name => old_name";
1575}
1576*[historic_name][old_name] {
1577 throwWarning: tr("{0} is deprecated", "{0.key}");
1578 suggestAlternative: "old_name";
1579 group: tr("deprecated tagging");
1580}
1581*[landuse=field] {
1582 throwWarning: tr("{0} is deprecated", "{0.tag}");
1583 suggestAlternative: "landuse=farmland";
1584 group: tr("deprecated tagging");
1585 fixAdd: "landuse=farmland";
1586}
1587*[leisure=beach] {
1588 throwWarning: tr("{0} is deprecated", "{0.tag}");
1589 suggestAlternative: "natural=beach";
1590 suggestAlternative: "leisure=beach_resort";
1591 group: tr("deprecated tagging");
1592}
1593*[leisure=club] {
1594 throwWarning: tr("{0} is deprecated", "{0.tag}");
1595 suggestAlternative: "club=*";
1596 group: tr("deprecated tagging");
1597}
1598*[leisure=video_arcade] {
1599 throwWarning: tr("{0} is deprecated", "{0.tag}");
1600 suggestAlternative: "leisure=amusement_arcade";
1601 suggestAlternative: "leisure=adult_gaming_centre";
1602 group: tr("deprecated tagging");
1603}
1604*[man_made=jetty] {
1605 throwWarning: tr("{0} is deprecated", "{0.tag}");
1606 suggestAlternative: "man_made=pier";
1607 group: tr("deprecated tagging");
1608 fixAdd: "man_made=pier";
1609}
1610*[man_made=village_pump] {
1611 throwWarning: tr("{0} is deprecated", "{0.tag}");
1612 suggestAlternative: "man_made=water_well";
1613 group: tr("deprecated tagging");
1614 fixAdd: "man_made=water_well";
1615}
1616*[man_made=water_tank] {
1617 throwWarning: tr("{0} is deprecated", "{0.tag}");
1618 suggestAlternative: "man_made=storage_tank + content=water";
1619 group: tr("deprecated tagging");
1620 fixAdd: "man_made=storage_tank";
1621 fixAdd: "content=water";
1622}
1623*[natural=moor] {
1624 throwWarning: tr("{0} is deprecated", "{0.tag}");
1625 suggestAlternative: "natural=heath";
1626 suggestAlternative: "natural=scrub";
1627 suggestAlternative: "natural=grassland";
1628 suggestAlternative: "natural=wetland";
1629 suggestAlternative: "natural=fell";
1630 suggestAlternative: "natural=tundra";
1631 suggestAlternative: "landuse=meadow + meadow=agricultural";
1632 group: tr("deprecated tagging");
1633}
1634*[noexit=no][!fixme] {
1635 throwWarning: tr("{0} is deprecated", "{0.tag}");
1636 suggestAlternative: "fixme=continue";
1637 group: tr("deprecated tagging");
1638 fixAdd: "fixme=continue";
1639 fixRemove: "noexit";
1640}
1641*[noexit=no][fixme] {
1642 throwWarning: tr("{0} is deprecated", "{0.tag}");
1643 suggestAlternative: "fixme=continue";
1644 group: tr("deprecated tagging");
1645}
1646*[shop=dive] {
1647 throwWarning: tr("{0} is deprecated", "{0.tag}");
1648 suggestAlternative: "shop=scuba_diving";
1649 group: tr("deprecated tagging");
1650 fixAdd: "shop=scuba_diving";
1651}
1652*[shop=furnace] {
1653 throwWarning: tr("{0} is deprecated", "{0.tag}");
1654 suggestAlternative: "shop=fireplace";
1655 suggestAlternative: "craft=plumber";
1656 group: tr("deprecated tagging");
1657}
1658*[sport=paragliding] {
1659 throwWarning: tr("{0} is deprecated", "{0.tag}");
1660 suggestAlternative: "sport=free_flying";
1661 group: tr("deprecated tagging");
1662 fixAdd: "sport=free_flying";
1663}
1664*[tourism=bed_and_breakfast] {
1665 throwWarning: tr("{0} is deprecated", "{0.tag}");
1666 suggestAlternative: "tourism=guest_house + guest_house=bed_and_breakfast";
1667 group: tr("deprecated tagging");
1668 fixAdd: "tourism=guest_house";
1669 fixAdd: "guest_house=bed_and_breakfast";
1670}
1671
1672/* #17880 */
1673*[diaper=yes],
1674*[diaper=no] {
1675 throwWarning: tr("{0} is deprecated", "{0.tag}");
1676 suggestAlternative: concat("changing_table=", "{0.value}");
1677 group: tr("deprecated tagging");
1678 fixChangeKey: "diaper => changing_table";
1679 set diaper_checked;
1680}
1681*[diaper][diaper =~ /^[1-9][0-9]*$/] {
1682 throwWarning: tr("{0} is deprecated", "{0.tag}");
1683 suggestAlternative: concat("changing_table=yes + changing_table:count=", "{0.value}");
1684 group: tr("deprecated tagging");
1685 fixChangeKey: "diaper => changing_table:count";
1686 fixAdd: "changing_table=yes";
1687 set diaper_checked;
1688}
1689*[diaper=room] {
1690 throwWarning: tr("{0} is deprecated", "{0.tag}");
1691 suggestAlternative: "changing_table=room";
1692 suggestAlternative: "changing_table=dedicated_room";
1693 group: tr("deprecated tagging");
1694 set diaper_checked;
1695}
1696*[diaper]!.diaper_checked {
1697 throwWarning: tr("{0} is deprecated", "{0.key}");
1698 suggestAlternative: "changing_table";
1699 group: tr("deprecated tagging");
1700}
1701*[diaper:male=yes] {
1702 throwWarning: tr("{0} is deprecated", "{0.tag}");
1703 suggestAlternative: "changing_table:location=male_toilet";
1704 group: tr("deprecated tagging");
1705 fixAdd: "changing_table:location=male_toilet";
1706 fixRemove: "diaper:male";
1707 set diaper___checked;
1708}
1709*[diaper:female=yes] {
1710 throwWarning: tr("{0} is deprecated", "{0.tag}");
1711 suggestAlternative: "changing_table:location=female_toilet";
1712 group: tr("deprecated tagging");
1713 fixAdd: "changing_table:location=female_toilet";
1714 fixRemove: "diaper:female";
1715 set diaper___checked;
1716}
1717*[diaper:unisex=yes] {
1718 throwWarning: tr("{0} is deprecated", "{0.tag}");
1719 suggestAlternative: "changing_table:location=unisex_toilet";
1720 group: tr("deprecated tagging");
1721 fixAdd: "changing_table:location=unisex_toilet";
1722 fixRemove: "diaper:unisex";
1723 set diaper___checked;
1724}
1725*[diaper:wheelchair=yes],
1726*[diaper:wheelchair=no] {
1727 throwWarning: tr("{0} is deprecated", "{0.tag}");
1728 suggestAlternative: concat("changing_table:wheelchair=", "{0.value}");
1729 group: tr("deprecated tagging");
1730 fixChangeKey: "diaper:wheelchair => changing_table:wheelchair";
1731 set diaper___checked;
1732}
1733*[diaper:fee=yes],
1734*[diaper:fee=no] {
1735 throwWarning: tr("{0} is deprecated", "{0.tag}");
1736 suggestAlternative: concat("changing_table:fee=", "{0.value}");
1737 group: tr("deprecated tagging");
1738 fixChangeKey: "diaper:fee => changing_table:fee";
1739 set diaper___checked;
1740}
1741*[/^diaper:/]!.diaper___checked {
1742 throwWarning: tr("{0} is deprecated", "diaper:*");
1743 suggestAlternative: "changing_table:*";
1744 group: tr("deprecated tagging");
1745}
1746*[changing_table][changing_table!~/^(yes|no|limited)$/] {
1747 throwWarning: tr("wrong value: {0}", "{0.tag}");
1748 suggestAlternative: "changing_table=yes";
1749 suggestAlternative: "changing_table=no";
1750 suggestAlternative: "changing_table=limited";
1751}
1752
1753/* #17990 */
1754*[roof:shape=half_hipped] {
1755 throwWarning: tr("{0} is deprecated", "{0.tag}");
1756 suggestAlternative: "roof:shape=half-hipped";
1757 group: tr("deprecated tagging");
1758 fixAdd: "roof:shape=half-hipped";
1759}
1760
1761/* #18003 */
1762*[bridge_name] {
1763 throwWarning: tr("{0} is deprecated", "{0.key}");
1764 suggestAlternative: "bridge:name";
1765 group: tr("deprecated tagging");
1766 fixChangeKey: "bridge_name => bridge:name";
1767}
1768
1769/* #18007 */
1770*[access=public] {
1771 throwWarning: tr("{0} is deprecated", "{0.tag}");
1772 suggestAlternative: "access=yes";
1773 group: tr("deprecated tagging");
1774 fixAdd: "access=yes";
1775}
1776
1777/* #17330 */
1778*[crossing=island] {
1779 throwWarning: tr("{0} is deprecated", "{0.tag}");
1780 suggestAlternative: "crossing:island=yes";
1781 group: tr("deprecated tagging");
1782 fixRemove: "crossing";
1783 fixAdd: "crossing:island=yes";
1784}
1785
1786/* #18152 */
1787*[recycling:metal] {
1788 throwWarning: tr("{0} is deprecated", "{0.key}");
1789 suggestAlternative: "recycling:scrap_metal";
1790 group: tr("deprecated tagging");
1791 fixChangeKey: "recycling:metal => recycling:scrap_metal";
1792}
1793
1794/* #18154 */
1795*[shop=dog_grooming] {
1796 throwWarning: tr("{0} is deprecated", "{0.tag}");
1797 suggestAlternative: "shop=pet_grooming";
1798 fixAdd: "shop=pet_grooming";
1799 group: tr("deprecated tagging");
1800}
1801
1802/* #17984, #19383 */
1803*[tower:type=anchor],
1804*[tower:type=suspension] {
1805 throwWarning: tr("{0} is deprecated", "{0.tag}");
1806 suggestAlternative: concat("line_attachment=", "{0.value}");
1807 fixChangeKey: "tower:type => line_attachment";
1808 set power_tower_type_warning;
1809 group: tr("deprecated tagging");
1810}
1811*[tower:type=branch][branch:type=split],
1812*[tower:type=branch][branch:type=loop] {
1813 throwWarning: tr("{0} is deprecated", "{0.tag}");
1814 suggestAlternative: "line_management=split";
1815 fixAdd: "line_management=split";
1816 fixRemove: "tower:type";
1817 fixRemove: "branch:type";
1818 set power_tower_type_warning;
1819 group: tr("deprecated tagging");
1820}
1821*[tower:type=branch][!branch:type],
1822*[tower:type=branch][branch:type=tap] {
1823 throwWarning: tr("{0} is deprecated", "{0.tag}");
1824 suggestAlternative: "line_management=branch";
1825 fixAdd: "line_management=branch";
1826 fixRemove: "tower:type";
1827 fixRemove: "branch:type";
1828 set power_tower_type_warning;
1829 group: tr("deprecated tagging");
1830}
1831*[tower:type=branch][branch:type=cross] {
1832 throwWarning: tr("{0} is deprecated", "{0.tag}");
1833 suggestAlternative: "line_management=cross";
1834 fixAdd: "line_management=cross";
1835 fixRemove: "tower:type";
1836 fixRemove: "branch:type";
1837 set power_tower_type_warning;
1838 group: tr("deprecated tagging");
1839}
1840*[tower:type=termination] {
1841 throwWarning: tr("{0} is deprecated", "{0.tag}");
1842 suggestAlternative: "line_management=termination";
1843 fixAdd: "line_management=termination";
1844 fixRemove: "tower:type";
1845 set power_tower_type_warning;
1846 group: tr("deprecated tagging");
1847}
1848*[tower:type=transition] {
1849 throwWarning: tr("{0} is deprecated", "{0.tag}");
1850 suggestAlternative: "location:transition=yes";
1851 fixAdd: "location:transition=yes";
1852 fixRemove: "tower:type";
1853 set power_tower_type_warning;
1854 group: tr("deprecated tagging");
1855}
1856*[tower:type=transposing] {
1857 throwWarning: tr("{0} is deprecated", "{0.tag}");
1858 suggestAlternative: "line_management=transpose";
1859 fixAdd: "line_management=transpose";
1860 fixRemove: "tower:type";
1861 set power_tower_type_warning;
1862 group: tr("deprecated tagging");
1863}
1864*[tower:type=crossing] {
1865 throwWarning: tr("{0} is deprecated", "{0.tag}");
1866 suggestAlternative: "height=* + design=*";
1867 set power_tower_type_warning;
1868 group: tr("deprecated tagging");
1869}
1870*[tower:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_tower_type_warning {
1871 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
1872 suggestAlternative: "design";
1873 suggestAlternative: "structure";
1874 suggestAlternative: "line_management";
1875 suggestAlternative: "line_attachment";
1876 set generic_power_tower_type_warning;
1877 group: tr("deprecated tagging");
1878}
1879node[pole:type=anchor],
1880node[pole:type=suspension] {
1881 throwWarning: tr("{0} is deprecated", "{0.tag}");
1882 suggestAlternative: concat("line_attachment=", "{0.value}");
1883 fixChangeKey: "pole:type => line_attachment";
1884 set power_pole_type_warning;
1885 group: tr("deprecated tagging");
1886}
1887node[pole:type=branch][branch:type=split],
1888node[pole:type=branch][branch:type=loop] {
1889 throwWarning: tr("{0} is deprecated", "{0.tag}");
1890 suggestAlternative: "line_management=split";
1891 fixAdd: "line_management=split";
1892 fixRemove: "pole:type";
1893 fixRemove: "branch:type";
1894 set power_pole_type_warning;
1895 group: tr("deprecated tagging");
1896}
1897node[pole:type=branch][!branch:type],
1898node[pole:type=branch][branch:type=tap] {
1899 throwWarning: tr("{0} is deprecated", "{0.tag}");
1900 suggestAlternative: "line_management=branch";
1901 fixAdd: "line_management=branch";
1902 fixRemove: "pole:type";
1903 fixRemove: "branch:type";
1904 set power_pole_type_warning;
1905 group: tr("deprecated tagging");
1906}
1907node[pole:type=branch][branch:type=cross] {
1908 throwWarning: tr("{0} is deprecated", "{0.tag}");
1909 suggestAlternative: "line_management=cross";
1910 fixAdd: "line_management=cross";
1911 fixRemove: "pole:type";
1912 fixRemove: "branch:type";
1913 set power_pole_type_warning;
1914 group: tr("deprecated tagging");
1915}
1916node[pole:type=termination] {
1917 throwWarning: tr("{0} is deprecated", "{0.tag}");
1918 suggestAlternative: "line_management=termination";
1919 fixAdd: "line_management=termination";
1920 fixRemove: "pole:type";
1921 set power_pole_type_warning;
1922 group: tr("deprecated tagging");
1923}
1924node[pole:type=transition] {
1925 throwWarning: tr("{0} is deprecated", "{0.tag}");
1926 suggestAlternative: "location:transition=yes";
1927 fixAdd: "location:transition=yes";
1928 fixRemove: "pole:type";
1929 set power_pole_type_warning;
1930 group: tr("deprecated tagging");
1931}
1932*[pole:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_pole_type_warning!.generic_power_tower_type_warning {
1933 throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}");
1934 suggestAlternative: "line_management";
1935 suggestAlternative: "line_attachment";
1936 group: tr("deprecated tagging");
1937}
1938
1939/* #18267 */
1940node[man_made=pipeline_marker],
1941node[pipeline=marker],
1942node[power=marker],
1943node[cable=marker] {
1944 throwWarning: tr("{0} is deprecated", "{0.tag}");
1945 suggestAlternative: "marker=* + utility=*";
1946 group: tr("deprecated tagging");
1947}
1948
1949/* #17643 */
1950way[barrier=embankment] {
1951 throwWarning: tr("{0} is deprecated", "{0.tag}");
1952 suggestAlternative: "man_made=embankment";
1953 suggestAlternative: "embankment=yes";
1954 group: tr("deprecated tagging");
1955}
1956
1957/* #18469 */
1958way[landuse=churchyard] {
1959 throwWarning: tr("{0} is deprecated", "{0.tag}");
1960 suggestAlternative: "landuse=religious";
1961 suggestAlternative: "amenity=graveyard";
1962 group: tr("deprecated tagging");
1963}
1964
1965*[sloped_curb=yes][!kerb],
1966*[sloped_curb=both][!kerb] {
1967 throwWarning: tr("{0} is deprecated", "{0.tag}");
1968 suggestAlternative: "kerb=lowered";
1969 group: tr("deprecated tagging");
1970 fixRemove: "sloped_curb";
1971 fixAdd: "kerb=lowered";
1972}
1973*[sloped_curb=no][!kerb] {
1974 throwWarning: tr("{0} is deprecated", "{0.tag}");
1975 suggestAlternative: "kerb=yes";
1976 group: tr("deprecated tagging");
1977 fixRemove: "sloped_curb";
1978 fixAdd: "kerb=yes";
1979}
1980*[sloped_curb][sloped_curb !~ /^(yes|both|no)$/][!kerb],
1981*[sloped_curb][kerb] {
1982 throwWarning: tr("{0} is deprecated", "{0.key}");
1983 suggestAlternative: "kerb=*";
1984 group: tr("deprecated tagging");
1985}
1986
1987/* #18571 */
1988*[unnamed=yes] {
1989 throwWarning: tr("{0} is deprecated", "{0.tag}");
1990 suggestAlternative: "noname=yes";
1991 fixChangeKey: "unnamed => noname";
1992 group: tr("deprecated tagging");
1993}
1994
1995node[segregated][segregated!=yes][segregated!=no],
1996way[segregated ][segregated!=yes][segregated!=no] {
1997 throwWarning: tr("unusual value of {0}", "{0.key}");
1998}
1999
2000/* #18603 */
2001way[bicycle:oneway] {
2002 throwWarning: tr("{0} is deprecated", "{0.key}");
2003 suggestAlternative: "oneway:bicycle";
2004 fixChangeKey: "bicycle:oneway => oneway:bicycle";
2005 group: tr("deprecated tagging");
2006}
2007
2008/* #18605 */
2009*[building:height] {
2010 throwWarning: tr("{0} is deprecated", "{0.key}");
2011 suggestAlternative: "height";
2012 fixChangeKey: "building:height => height";
2013 group: tr("deprecated tagging");
2014}
2015*[building:min_height] {
2016 throwWarning: tr("{0} is deprecated", "{0.key}");
2017 suggestAlternative: "min_height";
2018 fixChangeKey: "building:min_height => min_height";
2019 group: tr("deprecated tagging");
2020}
2021
2022/* #11232 */
2023way[highway][construction=yes][highway!=construction] {
2024 throwWarning: tr("{0} is deprecated", "{1.tag}");
2025 suggestAlternative: "construction=minor";
2026 suggestAlternative: concat("highway=construction + construction=", "{0.value}");
2027 group: tr("deprecated tagging");
2028}
2029
2030/* #18659 */
2031*[car][amenity=charging_station] {
2032 throwWarning: tr("{0} is deprecated", "{0.key}");
2033 suggestAlternative: "motorcar";
2034 group: tr("deprecated tagging");
2035 fixChangeKey: "car => motorcar";
2036}
2037
2038/* #18767 */
2039*[navigationaid=approach_light],
2040*[navigationaid="ALS (Approach lighting system)"] {
2041 throwWarning: tr("{0} is deprecated", "{0.tag}");
2042 suggestAlternative: "navigationaid=als";
2043 group: tr("deprecated tagging");
2044 fixAdd: "navigationaid=als";
2045}
2046
2047/* #18819 */
2048node[exit_to] {
2049 throwWarning: tr("{0} is deprecated", "{0.key}");
2050 suggestAlternative: "destination";
2051 group: tr("deprecated tagging");
2052}
2053
2054/* #18951 */
2055*[water=riverbank][!natural] {
2056 throwWarning: tr("{0} is deprecated", "{0.tag}");
2057 suggestAlternative: "natural=water + water=river";
2058 group: tr("deprecated tagging");
2059 fixAdd: "water=river";
2060 fixAdd: "natural=water";
2061}
2062*[water=riverbank][natural] {
2063 throwWarning: tr("{0} is deprecated", "{0.tag}");
2064 suggestAlternative: "natural=water + water=river";
2065 group: tr("deprecated tagging");
2066}
2067
2068node[amenity=bench][capacity][!seats],
2069way[amenity=bench][capacity][!seats] {
2070 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
2071 suggestAlternative: "seats";
2072 group: tr("deprecated tagging");
2073 fixChangeKey: "capacity => seats";
2074}
2075node[amenity=bench][capacity][seats],
2076way[amenity=bench][capacity][seats] {
2077 throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}");
2078 suggestAlternative: "seats";
2079 group: tr("deprecated tagging");
2080}
2081
2082/* #19396 */
2083way[stream=intermittent] {
2084 throwWarning: tr("{0} is deprecated", "{0.tag}");
2085 suggestAlternative: "intermittent=yes";
2086 suggestAlternative: "seasonal=yes";
2087 group: tr("deprecated tagging");
2088}
2089
2090*[shop=lamps] {
2091 throwWarning: tr("{0} is deprecated", "{0.tag}");
2092 suggestAlternative: "shop=lighting";
2093 group: tr("deprecated tagging");
2094 fixAdd: "shop=lighting";
2095}
2096
2097/* #19180 */
2098*[access=customer] {
2099 throwWarning: tr("{0} is deprecated", "{0.tag}");
2100 suggestAlternative: "access=customers";
2101 group: tr("deprecated tagging");
2102 fixAdd: "access=customers";
2103}
2104*[addr:inclusion=estimated] {
2105 throwWarning: tr("{0} is deprecated", "{0.tag}");
2106 suggestAlternative: "addr:inclusion=estimate";
2107 group: tr("deprecated tagging");
2108 fixAdd: "addr:inclusion=estimate";
2109}
2110*[building=apartment] {
2111 throwWarning: tr("{0} is deprecated", "{0.tag}");
2112 suggestAlternative: "building=apartments";
2113 group: tr("deprecated tagging");
2114 fixAdd: "building=apartments";
2115}
2116node[lamp_mount="bent mast"] {
2117 throwWarning: tr("{0} is deprecated", "{0.tag}");
2118 suggestAlternative: "lamp_mount=bent_mast";
2119 group: tr("deprecated tagging");
2120 fixAdd: "lamp_mount=bent_mast";
2121}
2122node[lamp_mount="straight mast"] {
2123 throwWarning: tr("{0} is deprecated", "{0.tag}");
2124 suggestAlternative: "lamp_mount=straight_mast";
2125 group: tr("deprecated tagging");
2126 fixAdd: "lamp_mount=straight_mast";
2127}
2128node[lamp_type=electrical] {
2129 throwWarning: tr("{0} is deprecated", "{0.tag}");
2130 suggestAlternative: "lamp_type=electric";
2131 group: tr("deprecated tagging");
2132 fixAdd: "lamp_type=electric";
2133}
2134*[generator:type=solar_photovoltaic_panels] {
2135 throwWarning: tr("{0} is deprecated", "{0.tag}");
2136 suggestAlternative: "generator:type=solar_photovoltaic_panel";
2137 group: tr("deprecated tagging");
2138 fixAdd: "generator:type=solar_photovoltaic_panel";
2139}
2140*[building=part] {
2141 throwWarning: tr("{0} is deprecated", "{0.tag}");
2142 suggestAlternative: "building:part=yes";
2143 group: tr("deprecated tagging");
2144 /* without autofix, it is not clear if a building or a building part is mapped */
2145}
2146
2147/* #19739 */
2148*[natural=sink_hole] {
2149 throwWarning: tr("{0} is deprecated", "{0.tag}");
2150 suggestAlternative: "natural=sinkhole";
2151 group: tr("deprecated tagging");
2152 fixAdd: "natural=sinkhole";
2153}
2154
2155/* #19782 */
2156*[climbing:grade:UIAA:min] {
2157 throwWarning: tr("{0} is deprecated", "{0.key}");
2158 suggestAlternative: "climbing:grade:uiaa:min";
2159 group: tr("deprecated tagging");
2160 fixChangeKey: "climbing:grade:UIAA:min => climbing:grade:uiaa:min";
2161}
2162*[climbing:grade:UIAA:max] {
2163 throwWarning: tr("{0} is deprecated", "{0.key}");
2164 suggestAlternative: "climbing:grade:uiaa:max";
2165 group: tr("deprecated tagging");
2166 fixChangeKey: "climbing:grade:UIAA:max => climbing:grade:uiaa:max";
2167}
2168*[climbing:grade:UIAA:mean] {
2169 throwWarning: tr("{0} is deprecated", "{0.key}");
2170 suggestAlternative: "climbing:grade:uiaa:mean";
2171 group: tr("deprecated tagging");
2172 fixChangeKey: "climbing:grade:UIAA:mean => climbing:grade:uiaa:mean";
2173}
2174*[climbing:grade:UIAA] {
2175 throwWarning: tr("{0} is deprecated", "{0.key}");
2176 suggestAlternative: "climbing:grade:uiaa";
2177 group: tr("deprecated tagging");
2178 fixChangeKey: "climbing:grade:UIAA => climbing:grade:uiaa";
2179}
2180
2181/* #19835 */
2182*[cuisine][cuisine =~ /^(?i)(bbq)$/] { /* single value cases with autofix */
2183 throwWarning: tr("{0} is deprecated", "{0.tag}");
2184 suggestAlternative: "cuisine=barbecue";
2185 group: tr("deprecated tagging");
2186 fixAdd: "cuisine=barbecue";
2187 set bbq_autofix;
2188 assertMatch: "way cuisine=bbq";
2189 assertMatch: "way cuisine=BBQ";
2190 assertNoMatch: "way cuisine=pizza;Bbq";
2191 assertNoMatch: "way cuisine=pizza;bbq";
2192 assertNoMatch: "way cuisine=bbq;pizza";
2193 assertNoMatch: "way cuisine=pasta;bbq;pizza";
2194 assertNoMatch: "way cuisine=korean_bbq";
2195 assertNoMatch: "way cuisine=korean_bbq;bbq";
2196}
2197*[cuisine =~ /(?i)(;bbq|bbq;)/][cuisine!~/(?i)(_bbq)/] { /* multi value cases without autofix */
2198 throwWarning: tr("{0} is deprecated", "cuisine=bbq");
2199 suggestAlternative: "cuisine=barbecue";
2200 group: tr("deprecated tagging");
2201 assertNoMatch: "way cuisine=bbq";
2202 assertNoMatch: "way cuisine=BBQ";
2203 assertMatch: "way cuisine=pizza;Bbq";
2204 assertMatch: "way cuisine=pizza;bbq";
2205 assertMatch: "way cuisine=bbq;pizza";
2206 assertMatch: "way cuisine=pasta;bbq;pizza";
2207 assertNoMatch: "way cuisine=korean_bbq";
2208 assertNoMatch: "way cuisine=korean_bbq;bbq"; /* corner case (mixed ; and _) not supported by these rules, probably not present in the osm database */
2209}
2210
2211/* #17498 */
2212way[cycleway=none],
2213way[cycleway:left=none],
2214way[cycleway:right=none] {
2215 throwWarning: tr("{0} is deprecated", "{0.tag}");
2216 suggestAlternative: concat("{0.key}", "=no");
2217 group: tr("deprecated tagging");
2218 fixAdd: concat("{0.key}", "=no");
2219}
2220
2221/* #17809 */
2222*[Fixme] {
2223 throwWarning: tr("{0} is deprecated", "{0.key}");
2224 suggestAlternative: "fixme";
2225 group: tr("deprecated tagging");
2226 fixChangeKey: "Fixme => fixme";
2227 assertMatch: "way Fixme=foo";
2228 assertNoMatch: "way fixme=foo";
2229 assertNoMatch: "way FIXME=foo";
2230}
2231
2232/* When tags are deprecated they should be added to ignoretags.cfg too. */
Note: See TracBrowser for help on using the repository browser.