*[barrier=wire_fence] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); suggestAlternative: "barrier=fence + fence_type=chain_link"; fixAdd: "barrier=fence"; fixAdd: "fence_type=chain_link"; assertMatch: "way barrier=wire_fence"; assertNoMatch: "way barrier=fence"; } *[barrier=wood_fence] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "barrier=fence + fence_type=wood"; group: tr("deprecated tagging"); fixAdd: "barrier=fence"; fixAdd: "fence_type=wood"; } node[highway=ford] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "ford=yes"; group: tr("deprecated tagging"); fixRemove: "highway"; fixAdd: "ford=yes"; } way[highway=ford] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "highway=* + ford=yes"; group: tr("deprecated tagging"); } /* from http://wiki.openstreetmap.org/wiki/Deprecated_features */ way[class] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "highway"; group: tr("deprecated tagging"); } *[highway=stile] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "barrier=stile"; group: tr("deprecated tagging"); fixRemove: "highway"; fixAdd: "barrier=stile"; } *[highway=incline] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "incline"; group: tr("deprecated tagging"); } *[highway=incline_steep] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "incline"; group: tr("deprecated tagging"); } *[highway=unsurfaced] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "highway=* + surface=unpaved"; group: tr("deprecated tagging"); fixAdd: "highway=road"; fixAdd: "surface=unpaved"; } *[landuse=wood] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "landuse=forest"; suggestAlternative: "natural=wood"; group: tr("deprecated tagging"); } *[natural=marsh] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=wetland + wetland=marsh"; group: tr("deprecated tagging"); fixAdd: "natural=wetland"; fixAdd: "wetland=marsh"; } /* #23185 */ *[landuse=reservoir][!reservoir_type], *[landuse=reservoir][reservoir_type=water_storage] { group: tr("deprecated tagging"); throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=water + water=reservoir"; fixAdd: "natural=water"; fixAdd: "water=reservoir"; fixRemove: "reservoir_type"; } *[landuse=reservoir][reservoir_type=tailings] { group: tr("deprecated tagging"); throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=tailings_pond"; fixAdd: "man_made=tailings_pond"; fixRemove: "reservoir_type"; fixRemove: "reservoir_type"; } *[landuse=reservoir][reservoir_type=evaporator] { group: tr("deprecated tagging"); throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "basin=evaporation or landuse=salt_pond"; } *[landuse=reservoir][reservoir_type=sewage] { group: tr("deprecated tagging"); throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=water + water=wastewater or landuse=basin + basin=settling or man_made=basin + basin=settling"; } *[highway=byway] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); } *[power_source] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "generator:source"; group: tr("deprecated tagging"); } *[power_rating] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "generator:output"; group: tr("deprecated tagging"); } *[shop=antique] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=antiques"; group: tr("deprecated tagging"); fixAdd: "shop=antiques"; } *[shop=bags] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=bag"; group: tr("deprecated tagging"); fixAdd: "shop=bag"; } /* #17527 */ *[shop=fashion] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=clothes"; group: tr("deprecated tagging"); fixAdd: "shop=clothes"; } *[shop=organic] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=* + organic=yes"; suggestAlternative: "shop=* + organic=only"; group: tr("deprecated tagging"); } *[shop=pets] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=pet"; group: tr("deprecated tagging"); fixAdd: "shop=pet"; } *[shop=pharmacy] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=pharmacy"; group: tr("deprecated tagging"); fixChangeKey: "shop => amenity"; } *[bicycle_parking=sheffield] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "bicycle_parking=stands"; group: tr("deprecated tagging"); fixAdd: "bicycle_parking=stands"; } *[amenity=emergency_phone] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "emergency=phone"; group: tr("deprecated tagging"); fixRemove: "amenity"; fixAdd: "emergency=phone"; } /* #8132 */ *[sport=gaelic_football] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "sport=gaelic_games"; group: tr("deprecated tagging"); fixAdd: "sport=gaelic_games"; } /* #8847, #8961 */ *[power=station] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "power=plant"; suggestAlternative: "power=substation"; group: tr("deprecated tagging"); } *[power=sub_station] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "power=substation"; group: tr("deprecated tagging"); fixAdd: "power=substation"; } *[location=rooftop] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "location=roof"; group: tr("deprecated tagging"); fixAdd: "location=roof"; } *[generator:location] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "location"; group: tr("deprecated tagging"); fixChangeKey: "generator:location => location"; } *[generator:method=dam] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "generator:method=water-storage"; group: tr("deprecated tagging"); fixAdd: "generator:method=water-storage"; } *[generator:method=pumped-storage] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "generator:method=water-pumped-storage"; group: tr("deprecated tagging"); fixAdd: "generator:method=water-pumped-storage"; } *[generator:method=pumping] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "generator:method=water-pumped-storage"; group: tr("deprecated tagging"); fixAdd: "generator:method=water-pumped-storage"; } /* #8962 */ *[fence_type=chain] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "barrier=chain"; suggestAlternative: "barrier=fence + fence_type=chain_link"; group: tr("deprecated tagging"); } /* #9000 */ *[building=entrance] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "entrance"; group: tr("deprecated tagging"); } /* #9213 */ *[board_type=board] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); fixRemove: "board_type"; } /* #8434 */ *[man_made=measurement_station] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=monitoring_station"; group: tr("deprecated tagging"); fixAdd: "man_made=monitoring_station"; } *[measurement=water_level] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "monitoring:water_level=yes"; group: tr("deprecated tagging"); fixRemove: "measurement"; fixAdd: "monitoring:water_level=yes"; } *[measurement=weather] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "monitoring:weather=yes"; group: tr("deprecated tagging"); fixRemove: "measurement"; fixAdd: "monitoring:weather=yes"; } *[measurement=seismic] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "monitoring:seismic_activity=yes"; group: tr("deprecated tagging"); fixRemove: "measurement"; fixAdd: "monitoring:seismic_activity=yes"; } *[monitoring:river_level] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "monitoring:water_level"; group: tr("deprecated tagging"); fixChangeKey: "monitoring:river_level => monitoring:water_level"; } *[stay] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "maxstay"; group: tr("deprecated tagging"); fixChangeKey: "stay => maxstay"; } /* #9554 */ *[emergency=aed] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "emergency=defibrillator"; group: tr("deprecated tagging"); fixAdd: "emergency=defibrillator"; } /* from http://wiki.openstreetmap.org/wiki/Conditional_restrictions#Deprecated_tags */ *[day_on][!restriction], *[day_off][!restriction], *[date_on][!restriction], *[date_off][!restriction], *[hour_on][!restriction], *[hour_off][!restriction] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "*:conditional"; group: tr("deprecated tagging"); assertMatch: "node day_on=0-12"; } /* #10000 */ *[access=designated] { throwWarning: tr("''{0}'' is meaningless, use more specific tags, e.g. ''{1}''", "access=designated", "bicycle=designated"); assertMatch: "way access=designated"; } *[access=official] { throwWarning: tr("''{0}'' does not specify the official mode of transportation, use ''{1}'' for example", "access=official", "bicycle=official"); assertMatch: "way access=official"; } /* #10085 */ *[fixme=yes], *[FIXME=yes] { throwWarning: tr("{0}={1} is unspecific. Instead of ''{1}'' please give more information about what exactly should be fixed.", "{0.key}", "{0.value}"); assertMatch: "way fixme=yes"; } *[name][name=~/^(?i)fixme$/] { 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}"); fixRemove: "name"; assertMatch: "node name=fixme"; assertMatch: "node name=Fixme"; assertMatch: "node name=FIXME"; assertNoMatch: "node name=valid name"; } *[note][note=~/^(?i)fixme$/] { 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}"); } /* #10107, #10108, #10929, #13391, #22336 - http://wiki.openstreetmap.org/wiki/Proposed_features/leaftype#Features.2FPages_affected */ *[type=broad_leaved], *[type=broad_leafed] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leaf_type=broadleaved"; group: tr("deprecated tagging"); fixRemove: "{0.key}"; fixAdd: "leaf_type=broadleaved"; } *[wood=coniferous], *[type=coniferous], *[type=conifer] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leaf_type=needleleaved"; group: tr("deprecated tagging"); fixRemove: "{0.key}"; fixAdd: "leaf_type=needleleaved"; } *[wood=mixed] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leaf_type=mixed"; group: tr("deprecated tagging"); fixRemove: "wood"; fixAdd: "leaf_type=mixed"; } *[wood=evergreen], *[type=evergreen] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leaf_cycle=evergreen"; group: tr("deprecated tagging"); fixRemove: "{0.key}"; fixAdd: "leaf_cycle=evergreen"; } *[wood=deciduous], *[type=deciduous], *[type=deciduos] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leaf_cycle=deciduous"; group: tr("deprecated tagging"); fixRemove: "{0.key}"; fixAdd: "leaf_cycle=deciduous"; } node[type=palm], way[type=palm] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leaf_type"; suggestAlternative: "trees"; suggestAlternative: "species"; group: tr("deprecated tagging"); } *[natural=land] { throwWarning: tr("{0} is deprecated. Please use instead a multipolygon.", "{0.tag}"); group: tr("deprecated tagging"); assertMatch: "way natural=land"; } /* #10447 - https://wiki.openstreetmap.org/wiki/Proposed_features/Bridge_types#Deprecated_bridge_key_values */ *[bridge=causeway] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "ford=yes"; suggestAlternative: "bridge=low_water_crossing"; suggestAlternative: "embankment=yes"; group: tr("deprecated tagging"); } *[bridge=swing] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "bridge:movable=swing"; suggestAlternative: "bridge:structure=simple-suspension"; group: tr("deprecated tagging"); } *[bridge=suspension] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "bridge=yes + bridge:structure=suspension"; group: tr("deprecated tagging"); fixAdd: "bridge=yes"; fixAdd: "bridge:structure=suspension"; } *[bridge=pontoon] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "bridge=yes + bridge:structure=floating"; group: tr("deprecated tagging"); fixAdd: "bridge=yes"; fixAdd: "bridge:structure=floating"; } /* #10530 - Incorrect tag proposed in internal preset for years */ *[fee=interval], *[lit=interval], *[supervised=interval] { throwWarning: tr("{0} is deprecated. Please specify interval by using opening_hours syntax", "{0.tag}"); group: tr("deprecated tagging"); } /* #10582 - JOSM supported this tag as "don't upload this" feature, before the introduction of upload flag at layer level */ *[/josm\/ignore/] { throwError: tr("{0} is deprecated. Please delete this object and use a private layer instead", "{0.key}"); group: tr("deprecated tagging"); fixDeleteObject: this; } /* #8281 */ *[sport=diving] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "sport=scuba_diving"; suggestAlternative: "sport=cliff_diving"; group: tr("deprecated tagging"); } /* #8281 */ *[parking=park_and_ride] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=parking + park_ride=yes"; group: tr("deprecated tagging"); fixRemove: "parking"; fixAdd: "amenity=parking"; fixAdd: "park_ride=yes"; } /* #19287, #18334, #17950, #10661, #10837, #11737, #12771, #21009, #22379 */ *[parking=yes], *[playground=yes], *[manhole=plain], *[manhole=unknown], *[manhole=yes], *[police=yes], *[traffic_calming=yes], *[access=restricted], *[barrier=yes], *[aerialway=yes][!public_transport], *[amenity=yes], *[leisure=yes], *[landuse=yes], *[shop="*"], *[shop=yes][amenity!=fuel], *[craft=yes], *[service=yes], *[place=yes] { throwWarning: tr("{0}={1} is unspecific. Please replace ''{1}'' by a specific value.", "{0.key}", "{0.value}"); } /* #10693 - http://wiki.openstreetmap.org/wiki/Proposed_features/drop_recommendation_for_place_name , #10837 */ *[place_name][!name] { throwWarning: tr("{0} should be replaced with {1}", "{0.key}", "{1.key}"); fixChangeKey: "place_name => name"; } *[place][place_name = *name] { throwWarning: tr("{0} = {1}; remove {0}", "{1.key}", "{1.value}"); fixRemove: "{1.key}"; } way[sidewalk=yes] { throwWarning: tr("{0} is unspecific", "{0.tag}"); suggestAlternative: "sidewalk=left"; suggestAlternative: "sidewalk=right"; suggestAlternative: "sidewalk=both"; suggestAlternative: "sidewalk=separate"; } *[waterway=water_point] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=water_point"; group: tr("deprecated tagging"); fixChangeKey: "waterway => amenity"; } *[waterway=waste_disposal] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=waste_disposal"; group: tr("deprecated tagging"); fixChangeKey: "waterway => amenity"; } *[waterway=mooring] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "mooring=yes"; group: tr("deprecated tagging"); fixRemove: "waterway"; fixAdd: "mooring=yes"; } /* #10837, #21268 */ *[building][levels], *[building:part][levels] { throwWarning: tr("{0} is deprecated", "{1.key}"); suggestAlternative: "building:levels"; group: tr("deprecated tagging"); fixChangeKey: "levels => building:levels"; set levels_building; } *[levels]!.levels_building { throwWarning: tr("Unusual key {0}, maybe {1} or {2} is meant", "{0.key}", "level", "building:levels"); } /* #22481 */ *[building:level][!building:levels] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "building:levels"; group: tr("deprecated tagging"); fixChangeKey: "building:level => building:levels"; } *[building:level][building:levels] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "building:levels"; group: tr("deprecated tagging"); } /* #10691 */ *[protected_class] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "protect_class"; group: tr("deprecated tagging"); fixChangeKey: "protected_class => protect_class"; } /* #11070 */ *[kerb=unknown], *[lock=unknown], *[hide=unknown], *[shelter=unknown], *[access=unknown], *[capacity:parent=unknown], *[capacity:women=unknown], *[capacity:disabled=unknown], *[crossing=unknown], *[foot=unknown] { throwWarning: tr("Unspecific tag {0}", "{0.tag}"); } /* #11183 */ *[sport=skiing] { throwWarning: tr("Definition of {0} is unclear", "{0.tag}"); suggestAlternative: tr("{0} + {1} + {2}", "piste:type=*", "piste:difficulty=*", "piste:grooming=*"); group: tr("deprecated tagging"); } /* #11223 */ *[waterway=wadi] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "{0.key}=* + intermittent=yes"; suggestAlternative: "natural=valley"; group: tr("deprecated tagging"); } /* #10346 */ way[oneway=1] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "oneway=yes"; group: tr("deprecated tagging"); fixAdd: "oneway=yes"; } /* #11329 */ way[oneway=-1] { throwWarning: tr("{0} is not recommended. Use the Reverse Ways function from the Tools menu.", "{0.tag}"); } *[drinkable] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "drinking_water"; group: tr("deprecated tagging"); } /* #10329, #15877 */ /* simple key change */ *[color][!colour] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "colour"; group: tr("deprecated tagging"); fixChangeKey: "color => colour"; assertMatch: "way color=red"; assertNoMatch: "way color=red colour=red"; } area[building:color][!building:colour] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "building:colour"; group: tr("deprecated tagging"); fixChangeKey: "building:color => building:colour"; assertMatch: "way building:color=red"; assertNoMatch: "way building:color=red building:colour=red"; } area[roof:color][!roof:colour] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "roof:colour"; group: tr("deprecated tagging"); fixChangeKey: "roof:color => roof:colour"; assertMatch: "way roof:color=red"; assertNoMatch: "way roof:color=red roof:colour=red"; } /* both tags with same value, remove color */ *[color][colour][color=*colour] { throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}"); suggestAlternative: "colour"; group: tr("deprecated tagging"); set samecolor; fixRemove: "color"; assertMatch: "way color=red colour=red"; assertNoMatch: "way color=red colour=green"; } area[building:color][building:colour]["building:color"=*"building:colour"] { throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}"); suggestAlternative: "building:colour"; group: tr("deprecated tagging"); set samebuildingcolor; fixRemove: "building:color"; assertMatch: "way building:color=red building:colour=red"; assertNoMatch: "way building:color=red building:colour=green"; } area[roof:color][roof:colour]["roof:color"=*"roof:colour"] { throwWarning: tr("{0} together with {1}", "{0.key}", "{1.key}"); suggestAlternative: "roof:colour"; group: tr("deprecated tagging"); set sameroofcolor; fixRemove: "roof:color"; assertMatch: "way roof:color=red roof:colour=red"; assertNoMatch: "way roof:color=red roof:colour=green"; } /* both tags with different values, no autofix */ *[color][colour]!.samecolor { throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}"); suggestAlternative: "colour"; group: tr("deprecated tagging"); assertNoMatch: "way color=red colour=red"; assertMatch: "way color=red colour=green"; } *[building:color][building:colour]!.samebuildingcolor { throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}"); suggestAlternative: "building:colour"; group: tr("deprecated tagging"); assertNoMatch: "way building:color=red building:colour=red"; assertMatch: "way building:color=red building:colour=green"; } *[roof:color][roof:colour]!.sameroofcolor { throwWarning: tr("{0} together with {1} and conflicting values", "{0.key}", "{1.key}"); suggestAlternative: "roof:colour"; group: tr("deprecated tagging"); assertNoMatch: "way roof:color=red roof:colour=red"; assertMatch: "way roof:color=red roof:colour=green"; } /* further more universal checks, no autofix */ /* gpxd:color has another warning in unnecessary.mapcss */ *[/:color/][!building:color][!roof:color][!gpxd:color] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: ":colour"; group: tr("deprecated tagging"); assertNoMatch: "way color=red"; assertNoMatch: "way roof:color=grey"; assertMatch: "way cycleway:surface:color=grey"; } *[/color:/] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "colour:"; group: tr("deprecated tagging"); assertNoMatch: "way color=red"; assertMatch: "way color:back=grey"; } /* #11234 */ *[/=|\+|\/|&|<|>|;|'|"|%|#|@|\\|,|\.|\{|\}|\?|\*|\^|\$/] { throwWarning: tr("{0}", "{0.key}"); group: tr("key with uncommon character"); } /* #11330, #18642 */ *[/^.$/], node[/^..$/][!kp][!pk], way[/^..$/][route=ferry][!to], way[/^..$/][route!=ferry], relation[/^..$/][!to] { throwWarning: tr("uncommon short key"); assertNoMatch: "relation to=Berlin"; assertMatch: "relation fo=bar"; assertMatch: "way to=bar"; assertNoMatch: "way to=Zuidschermer;Akersloot route=ferry"; assertMatch: "node fo=bar"; assertMatch: "node f=b"; assertNoMatch: "node kp=5"; /* already has a deprecated warning */ assertNoMatch: "node pk=7"; /* already has a deprecated warning */ } /* #11439 */ *[sport=hockey] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "sport=field_hockey"; suggestAlternative: "sport=ice_hockey"; group: tr("deprecated tagging"); } /* #11471 */ *[sport=billard], *[sport=billards], *[sport=billiard] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "sport=billiards"; group: tr("deprecated tagging"); fixAdd: "sport=billiards"; } /* #11499, #16928, #22367 */ *[payment:electronic_purses=yes] { 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"); } *[payment:cryptocurrencies=yes] { 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"); } /* #16253 */ *[payment:ep_quick], *[payment:ep_cash], *[payment:ep_proton], *[payment:ep_chipknip] { throwWarning: tr("{0} is deprecated", "{0.key}"); group: tr("deprecated tagging"); fixRemove: "{0.key}"; } /* #8717, #20326 */ *[kp][railway!=milestone] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "distance"; group: tr("deprecated tagging"); fixChangeKey: "kp => distance"; } *[pk][railway!=milestone] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "distance"; group: tr("deprecated tagging"); fixChangeKey: "pk => distance"; } *[kp][railway=milestone] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "railway:position"; group: tr("deprecated tagging"); fixChangeKey: "kp => railway:position"; } *[pk][railway=milestone] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "railway:position"; group: tr("deprecated tagging"); fixChangeKey: "pk => railway:position"; } *[distance][railway=milestone] { throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}"); suggestAlternative: "railway:position"; group: tr("deprecated tagging"); fixChangeKey: "distance => railway:position"; } *[postcode] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "addr:postcode"; group: tr("deprecated tagging"); suggestAlternative: "postal_code"; } *[water=intermittent] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "intermittent=yes"; group: tr("deprecated tagging"); fixRemove: "water"; fixAdd: "intermittent=yes"; } /* #10907, #14141 */ /* 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 */ way[type][type!=waterway][man_made=pipeline], node[type][pipeline=marker] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "substance"; group: tr("deprecated tagging"); fixChangeKey: "type => substance"; } *[landuse=farm] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "landuse=farmland"; suggestAlternative: "landuse=farmyard"; group: tr("deprecated tagging"); } /* #12135 comment:11 */ *[seamark=buoy]["seamark:type"=~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "{1.tag}"; group: tr("deprecated tagging"); fixRemove: "seamark"; } *[seamark=buoy]["seamark:type"!~/^(buoy_cardinal|buoy_installation|buoy_isolated_danger|buoy_lateral|buoy_safe_water|buoy_special_purpose|mooring)$/] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "{1.tag}"; group: tr("deprecated tagging"); } /* #12135 */ *[landuse=conservation] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "boundary=protected_area"; group: tr("deprecated tagging"); fixAdd: "boundary=protected_area"; fixRemove: "landuse"; } /* #12205 */ *[amenity=kiosk] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=kiosk"; group: tr("deprecated tagging"); fixChangeKey: "amenity => shop"; } *[amenity=shop] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=*"; group: tr("deprecated tagging"); } *[shop=fishmonger] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=seafood"; group: tr("deprecated tagging"); fixAdd: "shop=seafood"; } *[shop=fish] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=seafood"; suggestAlternative: "shop=pet"; suggestAlternative: "shop=fishing"; group: tr("deprecated tagging"); } *[shop=betting] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=bookmaker"; suggestAlternative: "shop=lottery"; suggestAlternative: "amenity=casino"; suggestAlternative: "leisure=amusement_arcade"; suggestAlternative: "leisure=adult_gaming_centre"; suggestAlternative: "amenity=gambling"; group: tr("deprecated tagging"); } *[shop=perfume] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=perfumery"; group: tr("deprecated tagging"); fixAdd: "shop=perfumery"; } *[amenity=exercise_point] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leisure=fitness_station"; group: tr("deprecated tagging"); fixAdd: "leisure=fitness_station"; fixRemove: "amenity"; } *[shop=auto_parts] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=car_parts"; group: tr("deprecated tagging"); fixAdd: "shop=car_parts"; } *[amenity=car_repair] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=car_repair"; group: tr("deprecated tagging"); fixChangeKey: "amenity => shop"; } /* #12311 */ *[amenity=studio][type=audio], *[amenity=studio][type=radio], *[amenity=studio][type=television], *[amenity=studio][type=video] { throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}"); suggestAlternative: "studio"; group: tr("deprecated tagging"); fixChangeKey: "type => studio"; } /* #11507, #12297, #15409 */ *[power=cable_distribution_cabinet] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=street_cabinet + street_cabinet=*"; group: tr("deprecated tagging"); fixAdd: "man_made=street_cabinet"; fixRemove: "power"; } /* #16430 */ *[power][location=kiosk] { throwWarning: tr("{0} is deprecated", "{1.tag}"); group: tr("deprecated tagging"); fixAdd: "man_made=street_cabinet"; fixAdd: "street_cabinet=power"; fixRemove: "location"; } /* #12276 */ *[man_made=well] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=water_well"; suggestAlternative: "man_made=petroleum_well"; group: tr("deprecated tagging"); } *[amenity=dog_bin], *[amenity=dog_waste_bin] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=waste_basket + waste=dog_excrement + vending=excrement_bags"; group: tr("deprecated tagging"); fixAdd: "amenity=waste_basket"; fixAdd: "waste=dog_excrement"; fixAdd: "vending=excrement_bags"; } *[amenity=artwork] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "tourism=artwork"; group: tr("deprecated tagging"); fixAdd: "tourism=artwork"; fixRemove: "amenity"; } *[amenity=community_center] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=community_centre"; group: tr("deprecated tagging"); fixAdd: "amenity=community_centre"; } *[man_made=cut_line] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=cutline"; group: tr("deprecated tagging"); fixAdd: "man_made=cutline"; } *[amenity=park] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leisure=park"; group: tr("deprecated tagging"); fixAdd: "leisure=park"; fixRemove: "amenity"; } *[amenity=hotel] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "tourism=hotel"; group: tr("deprecated tagging"); fixAdd: "tourism=hotel"; fixRemove: "amenity"; } *[shop=window], *[shop=windows] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "craft=window_construction"; group: tr("deprecated tagging"); fixAdd: "craft=window_construction"; fixRemove: "shop"; } *[amenity=education] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=college"; suggestAlternative: "amenity=school"; suggestAlternative: "amenity=university"; suggestAlternative: "landuse=education"; group: tr("deprecated tagging"); } *[shop=gallery] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=art"; group: tr("deprecated tagging"); fixAdd: "shop=art"; } *[shop=gambling], *[leisure=gambling] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=bookmaker"; suggestAlternative: "shop=lottery"; suggestAlternative: "amenity=casino"; suggestAlternative: "leisure=amusement_arcade"; suggestAlternative: "amenity=gambling"; group: tr("deprecated tagging"); } *[office=real_estate], *[office=real_estate_agent] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "office=estate_agent"; group: tr("deprecated tagging"); fixAdd: "office=estate_agent"; } *[shop=glass] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=glaziery"; suggestAlternative: "craft=glaziery"; group: tr("deprecated tagging"); } *[amenity=proposed], *[amenity=disused], *[shop=disused], *[highway=abandoned], *[historic=abandoned] { throwWarning: tr("{0} is deprecated. Use the {1}: key prefix instead.", "{0.tag}", "{0.value}"); group: tr("deprecated tagging"); } /* #12431 */ *[amenity=swimming_pool] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leisure=swimming_pool"; group: tr("deprecated tagging"); fixChangeKey: "amenity => leisure"; } /* #17379 */ *[amenity=sauna] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leisure=sauna"; group: tr("deprecated tagging"); fixChangeKey: "amenity => leisure"; } /* #12494, #17554 */ *[/^[^t][^i][^g].+_[0-9]$/][!/^note_[0-9]$/][!/^description_[0-9]$/] { throwWarning: tr("{0}", "{0.key}"); group: tr("questionable key (ending with a number)"); assertMatch: "way name_1=foo"; assertNoMatch: "way note_2=foo"; assertNoMatch: "way description_3=foo"; assertNoMatch: "way tiger:name_base_1=bar"; /*should not warn for key tiger:name_base_1 */ } /* #12500 */ *[sport=skating] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "sport=ice_skating"; suggestAlternative: "sport=roller_skating"; group: tr("deprecated tagging"); } way[barrier=wall][type=noise_barrier][!wall], way[barrier=wall][type=noise_barrier][wall=noise_barrier] { throwWarning: tr("{0} is deprecated", "{1.tag}"); suggestAlternative: "wall=noise_barrier"; group: tr("deprecated tagging"); fixChangeKey: "type => wall"; } way[barrier=wall][type=noise_barrier][wall][wall!=noise_barrier] { throwWarning: tr("{0} is deprecated", "{1.tag}"); suggestAlternative: "wall=noise_barrier"; group: tr("deprecated tagging"); } /* #8978, 12588 */ *[amenity=public_building] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=townhall"; suggestAlternative: "amenity=community_centre"; suggestAlternative: "amenity=hospital"; suggestAlternative: "leisure=sports_centre"; suggestAlternative: "office=government"; suggestAlternative: "building=hospital"; suggestAlternative: "building=public"; suggestAlternative: "..."; group: tr("deprecated tagging"); } /* #18517 */ *[office=administrative] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "office=government"; group: tr("deprecated tagging"); fixAdd: "office=government"; } /* #12708 */ *[vending=news_papers] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "vending=newspapers"; group: tr("deprecated tagging"); fixAdd: "vending=newspapers"; } /* #12771 */ *[service=drive_through] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "service=drive-through"; group: tr("deprecated tagging"); fixAdd: "service=drive-through"; } /* #12771, #9895 */ *[noexit][noexit!=yes][noexit!=no], /* noexit=no has an own warning */ way[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 */ way[railway=rail][service][service !~ /^(crossover|siding|spur|yard)$/], way[waterway=canal][service][service !~ /^(irrigation|transportation|water_power)$/] { throwWarning: tr("The key {0} has an uncommon value.", "{1.key}"); } /* #13008 */ *[name:botanical] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "species"; group: tr("deprecated tagging"); } /* #11344, #13101, #15480 */ node[pole=air_to_ground], node[pole=transition] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "location:transition=yes"; group: tr("deprecated tagging"); fixAdd: "location:transition=yes"; fixRemove: "pole"; } node[tower=air_to_ground], node[tower=transition] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "location:transition=yes"; group: tr("deprecated tagging"); fixAdd: "location:transition=yes"; fixRemove: "tower"; } /* #13138 */ area[landuse=pond] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=water + water=pond"; group: tr("deprecated tagging"); fixAdd: "natural=water"; fixAdd: "water=pond"; fixRemove: "landuse"; } *[shop=souvenir], *[shop=souvenirs], *[shop=souveniers] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=gift"; group: tr("deprecated tagging"); fixAdd: "shop=gift"; } *[vending=animal_food] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "vending=animal_feed"; group: tr("deprecated tagging"); fixAdd: "vending=animal_feed"; } /* #14376 */ node[vending=photos][amenity=vending_machine], node[vending=photo][amenity=vending_machine] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=photo_booth"; group: tr("deprecated tagging"); fixRemove: "vending"; fixAdd: "amenity=photo_booth"; } node[vending=photos][amenity!=vending_machine] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=photo_booth"; group: tr("deprecated tagging"); } /* #13653 */ node[highway=emergency_access_point][phone][!emergency_telephone_code], way[highway=emergency_access_point][phone][!emergency_telephone_code] { throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}"); suggestAlternative: "emergency_telephone_code"; group: tr("deprecated tagging"); fixChangeKey: "phone => emergency_telephone_code"; assertMatch: "node highway=emergency_access_point phone=123"; assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=456"; assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=456"; assertNoMatch: "node phone=123"; } node[highway=emergency_access_point][phone=*emergency_telephone_code], way[highway=emergency_access_point][phone=*emergency_telephone_code] { throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}"); suggestAlternative: "emergency_telephone_code"; group: tr("deprecated tagging"); fixRemove: "phone"; assertNoMatch: "node highway=emergency_access_point phone=123"; assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123"; assertMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123"; } node[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code], way[highway=emergency_access_point][phone][emergency_telephone_code][phone!=*emergency_telephone_code] { throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}"); suggestAlternative: "emergency_telephone_code"; group: tr("deprecated tagging"); assertNoMatch: "node highway=emergency_access_point phone=123"; assertNoMatch: "node highway=emergency_access_point emergency_telephone_code=123"; assertNoMatch: "node highway=emergency_access_point phone=123 emergency_telephone_code=123"; } /* #13879 */ way[tracktype=1] { throwError: tr("{0}", "{0.tag}"); suggestAlternative: "tracktype=grade1"; group: tr("misspelled value"); fixAdd: "tracktype=grade1"; } way[tracktype=2] { throwError: tr("{0}", "{0.tag}"); suggestAlternative: "tracktype=grade2"; group: tr("misspelled value"); fixAdd: "tracktype=grade2"; } way[tracktype=3] { throwError: tr("{0}", "{0.tag}"); suggestAlternative: "tracktype=grade3"; group: tr("misspelled value"); fixAdd: "tracktype=grade3"; } way[tracktype=4] { throwError: tr("{0}", "{0.tag}"); suggestAlternative: "tracktype=grade4"; group: tr("misspelled value"); fixAdd: "tracktype=grade4"; } way[tracktype=5] { throwError: tr("{0}", "{0.tag}"); suggestAlternative: "tracktype=grade5"; group: tr("misspelled value"); fixAdd: "tracktype=grade5"; } way[tracktype][tracktype!~/^(1|2|3|4|5|grade1|grade2|grade3|grade4|grade5)$/] { throwError: tr("wrong value: {0}", "{0.tag}"); suggestAlternative: "tracktype=grade1"; suggestAlternative: "tracktype=grade2"; suggestAlternative: "tracktype=grade3"; suggestAlternative: "tracktype=grade4"; suggestAlternative: "tracktype=grade5"; } area[area][area!=yes][area!=no] { throwError: tr("wrong value: {0}", "{0.tag}"); suggestAlternative: "area=yes"; suggestAlternative: "area=no"; } /* #13953 */ *[amenity=hunting_stand][lock=yes], *[amenity=hunting_stand][lock=no] { throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}"); suggestAlternative: "lockable"; group: tr("deprecated tagging"); fixChangeKey: "lock => lockable"; } *[amenity=advertising][!advertising] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "advertising=*"; group: tr("deprecated tagging"); } *[amenity=advertising][advertising] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "advertising=*"; group: tr("deprecated tagging"); fixRemove: "amenity"; } way[direction=up][incline=up], way[direction=down][incline=down], way[direction=up][!incline], way[direction=down][!incline] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "incline"; group: tr("deprecated tagging"); fixChangeKey: "direction => incline"; } way[direction=up][incline][incline!=up], way[direction=down][incline][incline!=down] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "incline"; group: tr("deprecated tagging"); } *[building=true], *[building="*"], *[building=Y], *[building=y], *[building=1] { throwError: tr("{0}", "{0.tag}"); suggestAlternative: "building=yes"; group: tr("misspelled value"); fixAdd: "building=yes"; } /* #17786, #18612 */ *[building=abandoned], *[building=address], *[building=bing], *[building=collapsed], *[building=damaged], *[building=demolished], *[building=disused], *[building=fixme], *[building=occupied], *[building=razed] { throwWarning: tr("{0} is not a building type.", "{0.tag}"); group: tr("deprecated tagging"); } *[building=other], *[building=unclassified], *[building=undefined], *[building=unknown], *[building=unidentified] { throwWarning: tr("{0} is not a building type.", "{0.tag}"); group: tr("deprecated tagging"); fixAdd: "building=yes"; } /* #15675 */ node[power=transformer][location=pole][transformer] { throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}"); group: tr("deprecated tagging"); fixChangeKey: "location => power"; } node[power=transformer][location=pole][!transformer] { throwWarning: tr("{0} together with {1}", "{0.tag}", "{1.tag}"); group: tr("deprecated tagging"); fixChangeKey: "location => power"; fixAdd: "transformer=yes"; } node[tourism=picnic_table], node[amenity=picnic_table], node[leisure=picnic], node[leisure=picnic_site] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "tourism=picnic_site"; suggestAlternative: "leisure=picnic_table"; group: tr("deprecated tagging"); } /* #15804 */ relation[water=salt], way[water=salt], way[water=salt_pool], way[water=salt_panne], way[water=salt_pond] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "salt=yes"; suggestAlternative: "landuse=salt_pond"; group: tr("deprecated tagging"); } /* #15805 */ way[water=tidal] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "tidal=yes"; fixAdd: "tidal=yes"; fixRemove: "water"; group: tr("deprecated tagging"); } *[amenity=toilet] { throwError: tr("{0}", "{0.tag}"); suggestAlternative: "amenity=toilets"; group: tr("misspelled value"); fixAdd: "amenity=toilets"; } way[power=busbar] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "power=line + line=busbar"; group: tr("deprecated tagging"); fixAdd: "power=line"; fixAdd: "line=busbar"; } /* #16924 */ *[man_made=MDF], *[man_made=telephone_exchange] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "telecom=exchange"; fixAdd: "telecom=exchange"; fixRemove: "man_made"; group: tr("deprecated tagging"); } *[building=central_office] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "telecom=exchange"; fixAdd: "telecom=exchange"; fixAdd: "building=yes"; group: tr("deprecated tagging"); } *[telecom=central_office] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "telecom=exchange"; fixAdd: "telecom=exchange"; group: tr("deprecated tagging"); } /* #16925 */ node[communication=outdoor_dslam], node[man_made=outdoor_dslam], node[street_cabinet=outdoor_dslam] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "telecom=service_device"; fixAdd: "telecom=service_device"; fixRemove: "{0.key}"; group: tr("deprecated tagging"); } node[telecom=dslam], node[telecom=outdoor_dslam] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "telecom=service_device"; fixAdd: "telecom=service_device"; group: tr("deprecated tagging"); } /* #15774 */ node[amenity=fire_hydrant] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "emergency=fire_hydrant"; fixChangeKey: "amenity => emergency"; group: tr("deprecated tagging"); } node[fire_hydrant:type=pond] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "water_source=pond"; fixAdd: "water_source=pond"; fixRemove: "{0.key}"; group: tr("deprecated tagging"); } node[fire_hydrant:flow_capacity] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "flow_rate"; group: tr("deprecated tagging"); } node[emergency=fire_hydrant][in_service=no] { throwWarning: tr("{0} is deprecated", "{1.tag}"); suggestAlternative: "disused:emergency=fire_hydrant"; fixAdd: "disused:emergency=fire_hydrant"; fixRemove: "{1.key}"; fixRemove: "{0.key}"; group: tr("deprecated tagging"); } node[fire_hydrant:water_source] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "water_source"; fixChangeKey: "fire_hydrant:water_source => water_source"; group: tr("deprecated tagging"); } /* #17383 */ *[natural=waterfall] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "waterway=waterfall"; fixChangeKey: "natural => waterway"; group: tr("deprecated tagging"); } /* #17249 */ *[religion=unitarian] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "religion=unitarian_universalist"; fixAdd: "religion=unitarian_universalist"; group: tr("deprecated tagging"); } *[shop=shopping_centre] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=mall"; fixAdd: "shop=mall"; group: tr("deprecated tagging"); } /* #17504 */ *[is_in], node[/^is_in:/], way[/^is_in:/] { throwWarning: tr("{0} is deprecated", "{0.key}"); group: tr("deprecated tagging"); fixRemove: "{0.key}"; } /* #17593 */ *[sport=football] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "sport=soccer"; suggestAlternative: "sport=american_football"; suggestAlternative: "sport=australian_football"; suggestAlternative: "sport=canadian_football"; suggestAlternative: "sport=rugby_league"; suggestAlternative: "sport=rugby_union"; suggestAlternative: "sport=gaelic_games"; group: tr("deprecated tagging"); } /* #17556 */ *[leisure=common] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "landuse=*"; suggestAlternative: "leisure=*"; suggestAlternative: "designation=common"; group: tr("deprecated tagging"); } /* #17043 */ *[cuisine=vegan], *[cuisine=vegetarian] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("diet:", "{0.value}", "=yes"); suggestAlternative: concat("diet:", "{0.value}", "=only"); group: tr("deprecated tagging"); } /* #17798 */ *[kitchen_hours] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "opening_hours:kitchen"; fixChangeKey: "kitchen_hours => opening_hours:kitchen"; group: tr("deprecated tagging"); } /* #17681 */ *[shop=money_transfer] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=money_transfer"; fixChangeKey: "shop => amenity"; group: tr("deprecated tagging"); } *[contact:google_plus] { throwWarning: tr("{0} is deprecated", "{0.key}"); fixRemove: "contact:google_plus"; group: tr("deprecated tagging"); } /* #17370 */ *[amenity=garages], *[amenity=garage] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("building=", "{0.value}"); suggestAlternative: "landuse=garages"; suggestAlternative: "amenity=parking + parking=garage_boxes"; group: tr("deprecated tagging"); } *[shop=winery], *[amenity=winery] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "craft=winery"; suggestAlternative: "shop=wine"; group: tr("deprecated tagging"); } *[amenity=youth_centre] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=community_centre + community_centre=youth_centre"; fixAdd: "amenity=community_centre"; fixAdd: "community_centre=youth_centre"; group: tr("deprecated tagging"); } *[building:type][building=yes], *[building:type][!building] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "building"; group: tr("deprecated tagging"); fixChangeKey: "building:type => building"; assertMatch: "way building:type=church"; assertMatch: "way building:type=church building=yes"; assertNoMatch: "way building:type=church building=supermarket"; } *[building:type][building][building!=yes] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "building"; group: tr("deprecated tagging"); assertNoMatch: "way building:type=church"; assertNoMatch: "way building:type=church building=yes"; assertMatch: "way building:type=church building=supermarket"; } *[escalator] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "highway=steps + conveying=*"; group: tr("deprecated tagging"); } *[historic_name][!old_name] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "old_name"; group: tr("deprecated tagging"); fixChangeKey: "historic_name => old_name"; } *[historic_name][old_name] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "old_name"; group: tr("deprecated tagging"); } *[landuse=field] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "landuse=farmland"; group: tr("deprecated tagging"); fixAdd: "landuse=farmland"; } *[leisure=beach] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=beach"; suggestAlternative: "leisure=beach_resort"; group: tr("deprecated tagging"); } *[leisure=club] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "club=*"; group: tr("deprecated tagging"); } *[leisure=video_arcade] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "leisure=amusement_arcade"; suggestAlternative: "leisure=adult_gaming_centre"; group: tr("deprecated tagging"); } *[man_made=jetty] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=pier"; group: tr("deprecated tagging"); fixAdd: "man_made=pier"; } *[man_made=village_pump] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=water_well"; group: tr("deprecated tagging"); fixAdd: "man_made=water_well"; } *[man_made=water_tank] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=storage_tank + content=water"; group: tr("deprecated tagging"); fixAdd: "man_made=storage_tank"; fixAdd: "content=water"; } *[natural=moor] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=heath"; suggestAlternative: "natural=scrub"; suggestAlternative: "natural=grassland"; suggestAlternative: "natural=wetland"; suggestAlternative: "natural=fell"; suggestAlternative: "natural=tundra"; suggestAlternative: "landuse=meadow + meadow=agricultural"; group: tr("deprecated tagging"); } *[noexit=no][!fixme] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "fixme=continue"; group: tr("deprecated tagging"); fixAdd: "fixme=continue"; fixRemove: "noexit"; } *[noexit=no][fixme] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "fixme=continue"; group: tr("deprecated tagging"); } *[shop=dive] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=scuba_diving"; group: tr("deprecated tagging"); fixAdd: "shop=scuba_diving"; } *[shop=furnace] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=fireplace"; suggestAlternative: "craft=plumber"; group: tr("deprecated tagging"); } *[sport=paragliding] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "sport=free_flying"; group: tr("deprecated tagging"); fixAdd: "sport=free_flying"; } *[tourism=bed_and_breakfast] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "tourism=guest_house + guest_house=bed_and_breakfast"; group: tr("deprecated tagging"); fixAdd: "tourism=guest_house"; fixAdd: "guest_house=bed_and_breakfast"; } /* #17880 */ *[diaper=yes], *[diaper=no] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("changing_table=", "{0.value}"); group: tr("deprecated tagging"); fixChangeKey: "diaper => changing_table"; set diaper_checked; } *[diaper][diaper =~ /^[1-9][0-9]*$/] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("changing_table=yes + changing_table:count=", "{0.value}"); group: tr("deprecated tagging"); fixChangeKey: "diaper => changing_table:count"; fixAdd: "changing_table=yes"; set diaper_checked; } *[diaper=room] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "changing_table=room"; suggestAlternative: "changing_table=dedicated_room"; group: tr("deprecated tagging"); set diaper_checked; } *[diaper]!.diaper_checked { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "changing_table"; group: tr("deprecated tagging"); } *[diaper:male=yes] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "changing_table:location=male_toilet"; group: tr("deprecated tagging"); fixAdd: "changing_table:location=male_toilet"; fixRemove: "diaper:male"; set diaper___checked; } *[diaper:female=yes] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "changing_table:location=female_toilet"; group: tr("deprecated tagging"); fixAdd: "changing_table:location=female_toilet"; fixRemove: "diaper:female"; set diaper___checked; } *[diaper:unisex=yes] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "changing_table:location=unisex_toilet"; group: tr("deprecated tagging"); fixAdd: "changing_table:location=unisex_toilet"; fixRemove: "diaper:unisex"; set diaper___checked; } *[diaper:wheelchair=yes], *[diaper:wheelchair=no] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("changing_table:wheelchair=", "{0.value}"); group: tr("deprecated tagging"); fixChangeKey: "diaper:wheelchair => changing_table:wheelchair"; set diaper___checked; } *[diaper:fee=yes], *[diaper:fee=no] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("changing_table:fee=", "{0.value}"); group: tr("deprecated tagging"); fixChangeKey: "diaper:fee => changing_table:fee"; set diaper___checked; } *[/^diaper:/]!.diaper___checked { throwWarning: tr("{0} is deprecated", "diaper:*"); suggestAlternative: "changing_table:*"; group: tr("deprecated tagging"); } *[changing_table][changing_table!~/^(yes|no|limited)$/] { throwWarning: tr("wrong value: {0}", "{0.tag}"); suggestAlternative: "changing_table=yes"; suggestAlternative: "changing_table=no"; suggestAlternative: "changing_table=limited"; } /* #17990 */ *[roof:shape=half_hipped] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "roof:shape=half-hipped"; group: tr("deprecated tagging"); fixAdd: "roof:shape=half-hipped"; } /* #18003 */ *[bridge_name] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "bridge:name"; group: tr("deprecated tagging"); fixChangeKey: "bridge_name => bridge:name"; } /* #18007 */ *[access=public] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "access=yes"; group: tr("deprecated tagging"); fixAdd: "access=yes"; } /* #17330 */ *[crossing=island] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "crossing:island=yes"; group: tr("deprecated tagging"); fixRemove: "crossing"; fixAdd: "crossing:island=yes"; } /* #18152 */ *[recycling:metal] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "recycling:scrap_metal"; group: tr("deprecated tagging"); fixChangeKey: "recycling:metal => recycling:scrap_metal"; } /* #18154 */ *[shop=dog_grooming] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=pet_grooming"; fixAdd: "shop=pet_grooming"; group: tr("deprecated tagging"); } /* #17984, #19383 */ *[tower:type=anchor], *[tower:type=suspension] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("line_attachment=", "{0.value}"); fixChangeKey: "tower:type => line_attachment"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type=branch][branch:type=split], *[tower:type=branch][branch:type=loop] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=split"; fixAdd: "line_management=split"; fixRemove: "tower:type"; fixRemove: "branch:type"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type=branch][!branch:type], *[tower:type=branch][branch:type=tap] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=branch"; fixAdd: "line_management=branch"; fixRemove: "tower:type"; fixRemove: "branch:type"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type=branch][branch:type=cross] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=cross"; fixAdd: "line_management=cross"; fixRemove: "tower:type"; fixRemove: "branch:type"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type=termination] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=termination"; fixAdd: "line_management=termination"; fixRemove: "tower:type"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type=transition] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "location:transition=yes"; fixAdd: "location:transition=yes"; fixRemove: "tower:type"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type=transposing] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=transpose"; fixAdd: "line_management=transpose"; fixRemove: "tower:type"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type=crossing] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "height=* + design=*"; set power_tower_type_warning; group: tr("deprecated tagging"); } *[tower:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_tower_type_warning { throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}"); suggestAlternative: "design"; suggestAlternative: "structure"; suggestAlternative: "line_arrangement"; suggestAlternative: "line_attachment"; suggestAlternative: "line_management"; set generic_power_tower_type_warning; group: tr("deprecated tagging"); } node[pole:type=anchor], node[pole:type=suspension] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("line_attachment=", "{0.value}"); fixChangeKey: "pole:type => line_attachment"; set power_pole_type_warning; group: tr("deprecated tagging"); } node[pole:type=branch][branch:type=split], node[pole:type=branch][branch:type=loop] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=split"; fixAdd: "line_management=split"; fixRemove: "pole:type"; fixRemove: "branch:type"; set power_pole_type_warning; group: tr("deprecated tagging"); } node[pole:type=branch][!branch:type], node[pole:type=branch][branch:type=tap] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=branch"; fixAdd: "line_management=branch"; fixRemove: "pole:type"; fixRemove: "branch:type"; set power_pole_type_warning; group: tr("deprecated tagging"); } node[pole:type=branch][branch:type=cross] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=cross"; fixAdd: "line_management=cross"; fixRemove: "pole:type"; fixRemove: "branch:type"; set power_pole_type_warning; group: tr("deprecated tagging"); } node[pole:type=termination] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "line_management=termination"; fixAdd: "line_management=termination"; fixRemove: "pole:type"; set power_pole_type_warning; group: tr("deprecated tagging"); } node[pole:type=transition] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "location:transition=yes"; fixAdd: "location:transition=yes"; fixRemove: "pole:type"; set power_pole_type_warning; group: tr("deprecated tagging"); } *[pole:type][power][power=~/^(tower|pole|insulator|portal|terminal)$/]!.power_pole_type_warning!.generic_power_tower_type_warning { throwWarning: tr("{0} is deprecated for {1}", "{0.key}", "{1.tag}"); suggestAlternative: "line_arrangement"; suggestAlternative: "line_attachment"; suggestAlternative: "line_management"; group: tr("deprecated tagging"); } /* #18267 */ node[man_made=pipeline_marker], node[pipeline=marker], node[power=marker], node[cable=marker] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "marker=* + utility=*"; group: tr("deprecated tagging"); } /* #17643 */ way[barrier=embankment] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=embankment"; suggestAlternative: "embankment=yes"; group: tr("deprecated tagging"); } /* #18469 */ way[landuse=churchyard] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "landuse=religious"; suggestAlternative: "amenity=graveyard"; group: tr("deprecated tagging"); } *[sloped_curb=yes][!kerb], *[sloped_curb=both][!kerb] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "kerb=lowered"; group: tr("deprecated tagging"); fixRemove: "sloped_curb"; fixAdd: "kerb=lowered"; } *[sloped_curb=no][!kerb] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "kerb=yes"; group: tr("deprecated tagging"); fixRemove: "sloped_curb"; fixAdd: "kerb=yes"; } *[sloped_curb][sloped_curb !~ /^(yes|both|no)$/][!kerb], *[sloped_curb][kerb] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "kerb=*"; group: tr("deprecated tagging"); } /* #18571 */ *[unnamed=yes] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "noname=yes"; fixChangeKey: "unnamed => noname"; group: tr("deprecated tagging"); } node[segregated][segregated!=yes][segregated!=no], way[segregated ][segregated!=yes][segregated!=no] { throwWarning: tr("unusual value of {0}", "{0.key}"); } /* #18603 */ way[bicycle:oneway] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "oneway:bicycle"; fixChangeKey: "bicycle:oneway => oneway:bicycle"; group: tr("deprecated tagging"); } /* #18605 */ *[building:height] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "height"; fixChangeKey: "building:height => height"; group: tr("deprecated tagging"); } *[building:min_height] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "min_height"; fixChangeKey: "building:min_height => min_height"; group: tr("deprecated tagging"); } /* #11232 */ way[highway][construction=yes][highway!=construction] { throwWarning: tr("{0} is deprecated", "{1.tag}"); suggestAlternative: "construction=minor"; suggestAlternative: concat("highway=construction + construction=", "{0.value}"); group: tr("deprecated tagging"); } /* #18659, #20539 */ *[car] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "motorcar"; group: tr("deprecated tagging"); fixChangeKey: "car => motorcar"; } /* #18767 */ *[navigationaid=approach_light], *[navigationaid="ALS (Approach lighting system)"] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "navigationaid=als"; group: tr("deprecated tagging"); fixAdd: "navigationaid=als"; } /* #18819 */ node[exit_to] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "destination"; group: tr("deprecated tagging"); } /* #18951 */ *[water=riverbank][!natural] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=water + water=river"; group: tr("deprecated tagging"); fixAdd: "water=river"; fixAdd: "natural=water"; } *[water=riverbank][natural] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=water + water=river"; group: tr("deprecated tagging"); } /* #21630 */ *[waterway=riverbank][!natural][!water], *[waterway=riverbank][natural=water][!water], *[waterway=riverbank][!natural][water=river], *[waterway=riverbank][natural=water][water=river] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=water + water=river"; group: tr("deprecated tagging"); fixAdd: "natural=water"; fixAdd: "water=river"; fixRemove: "waterway"; assertMatch: "way waterway=riverbank"; assertMatch: "way waterway=riverbank natural=water"; assertMatch: "way waterway=riverbank water=river"; assertMatch: "way waterway=riverbank natural=water water=river"; assertNoMatch: "way waterway=riverbank natural=shingle"; assertNoMatch: "way waterway=riverbank water=lake"; assertNoMatch: "way waterway=riverbank natural=water water=lake"; assertNoMatch: "way waterway=riverbank natural=shingle water=river"; } *[waterway=riverbank][natural][natural!=water], *[waterway=riverbank][water][water!=river] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=water + water=river"; group: tr("deprecated tagging"); assertMatch: "way waterway=riverbank natural=shingle"; assertMatch: "way waterway=riverbank water=lake"; assertNoMatch: "way waterway=riverbank"; assertNoMatch: "way waterway=riverbank natural=water"; assertNoMatch: "way waterway=riverbank water=river"; assertNoMatch: "way waterway=riverbank natural=water water=river"; } node[amenity=bench][capacity][!seats], way[amenity=bench][capacity][!seats] { throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}"); suggestAlternative: "seats"; group: tr("deprecated tagging"); fixChangeKey: "capacity => seats"; } node[amenity=bench][capacity][seats], way[amenity=bench][capacity][seats] { throwWarning: tr("{0} is deprecated for {1}", "{1.key}", "{0.tag}"); suggestAlternative: "seats"; group: tr("deprecated tagging"); } /* #19396 */ way[stream=intermittent] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "intermittent=yes"; suggestAlternative: "seasonal=yes"; group: tr("deprecated tagging"); } *[shop=lamps] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "shop=lighting"; group: tr("deprecated tagging"); fixAdd: "shop=lighting"; } /* #19180 */ *[access=customer] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "access=customers"; group: tr("deprecated tagging"); fixAdd: "access=customers"; } *[addr:inclusion=estimated] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "addr:inclusion=estimate"; group: tr("deprecated tagging"); fixAdd: "addr:inclusion=estimate"; } *[building=apartment] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "building=apartments"; group: tr("deprecated tagging"); fixAdd: "building=apartments"; } node[lamp_mount="bent mast"] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "lamp_mount=bent_mast"; group: tr("deprecated tagging"); fixAdd: "lamp_mount=bent_mast"; } node[lamp_mount="straight mast"] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "lamp_mount=straight_mast"; group: tr("deprecated tagging"); fixAdd: "lamp_mount=straight_mast"; } node[lamp_type=electrical] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "lamp_type=electric"; group: tr("deprecated tagging"); fixAdd: "lamp_type=electric"; } *[generator:type=solar_photovoltaic_panels] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "generator:type=solar_photovoltaic_panel"; group: tr("deprecated tagging"); fixAdd: "generator:type=solar_photovoltaic_panel"; } *[building=part] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "building:part=yes"; group: tr("deprecated tagging"); /* without autofix, it is not clear if a building or a building part is mapped */ } /* #19739 */ *[natural=sink_hole] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "natural=sinkhole"; group: tr("deprecated tagging"); fixAdd: "natural=sinkhole"; } /* #19782 */ *[climbing:grade:UIAA:min] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "climbing:grade:uiaa:min"; group: tr("deprecated tagging"); fixChangeKey: "climbing:grade:UIAA:min => climbing:grade:uiaa:min"; } *[climbing:grade:UIAA:max] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "climbing:grade:uiaa:max"; group: tr("deprecated tagging"); fixChangeKey: "climbing:grade:UIAA:max => climbing:grade:uiaa:max"; } *[climbing:grade:UIAA:mean] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "climbing:grade:uiaa:mean"; group: tr("deprecated tagging"); fixChangeKey: "climbing:grade:UIAA:mean => climbing:grade:uiaa:mean"; } *[climbing:grade:UIAA] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "climbing:grade:uiaa"; group: tr("deprecated tagging"); fixChangeKey: "climbing:grade:UIAA => climbing:grade:uiaa"; } /* #19835 */ *[cuisine][cuisine =~ /^(?i)(bbq)$/] { /* single value cases with autofix */ throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "cuisine=barbecue"; group: tr("deprecated tagging"); fixAdd: "cuisine=barbecue"; set bbq_autofix; assertMatch: "way cuisine=bbq"; assertMatch: "way cuisine=BBQ"; assertNoMatch: "way cuisine=pizza;Bbq"; assertNoMatch: "way cuisine=pizza;bbq"; assertNoMatch: "way cuisine=bbq;pizza"; assertNoMatch: "way cuisine=pasta;bbq;pizza"; assertNoMatch: "way cuisine=korean_bbq"; assertNoMatch: "way cuisine=korean_bbq;bbq"; } *[cuisine =~ /(?i)(;bbq|bbq;)/][cuisine!~/(?i)(_bbq)/] { /* multi value cases without autofix */ throwWarning: tr("{0} is deprecated", "cuisine=bbq"); suggestAlternative: "cuisine=barbecue"; group: tr("deprecated tagging"); assertNoMatch: "way cuisine=bbq"; assertNoMatch: "way cuisine=BBQ"; assertMatch: "way cuisine=pizza;Bbq"; assertMatch: "way cuisine=pizza;bbq"; assertMatch: "way cuisine=bbq;pizza"; assertMatch: "way cuisine=pasta;bbq;pizza"; assertNoMatch: "way cuisine=korean_bbq"; assertNoMatch: "way cuisine=korean_bbq;bbq"; /* corner case (mixed ; and _) not supported by these rules, probably not present in the osm database */ } /* #17498, #20392 */ way[cycleway=none], way[cycleway:left=none], way[cycleway:right=none], way[shoulder=none] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: concat("{0.key}", "=no"); group: tr("deprecated tagging"); fixAdd: concat("{0.key}", "=no"); } /* #17809 */ *[Fixme] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "fixme"; group: tr("deprecated tagging"); fixChangeKey: "Fixme => fixme"; assertMatch: "way Fixme=foo"; assertNoMatch: "way fixme=foo"; assertNoMatch: "way FIXME=foo"; } /* #20338 */ *[amenity=embassy] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "office=diplomatic + diplomatic=embassy"; group: tr("deprecated tagging"); fixAdd: "office=diplomatic"; fixChangeKey: "amenity => diplomatic"; } /* #11019 */ *[service:bicycle:chaintool] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "service:bicycle:chain_tool"; group: tr("deprecated tagging"); fixChangeKey: "service:bicycle:chaintool => service:bicycle:chain_tool"; } /* #20434 */ *[building:roof:shape] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "roof:shape"; group: tr("deprecated tagging"); fixChangeKey: "building:roof:shape => roof:shape"; } /* #20530 */ *[man_made=pumping_rig][!pump_mechanism][!mechanical_driver][!mechanical_coupling] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=petroleum_well"; suggestAlternative: "man_made=water_well"; fixAdd: "pump_mechanism=piston"; fixAdd: "mechanical_driver=combustion_engine"; fixAdd: "mechanical_coupling=nodding_donkey"; group: tr("deprecated tagging"); set pumping_ring_no_mech; } *[man_made=pumping_rig]!.pumping_ring_no_mech { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "man_made=petroleum_well"; suggestAlternative: "man_made=water_well"; group: tr("deprecated tagging"); } *[pump:type=beam_pump][!pump_mechanism][!mechanical_driver][!mechanical_coupling] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "pump_mechanism"; fixRemove: "pump:type"; fixAdd: "pump_mechanism=piston"; fixAdd: "mechanical_driver=combustion_engine"; fixAdd: "mechanical_coupling=nodding_donkey"; group: tr("deprecated tagging"); set beam_pump_no_mech } *[pump:type]!.beam_pump_no_mech { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "pump_mechanism"; group: tr("deprecated tagging"); } *[substance=heat] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "substance=hot_water"; suggestAlternative: "substance=steam"; group: tr("deprecated tagging"); } /* #20959 */ *[landuse=school] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "amenity=college"; suggestAlternative: "amenity=school"; suggestAlternative: "amenity=university"; suggestAlternative: "landuse=education"; group: tr("deprecated tagging"); } /* #21782 */ *[amenity=vending_machine][vending=parcel_mail_in], *[amenity=vending_machine][vending=parcel_pickup] { set .parcel_fixable; throwWarning: tr("{0} is deprecated", "{1.tag}"); suggestAlternative: "amenity=parcel_locker + {1.value}=yes"; fixAdd: "amenity=parcel_locker"; fixAdd: "{1.value}=yes"; fixRemove: "vending"; group: tr("deprecated tagging"); assertMatch: "node amenity=vending_machine vending=parcel_mail_in"; assertMatch: "node amenity=vending_machine vending=parcel_pickup"; } *[amenity=vending_machine][vending][vending~=parcel_mail_in][vending~=parcel_pickup][count(uniq_list(split(";", tag("vending")))) == 2] { set .parcel_fixable; throwWarning: tr("{0} is deprecated", "{1.tag}"); suggestAlternative: "amenity=parcel_locker + parcel_pickup=yes + parcel_mail_in=yes"; fixAdd: "amenity=parcel_locker"; fixAdd: "parcel_pickup=yes"; fixAdd: "parcel_mail_in=yes"; fixRemove: "vending"; group: tr("deprecated tagging"); assertMatch: "node amenity=vending_machine vending=parcel_mail_in;parcel_pickup"; assertMatch: "node amenity=vending_machine vending=parcel_pickup;parcel_mail_in"; } *[amenity=vending_machine][vending~=parcel_mail_in]!.parcel_fixable, *[amenity=vending_machine][vending~=parcel_pickup]!.parcel_fixable { throwWarning: tr("{0} is deprecated", "{1.tag}"); suggestAlternative: "amenity=parcel_locker + {1.value}=yes"; assertMatch: "node amenity=vending_machine vending=parcel_pickup;stamp"; group: tr("deprecated tagging"); } /* #21954 decoturf was added to JOSM presets in r8123 and replaced with acrylic in r18404 */ *[surface=decoturf] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "surface=acrylic"; fixAdd: "surface=acrylic"; group: tr("deprecated tagging"); } /* #20637 */ *[role] { throwWarning: tr("{0} as a tag on an object. Roles are specified in the relation members list instead.", "{0.tag}", "{0.key}"); assertMatch: "node role=stop"; } /* #22120 */ *[school=entrance] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "entrance=yes"; suggestAlternative: "entrance=main"; group: tr("deprecated tagging"); } /* #21836 */ *[voltage-high], *[voltage-low] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "voltage:primary"; suggestAlternative: "voltage:secondary"; group: tr("deprecated tagging"); } /* #22335 */ *[toilet][!toilets] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "toilets"; group: tr("deprecated tagging"); fixChangeKey: "toilet => toilets"; } *[toilet][toilets] { throwWarning: tr("{0} is deprecated", "{0.key}"); suggestAlternative: "toilets"; group: tr("deprecated tagging"); } /* Replaced by type=connectivity */ *[type="turnlanes:turns"] { throwWarning: tr("{0} is deprecated", "{0.tag}"); suggestAlternative: "type=connectivity"; group: tr("deprecated tagging"); } /* temporary URLs, can be extended to other websites and other keys e.g. "url" or "website", #22397 */ *[image][image=~/^https:\/\/westnordost.de\/p\//] { throwWarning: tr("{0} with a temporary URL which may be outdated very soon", "{0.key}"); fixRemove: "{0.key}"; assertMatch: "node image=https://westnordost.de/p/17484.jpg"; assertNoMatch: "node image=https://web.archive.org/web/20220623215400/https://westnordost.de/p/97331.jpg"; assertNoMatch: "node image=https://commons.wikimedia.org/wiki/File:2015-05-13_Basteibr%C3%BCcke-.jpg"; } /* Replaced by archaeological_site, see #22561 */ *[historic=archaeological_site][site_type] { throwWarning: tr("{0} should be replaced with {1}", "{1.key}", "archaeological_site"); fixChangeKey: "site_type => archaeological_site"; assertMatch: "node historic=archaeological_site site_type=fortification"; assertNoMatch: "node historic=archaeological_site site_type2=fortification"; } /* Tag was renamed, see #22957 */ area[parking:orientation][!orientation] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); suggestAlternative: "{1.key}={0.value}"; fixChangeKey: "{0.key} => {1.key}"; } area[parking:orientation][orientation]["parking:orientation"=*orientation] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); fixRemove: "{0.key}"; } area[parking:orientation][orientation]["parking:orientation"!=*orientation] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); suggestAlternative: "{1.key}={0.value}"; suggestAlternative: "{1.key}={1.value}"; } /* Tags were consolidated, see #23177 */ *[gnis:id][!gnis:feature_id], *[tiger:PLACENS][!gnis:feature_id], *[NHD:GNIS_ID][!gnis:feature_id], *[nhd:gnis_id][!gnis:feature_id], *[ref:gnis][!gnis:feature_id] { throwWarning: tr("{0} is deprecated", "{0.key}"); group: tr("deprecated tagging"); suggestAlternative: "{1.key}={0.value}"; fixChangeKey: "{0.key} => {1.key}"; } *[gnis:id][gnis:feature_id], *[tiger:PLACENS][gnis:feature_id], *[NHD:GNIS_ID][gnis:feature_id], *[nhd:gnis_id][gnis:feature_id], *[ref:gnis][gnis:feature_id] { throwWarning: tr("{0} is deprecated", "{0.key}"); group: tr("deprecated tagging"); suggestAlternative: "{1.key}"; } /* From the canvec import */ *[natural=landform][landform=esker] { throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "geological=esker"); group: tr("deprecated tagging"); suggestAlternative: "natural=ridge or geological=esker"; } *[natural=landform][landform=moraine] { throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "geological=moraine"); group: tr("deprecated tagging"); suggestAlternative: "geological=moraine"; } *[natural=landform][landform=beach] { throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "natural=beach"); group: tr("deprecated tagging"); suggestAlternative: "natural=beach"; } *[natural=landform][landform=tundra_polygon] { throwWarning: tr("{0} should be replaced by {1}", "{1.tag}", "natural=tundra"); group: tr("deprecated tagging"); suggestAlternative: "natural=tundra or natural=fell"; } way[cycleway=opposite], way[cycleway:left=opposite], way[cycleway:right=opposite], way[cycleway:both=opposite] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); fixAdd: "oneway:bicycle=no"; fixRemove: "{0.key}"; /* No automated addition of e.g. cycleway:both=no for cycleway=opposite as it may already be tagged with e.g. cycleway:left=lane */ } way[cycleway:left][cycleway:left^=opposite_], way[cycleway:right][cycleway:right^=opposite_] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); /* No fix: unambiguous definition */ } way[cycleway][cycleway^=opposite_]:righthandtraffic { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); suggestAlternative: "oneway:bicycle=no + cycleway:right=* + cycleway:left=* + cycleway:left:oneway=-1"; } way[cycleway][cycleway^=opposite_]!:righthandtraffic { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); suggestAlternative: "oneway:bicycle=no + cycleway:right=* + cycleway:left=* + cycleway:right:oneway=-1"; } *[residential=condominium] { throwWarning: tr("{0} is deprecated", "{0.tag}"); group: tr("deprecated tagging"); suggestAlternative: "residential=apartments + condo=*" } /* When tags are deprecated they should be added to ignoretags.cfg too. */