{{{ #!rule meta { title: "ATMs in Slovakia"; version: "[[revision]]_[[date]]"; description: "Rules implementing operator and ref tag checks for ATMs in Slovak Republic."; icon: "slovakia-flag-icon-64.png"; author: "Jose Riha"; link: "https://wiki.openstreetmap.org/wiki/ATM_Slovakia"; min-josm-version: "11424"; /* due to territory selectors */ } /* please send fixes and suggestions to: jose1711 gmail com */ /* operator tag may not be empty */ *[amenity=atm][!operator][inside("SK")]{ throwError: tr("Operator tag required for ATM"); assertMatch: "node amenity=atm"; assertNoMatch: "node amenity=atm operator=Sberbank"; } /* only allow enumerated values for operator */ *[amenity=atm][operator][operator !~ /^(ČSOB|OTP banka|Poštová banka|Prima banka|Sberbank|Slovenská sporiteľňa|Tatra banka|UniCredit Bank|VÚB|Euronet)$/][inside("SK")]{ throwError: tr("Unrecognized operator (see https://wiki.openstreetmap.org/wiki/ATM_Slovakia)"); assertMatch: "node amenity=atm operator=SSberbank"; assertNoMatch: "node amenity=atm operator=VÚB"; } *[amenity=atm][!ref][inside("SK")]{ throwWarning: tr("Adding ref tag for atm is useful for identification"); } *[amenity=atm][ref][operator="ČSOB"][ref !~ /^S2CS[0-9]{3}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match S2CS[0-9]{3}[A-Z]"); } *[amenity=atm][ref][operator="OTP banka"][ref !~ /^S6AI[0-9]{4}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match S6AI[0-9]{4}[A-Z]"); } *[amenity=atm][ref][operator="Poštová banka"][ref !~ /^S6AP[0-9]{3}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match S6AP[0-9]{3}[A-Z]"); } *[amenity=atm][ref][operator="Prima banka"][ref !~ /^S6AK[0-9]{3}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match S6AK[0-9]{3}[A-Z]"); } *[amenity=atm][ref][operator="Sberbank"][ref !~ /^S6AL[0-9]{2,3}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match S6AL[0-9][0-9][0-9]?[A-Z]"); } *[amenity=atm][ref][operator="Tatra banka"][ref !~ /^(TATN|TBIN)[0-9]{3}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match TATN[0-9]{3}[A-Z]"); } *[amenity=atm][ref][operator="UniCredit Bank"][ref !~ /^S6AN[0-9]{3}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match S6AN[0-9]{3}[A-Z]"); } *[amenity=atm][ref][operator="Slovenská sporiteľňa"][ref !~ /^[0-9][0-9][0-9][0-9]$/][inside("SK")]{ throwError: tr("ATM ref value must match [0-9]{4}"); } *[amenity=atm][ref][operator="VÚB"][ref !~ /^S6AV[0-9]{3}[A-Z]$/][inside("SK")]{ throwError: tr("ATM ref value must match S6AV[0-9]{3}[A-Z]"); } *[amenity=atm][operator][brand][inside("SK")]{ throwWarning: tr("Usage of brand tag is discouraged (use operator instead)"); } *[amenity=atm][!operator][brand][inside("SK")]{ throwWarning: tr("Usage of brand tag is discouraged (use operator instead)"); fixChangeKey: "brand=>operator"; } }}}