Every map object has a Feature Type, which is part of its Feature Info value, which is encoded as a 32-bit integer.

You don't have to work with actual numeric values. In style sheet expressions you can test the name, or (if the feature type is not a route type) the three-letter code. The following expressions mean the same:

'@feature_type = "uni"'
'@feature_type = "university"'

The feature types consist of the 32 route types 0...31, and other types, which are created from three-letter codes aaa ... zzz by encoding each letter in five bits, using the values 1...26 for the letters a...z. Here is a C++ function to create a feature code from three lower-case letters:

inline uint32_t constexpr FeatureTypeCode(int A,int B,int C)
    {
    return (char(A - 'a' + 1) << 10) | (char(B - 'a' + 1) << 5) | (char(C - 'a' + 1));
    }

Here are the feature types that are currently defined and which may be used in expressions in makemap rules (.makemap files), and in style sheet conditions:

 Motorway = 0,
 MotorwayLink = 1,
 TrunkRoad = 2,
 TrunkLink = 3,
 PrimaryRoad = 4,
 PrimaryLink = 5,
 SecondaryRoad = 6,
 SecondaryLink = 7,
 TertiaryRoad = 8,
 UnclassifiedRoad = 9,
 ResidentialRoad = 10,
 Track = 11,
 ServiceRoad = 12,
 PedestrianRoad = 13,
 VehicularFerry = 14,
 PassengerFerry = 15,
 LivingStreet = 16,
 Cycleway = 17,
 Path = 18,
 Footway = 19,
 Bridleway = 20,
 Steps = 21,
 OtherRoad = 22,
 UnpavedRoad = 23,
 Railway = 24,
 LightRail = 25,
 Subway = 26,
 AerialWay = 27,
 SkiDownhill = 28,
 SkiNordic = 29,
 Waterway = 30,
 UnknownRoute = 31,
 UnknownNonRoute = 32,
 AdminArea1 = FeatureTypeCode('a','a','a'),
 AdminArea2 = FeatureTypeCode('a','a','b'),
 AdminArea3 = FeatureTypeCode('a','a','c'),
 AdminArea4 = FeatureTypeCode('a','a','d'),
 AdminArea5 = FeatureTypeCode('a','a','e'),
 AdminArea6 = FeatureTypeCode('a','a','f'),
 AdminArea7 = FeatureTypeCode('a','a','g'),
 AdminArea8 = FeatureTypeCode('a','a','h'),
 AdminArea9 = FeatureTypeCode('a','a','i'),
 AdminArea10 = FeatureTypeCode('a','a','j'),
 Address = FeatureTypeCode('a','d','d'),
 Aerodrome = FeatureTypeCode('a','e','r'),
 Airport = FeatureTypeCode('a','i','r'),
 AirportGate = FeatureTypeCode('a','g','t'),
 AirportHoldingPosition = FeatureTypeCode('a','h','p'),
 Allotments = FeatureTypeCode('a','l','l'),
 AlpineHut = FeatureTypeCode('a','l','p'),
 AmbulanceStation = FeatureTypeCode('a','m','b'),
 Apron = FeatureTypeCode('a','p','r'),
 AerialWayPylon = FeatureTypeCode('a','p','y'),
 Artwork = FeatureTypeCode('a','r','t'),
 AerialWayStation = FeatureTypeCode('a','s','t'),
 AirTerminal = FeatureTypeCode('a','t','e'),
 Atm = FeatureTypeCode('a','t','m'),
 Attraction = FeatureTypeCode('a','t','t'),
 Bar = FeatureTypeCode('b','a','r'),
 Basin = FeatureTypeCode('b','a','s'),
 Bay = FeatureTypeCode('b','a','y'),
 Beach = FeatureTypeCode('b','e','a'),
 Beacon = FeatureTypeCode('b','e','c'),
 BedAndBreakfast = FeatureTypeCode('b','e','d'),
 Bench = FeatureTypeCode('b','e','n'),
 Bank = FeatureTypeCode('b','n','k'),
 Boatyard = FeatureTypeCode('b','o','a'),
 Borough = FeatureTypeCode('b','o','r'),
 Boundary = FeatureTypeCode('b','o','u'),
 BicycleParking = FeatureTypeCode('b','p','k'),
 BicycleRental = FeatureTypeCode('b','r','e'),
 BareRock = FeatureTypeCode('b','r','c'),
 Barracks = FeatureTypeCode('b','r','k'),
 BrownField = FeatureTypeCode('b','r','o'),
 BusStop = FeatureTypeCode('b','s','p'),
 BusStation = FeatureTypeCode('b','s','t'),
 BufferStop = FeatureTypeCode('b','u','f'),
 Building = FeatureTypeCode('b','u','i'),
 Bunker = FeatureTypeCode('b','u','n'),
 Cabin = FeatureTypeCode('c','a','b'),
 Cafe = FeatureTypeCode('c','a','f'),
 CampSite = FeatureTypeCode('c','a','m'),
 Canal = FeatureTypeCode('c','a','n'),
 CaveEntrance = FeatureTypeCode('c','a','v'),
 CableCar = FeatureTypeCode('c','c','r'),
 CableDistributionCabinet = FeatureTypeCode('c','d','c'),
 Cemetery = FeatureTypeCode('c','e','m'),
 ChairLift = FeatureTypeCode('c','h','a'),
 CheckPoint = FeatureTypeCode('c','h','e'),
 Chalet = FeatureTypeCode('c','h','l'),
 CivilBoundary = FeatureTypeCode('c','i','b'),
 Cinema = FeatureTypeCode('c','i','n'),
 City = FeatureTypeCode('c','i','t'),
 Cliff = FeatureTypeCode('c','l','f'),
 Clinic = FeatureTypeCode('c','l','i'),
 Commercial = FeatureTypeCode('c','m','r'),
 Coastline = FeatureTypeCode('c','o','a'),
 College = FeatureTypeCode('c','o','l'),
 Common = FeatureTypeCode('c','o','m'),
 Construction = FeatureTypeCode('c','n','s'),
 Conservation = FeatureTypeCode('c','n','v'),
 Continent = FeatureTypeCode('c','o','n'),
 County = FeatureTypeCode('c','o','u'),
 CarPark = FeatureTypeCode('c','p','k'),
 CarRental = FeatureTypeCode('c','r','e'),
 Crossing = FeatureTypeCode('c','r','o'),
 Country = FeatureTypeCode('c','r','y'),
 CarSharing = FeatureTypeCode('c','s','h'),
 CutLine = FeatureTypeCode('c','u','t'),
 CarWash = FeatureTypeCode('c','w','a'),
 CaravanSite = FeatureTypeCode('c','v','n'),
 CyclingRoute = FeatureTypeCode('c','y','r'),
 Dam = FeatureTypeCode('d','a','m'),
 DangerArea = FeatureTypeCode('d','a','n'),
 Dentist = FeatureTypeCode('d','e','n'),
 Disused = FeatureTypeCode('d','i','s'),
 Ditch = FeatureTypeCode('d','i','t'),
 Dock = FeatureTypeCode('d','o','c'),
 DogPark = FeatureTypeCode('d','o','g'),
 Drain = FeatureTypeCode('d','r','a'),
 DragLift = FeatureTypeCode('d','r','g'),
 Doctors = FeatureTypeCode('d','r','s'),
 District = FeatureTypeCode('d','s','t'),
 ElectricVehicleCharging = FeatureTypeCode('e','v','c'),
 Farm = FeatureTypeCode('f','a','r'),
 FarmYard = FeatureTypeCode('f','a','y'),
 Fell = FeatureTypeCode('f','e','l'),
 FerryTerminal = FeatureTypeCode('f','e','t'),
 FastFood = FeatureTypeCode('f','f','d'),
 FireExtinguisher = FeatureTypeCode('f','i','e'),
 FireFlapper = FeatureTypeCode('f','i','f'),
 FireHose = FeatureTypeCode('f','i','h'),
 FireStation = FeatureTypeCode('f','i','s'),
 FitnessStation = FeatureTypeCode('f','i','t'),
 FireHydrant = FeatureTypeCode('f','i','y'),
 Forestry = FeatureTypeCode('f','o','r'),
 Fishing = FeatureTypeCode('f','s','h'),
 Fuel = FeatureTypeCode('f','u','e'),
 Funicular = FeatureTypeCode('f','u','n'),
 Garages = FeatureTypeCode('g','a','r'),
 Gate = FeatureTypeCode('g','a','t'),
 Garden = FeatureTypeCode('g','d','n'),
 Generator = FeatureTypeCode('g','e','n'),
 GreenHouse = FeatureTypeCode('g','h','o'),
 Glacier = FeatureTypeCode('g','l','a'),
 GolfCourse = FeatureTypeCode('g','o','l'),
 Gondola = FeatureTypeCode('g','o','n'),
 GoodsAerialWay = FeatureTypeCode('g','o','o'),
 Grass = FeatureTypeCode('g','r','a'),
 GreenField = FeatureTypeCode('g','r','e'),
 GritBin = FeatureTypeCode('g','r','b'),
 GraveYard = FeatureTypeCode('g','r','y'),
 GuestHouse = FeatureTypeCode('g','u','e'),
 Halt = FeatureTypeCode('h','a','l'),
 Hamlet = FeatureTypeCode('h','a','m'),
 Hangar = FeatureTypeCode('h','a','n'),
 Heath = FeatureTypeCode('h','e','a'),
 Helipad = FeatureTypeCode('h','e','l'),
 RailwayHalt = FeatureTypeCode('h','l','t'),
 HikingRoute = FeatureTypeCode('h','i','k'),
 HorseRiding = FeatureTypeCode('h','o','r'),
 Hospital = FeatureTypeCode('h','o','s'),
 Hotel = FeatureTypeCode('h','o','t'),
 HorseRidingRoute = FeatureTypeCode('h','r','r'),
 Hostel = FeatureTypeCode('h','s','t'),
 IceRink = FeatureTypeCode('i','c','e'),
 Industrial = FeatureTypeCode('i','n','d'),
 Information = FeatureTypeCode('i','n','f'),
 Island = FeatureTypeCode('i','s','l'),
 IsolatedDwelling = FeatureTypeCode('i','s','o'),
 Junction = FeatureTypeCode('j','c','t'),
 Kindergarten = FeatureTypeCode('k','i','n'),
 LandFill = FeatureTypeCode('l','a','n'),
 Land = FeatureTypeCode('l','n','d'),
 LevelCrossing = FeatureTypeCode('l','e','v'),
 Library = FeatureTypeCode('l','i','b'),
 Locality = FeatureTypeCode('l','o','c'),
 LockGate = FeatureTypeCode('l','o','k'),
 MaritimeBoundary = FeatureTypeCode('m','a','b'),
 Mall = FeatureTypeCode('m','a','l'),
 Marsh = FeatureTypeCode('m','a','r'),
 Meadow = FeatureTypeCode('m','e','a'),
 Military = FeatureTypeCode('m','i','l'),
 Marina = FeatureTypeCode('m','n','a'),
 Motel = FeatureTypeCode('m','o','t'),
 MinorPowerLine = FeatureTypeCode('m','p','l'),
 MiniatureGolf = FeatureTypeCode('m','r','g'),
 MiniatureRailway = FeatureTypeCode('m','r','y'),
 Mud = FeatureTypeCode('m','u','d'),
 Municipality = FeatureTypeCode('m','u','n'),
 Museum = FeatureTypeCode('m','u','s'),
 NatureReserve = FeatureTypeCode('n','a','t'),
 NationalPark = FeatureTypeCode('n','a','p'),
 NavalBase = FeatureTypeCode('n','a','v'),
 Neighborhood = FeatureTypeCode('n','e','i'),
 NursingHome = FeatureTypeCode('n','u','r'),
 Orchard = FeatureTypeCode('o','r','c'),
 PrecisionApproachPathIndicator = FeatureTypeCode('p','a','p'),
 Park = FeatureTypeCode('p','a','r'),
 PublicBuilding = FeatureTypeCode('p','b','u'),
 PostBox = FeatureTypeCode('p','b','x'),
 PostCode = FeatureTypeCode('p','c','o'),
 PicnicTable = FeatureTypeCode('p','c','t'),
 Peak = FeatureTypeCode('p','e','a'),
 Pharmacy = FeatureTypeCode('p','h','a'),
 Phone = FeatureTypeCode('p','h','o'),
 PicnicSite = FeatureTypeCode('p','i','c'),
 Pier = FeatureTypeCode('p','i','e'),
 Pipeline = FeatureTypeCode('p','i','p'),
 ParkingEntrance = FeatureTypeCode('p','k','e'),
 Parking = FeatureTypeCode('p','k','g'),
 ParkingSpace = FeatureTypeCode('p','k','s'),
 PlantNursery = FeatureTypeCode('p','l','a'),
 Platform = FeatureTypeCode('p','l','f'),
 PlaceOfWorship = FeatureTypeCode('p','l','w'),
 Playground = FeatureTypeCode('p','l','y'),
 PostOffice = FeatureTypeCode('p','o','f'),
 Police = FeatureTypeCode('p','o','l'),
 Position = FeatureTypeCode('p','o','s'),
 ProtectedArea = FeatureTypeCode('p','r','a'),
 PowerSubStation = FeatureTypeCode('p','s','s'),
 Pub = FeatureTypeCode('p','u','b'),
 PowerLine = FeatureTypeCode('p','w','l'),
 PowerStation = FeatureTypeCode('p','w','s'),
 Quarry = FeatureTypeCode('q','a','r'),
 Quarter = FeatureTypeCode('q','r','t'),
 Range = FeatureTypeCode('r','a','n'),
 Rapids = FeatureTypeCode('r','a','p'),
 Recycling = FeatureTypeCode('r','c','y'),
 RecreationGround = FeatureTypeCode('r','e','c'),
 Reef = FeatureTypeCode('r','e','e'),
 Region = FeatureTypeCode('r','e','g'),
 Retail = FeatureTypeCode('r','e','t'),
 Ridge = FeatureTypeCode('r','i','j'),
 River = FeatureTypeCode('r','i','v'),
 Rock = FeatureTypeCode('r','o','c'),
 RoundHouse = FeatureTypeCode('r','o','u'),
 ResidentialArea = FeatureTypeCode('r','s','d'),
 Restaurant = FeatureTypeCode('r','s','t'),
 Reservoir = FeatureTypeCode('r','s','v'),
 Runway = FeatureTypeCode('r','u','n'),
 Route = FeatureTypeCode('r','u','t'),
 RiverBank = FeatureTypeCode('r','v','b'),
 SaltPond = FeatureTypeCode('s','a','l'),
 Sand = FeatureTypeCode('s','a','n'),
 Sauna = FeatureTypeCode('s','a','u'),
 School = FeatureTypeCode('s','c','h'),
 Scree = FeatureTypeCode('s','c','r'),
 Scrub = FeatureTypeCode('s','c','b'),
 Sea = FeatureTypeCode('s','e','a'),
 StateEmergencyServiceStation = FeatureTypeCode('s','e','s'),
 Shop = FeatureTypeCode('s','h','o'),
 SkiRoute = FeatureTypeCode('s','k','r'),
 Slipway = FeatureTypeCode('s','l','i'),
 SportsCenter = FeatureTypeCode('s','p','o'),
 SportsPitch = FeatureTypeCode('s','p','p'),
 Spring = FeatureTypeCode('s','p','r'),
 SportsTrack = FeatureTypeCode('s','p','t'),
 State = FeatureTypeCode('s','t','a'),
 Stadium = FeatureTypeCode('s','t','m'),
 RailwayStation = FeatureTypeCode('s','t','n'),
 Station = FeatureTypeCode('s','t','n'), // deliberate duplicate
 Stone = FeatureTypeCode('s','t','o'),
 StopPosition = FeatureTypeCode('s','t','p'),
 Stream = FeatureTypeCode('s','t','r'),
 Strait = FeatureTypeCode('s','t','t'),
 Suburb = FeatureTypeCode('s','u','b'),
 Supermarket = FeatureTypeCode('s','u','p'),
 SurveyPoint = FeatureTypeCode('s','u','r'),
 SubwayEntrance = FeatureTypeCode('s','w','e'),
 SwimmingPool = FeatureTypeCode('s','w','i'),
 Tank = FeatureTypeCode('t','a','n'),
 Taxi = FeatureTypeCode('t','a','x'),
 Theatre = FeatureTypeCode('t','h','e'),
 ThemePark = FeatureTypeCode('t','h','p'),
 Toilet = FeatureTypeCode('t','o','i'),
 Town = FeatureTypeCode('t','o','w'),
 TurningCircle = FeatureTypeCode('t','c','i'),
 TurningPoint = FeatureTypeCode('t','p','t'),
 Tram = FeatureTypeCode('t','r','a'),
 Tree = FeatureTypeCode('t','r','e'),
 TrafficSignals = FeatureTypeCode('t','r','f'),
 TrackPoint = FeatureTypeCode('t','r','p'),
 TreeRow = FeatureTypeCode('t','r','r'),
 TramStop = FeatureTypeCode('t','r','s'),
 TurnTable = FeatureTypeCode('t','u','r'),
 Tower = FeatureTypeCode('t','w','r'),
 Taxiway = FeatureTypeCode('t','w','y'),
 University = FeatureTypeCode('u','n','i'),
 VisualApproachSlopeIndicator = FeatureTypeCode('v','a','s'),
 VillageGreen = FeatureTypeCode('v','i','g'),
 Village = FeatureTypeCode('v','i','l'),
 Vineyard = FeatureTypeCode('v','i','n'),
 ViewPoint = FeatureTypeCode('v','i','w'),
 Volcano = FeatureTypeCode('v','o','l'),
 Waterfall = FeatureTypeCode('w','a','f'),
 WaterPark = FeatureTypeCode('w','a','p'),
 Water = FeatureTypeCode('w','a','t'),
 Weir = FeatureTypeCode('w','e','r'),
 Wetland = FeatureTypeCode('w','e','t'),
 Windsock = FeatureTypeCode('w','i','s'),
 WalkingRoute = FeatureTypeCode('w','l','k'),
 Wood = FeatureTypeCode('w','o','o'),
 Works = FeatureTypeCode('w','o','r'),
 Waypoint = FeatureTypeCode('w','p','t'),
 WaterTower = FeatureTypeCode('w','t','t'),
 WaterWell = FeatureTypeCode('w','t','w'),
 Zoo = FeatureTypeCode('z','o','o'),
// legacy types for backward compatibility
 LegacyBridleway = FeatureTypeCode('b','r','i'),
 LegacyCycleway = FeatureTypeCode('c','y','c'),
 LegacyFootway = FeatureTypeCode('f','o','o'),
 LegacyLightRail = FeatureTypeCode('l','i','r'),
 LegacyMonorail = FeatureTypeCode('m','o','n'),
 LegacyNarrowGauge = FeatureTypeCode('n','a','r'),
 LegacyPreservedRailway = FeatureTypeCode('p','r','y'),
 LegacyRailway = FeatureTypeCode('r','l','y'),
 LegacySteps = FeatureTypeCode('s','t','e'),
 LegacySubway = FeatureTypeCode('s','w','y'),
 LegacyTram = FeatureTypeCode('t','r','a'),
 Invalid = INT16_MAX

Style Sheets Directory