basemap/layers/point/icon.js (846 lines of code) (raw):
/**
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License
is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the specific language governing permissions and limitations under
the License.
**/
import {asLayerObject, withSortKeys} from "../../utils/utils.js";
import theme from "../../theme.js";
let directives = [
// Amenity: sustenance
{
filter: ['==', ['get', 'amenity'], 'bar'],
'icon-image': 'bar',
'icon-color': theme.pointIconBarIconColor,
'text-color': theme.pointIconBarTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'biergarten'],
'icon-image': 'biergarten',
'icon-color': theme.pointIconBiergartenIconColor,
'text-color': theme.pointIconBiergartenTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'cafe'],
'icon-image': 'cafe',
'icon-color': theme.pointIconCafeIconColor,
'text-color': theme.pointIconCafeTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'fast_food'],
'icon-image': 'fast_food',
'icon-color': theme.pointIconFastFoodIconColor,
'text-color': theme.pointIconFastFoodTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'food_court'],
'icon-image': 'food_court',
'icon-color': theme.pointIconFoodCourtIconColor,
'text-color': theme.pointIconFoodCourtTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'ice_cream'],
'icon-image': 'ice_cream',
'icon-color': theme.pointIconIceCreamIconColor,
'text-color': theme.pointIconIceCreamTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'pub'],
'icon-image': 'pub',
'icon-color': theme.pointIconPubIconColor,
'text-color': theme.pointIconPubTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'restaurant'],
'icon-image': 'restaurant',
'icon-color': theme.pointIconRestaurantIconColor,
'text-color': theme.pointIconRestaurantTextColor,
},
// Amenity: education
// {
// filter: ['==', ['get', 'amenity'], 'driving_school'],
// 'icon-image': 'driving_school',
// 'icon-color': colorScheme.pointIconDrivingSchoolIconColor,
// 'text-color': colorScheme.pointIconDrivingSchoolTextColor,
// },
{
filter: ['==', ['get', 'amenity'], 'library'],
'icon-image': 'library',
'icon-color': theme.pointIconLibraryIconColor,
'text-color': theme.pointIconLibraryTextColor,
},
// Amenity: transportation
{
filter: ['==', ['get', 'amenity'], 'bicycle_parking'],
'icon-image': 'bicycle_parking',
'icon-color': theme.pointIconBicycleParkingIconColor,
'text-color': theme.pointIconBicycleParkingTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'bicycle_repair_station'],
'icon-image': 'bicycle_repair_station',
'icon-color': theme.pointIconBicycleRepairStationIconColor,
'text-color': theme.pointIconBicycleRepairStationTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'bicycle_rental'],
'icon-image': 'rental_bicycle',
'icon-color': theme.pointIconBicycleRentalIconColor,
'text-color': theme.pointIconBicycleRentalTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'boat_rental'],
'icon-image': 'boat_rental',
'icon-color': theme.pointIconBoatRentalIconColor,
'text-color': theme.pointIconBoatRentalTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'bus_station'],
'icon-image': 'bus_station',
'icon-color': theme.pointIconBusStationIconColor,
'text-color': theme.pointIconBusStationTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'car_rental'],
'icon-image': 'rental_car',
'icon-color': theme.pointIconCarRentalIconColor,
'text-color': theme.pointIconCarRentalTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'car_wash'],
'icon-image': 'car_wash',
'icon-color': theme.pointIconCarWashIconColor,
'text-color': theme.pointIconCarWashTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'vehicle_inspection'],
'icon-image': 'vehicle_inspection',
'icon-color': theme.pointIconVehicleInspectionIconColor,
'text-color': theme.pointIconVehicleInspectionTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'charging_station'],
'icon-image': 'charging_station',
'icon-color': theme.pointIconChargingStationIconColor,
'text-color': theme.pointIconChargingStationTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'ferry_terminal'],
'icon-image': 'ferry',
'icon-color': theme.pointIconFerryTerminalIconColor,
'text-color': theme.pointIconFerryTerminalTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'fuel'],
'icon-image': 'fuel',
'icon-color': theme.pointIconFuelIconColor,
'text-color': theme.pointIconFuelTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'motorcycle_parking'],
'icon-image': 'motorcycle_parking',
'icon-color': theme.pointIconMotorcycleParkingIconColor,
'text-color': theme.pointIconMotorcycleParkingTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'parking'],
'icon-image': 'parking',
'icon-color': theme.pointIconParkingIconColor,
'text-color': theme.pointIconParkingTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'parking_entrance'],
'icon-image': 'entrance',
'icon-color': theme.pointIconParkingEntranceIconColor,
'text-color': theme.pointIconParkingEntranceTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'taxi'],
'icon-image': 'taxi',
'icon-color': theme.pointIconTaxiIconColor,
'text-color': theme.pointIconTaxiTextColor,
},
{
filter: ['==', ['get', 'highway'], 'bus_stop'],
'icon-image': 'bus_stop',
'icon-color': theme.pointIconBusStopIconColor,
'text-color': theme.pointIconBusStopTextColo,
},
// Amenity: financial
{
filter: ['==', ['get', 'amenity'], 'atm'],
'icon-image': 'atm',
'icon-color': theme.pointIconAtmIconColor,
'text-color': theme.pointIconAtmTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'bank'],
'icon-image': 'bank',
'icon-color': theme.pointIconBankIconColor,
'text-color': theme.pointIconBankTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'bureau_de_change'],
'icon-image': 'bureau_de_change',
'icon-color': theme.pointIconBureauDeChangeIconColor,
'text-color': theme.pointIconBureauDeChangeTextColor,
},
// Amenity: healthcare
{
filter: ['==', ['get', 'amenity'], 'clinic'],
'icon-image': 'hospital',
'icon-color': theme.pointIconCliniqueIconColor,
'text-color': theme.pointIconCliniqueTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'dentist'],
'icon-image': 'dentist',
'icon-color': theme.pointIconDentistIconColor,
'text-color': theme.pointIconDentistTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'doctors'],
'icon-image': 'doctors',
'icon-color': theme.pointIconDoctorIconColor,
'text-color': theme.pointIconDoctorTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'hospital'],
'icon-image': 'hospital',
'icon-color': theme.pointIconHospitalIconColor,
'text-color': theme.pointIconHospitalTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'nursing_home'],
'icon-image': 'nursing_home',
'icon-color': theme.pointIconNursingHomeIconColor,
'text-color': theme.pointIconNursingHomeTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'pharmacy'],
'icon-image': 'pharmacy',
'icon-color': theme.pointIconPharmacieIconColor,
'text-color': theme.pointIconPharmacieTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'social_facility'],
'icon-image': 'social_facility',
'icon-color': theme.pointIconSocialFacilityIconColor,
'text-color': theme.pointIconSocialFacilityTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'veterinary'],
'icon-image': 'veterinary',
'icon-color': theme.pointIconVeterinaryIconColor,
'text-color': theme.pointIconVeterinaryTextColor,
},
// Amenity: entertainment, arts & culture
{
filter: ['==', ['get', 'amenity'], 'arts_centre'],
'icon-image': 'arts_centre',
'icon-color': theme.pointIconArtsCentreIconColor,
'text-color': theme.pointIconArtsCentreTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'casino'],
'icon-image': 'casino',
'icon-color': theme.pointIconCasinoIconColor,
'text-color': theme.pointIconCasinoTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'cinema'],
'icon-image': 'cinema',
'icon-color': theme.pointIconCinemaIconColor,
'text-color': theme.pointIconCinemaTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'community_centre'],
'icon-image': 'community_centre',
'icon-color': theme.pointIconCommunityCentreIconColor,
'text-color': theme.pointIconCommunityCentreTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'fountain'],
'icon-image': 'fountain',
'icon-color': theme.pointIconFountainIconColor,
'text-color': theme.pointIconFountainTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'nightclub'],
'icon-image': 'nightclub',
'icon-color': theme.pointIconNigthclubIconColor,
'text-color': theme.pointIconNightclubTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'public_bookcase'],
'icon-image': 'public_bookcase',
'icon-color': theme.pointIconPublicBookcaseIconColor,
'text-color': theme.pointIconPublicBookCaseTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'theatre'],
'icon-image': 'theatre',
'icon-color': theme.pointIconTheatreIconColor,
'text-color': theme.pointIconTheatreTextColor,
},
// Amenity: public service
{
filter: ['==', ['get', 'amenity'], 'courthouse'],
'icon-image': 'courthouse',
'icon-color': theme.pointIconCourthouseIconColor,
'text-color': theme.pointIconCourthouseTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'fire_station'],
'icon-image': 'firestation',
'icon-color': theme.pointIconFireStationIconColor,
'text-color': theme.pointIconFireStationTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'police'],
'icon-image': 'police',
'icon-color': theme.pointIconPoliceIconColor,
'text-color': theme.pointIconPoliceTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'post_box'],
'icon-image': 'post_box',
'icon-color': theme.pointIconPostBoxIconColor,
'text-color': theme.pointIconPostBoxTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'post_office'],
'icon-image': 'post_office',
'icon-color': theme.pointIconPostOfficeIconColor,
'text-color': theme.pointIconPostOfficeTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'prison'],
'icon-image': 'prison',
'icon-color': theme.pointIconPrisonIconColor,
'text-color': theme.pointIconPrisonTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'townhall'],
'icon-image': 'town_hall',
'icon-color': theme.pointIconTownhallIconColor,
'text-color': theme.pointIconTowmhallTextColor,
},
// Amenity: facilities
{
filter: ['==', ['get', 'amenity'], 'bbq'],
'icon-image': 'bbq',
'icon-color': theme.pointIconBbqIconColor,
'text-color': theme.pointIconBbqTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'bench'],
'icon-image': 'bench',
'icon-color': theme.pointIconBenchIconColor,
'text-color': theme.pointIconBenchTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'drinking_water'],
'icon-image': 'drinking_water',
'icon-color': theme.pointIconDrinkingWaterIconColor,
'text-color': theme.pointIconDrinkingWaterTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'shelter'],
'icon-image': 'shelter',
'icon-color': theme.pointIconShelterIconColor,
'text-color': theme.pointIconShelterTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'shower'],
'icon-image': 'shower',
'icon-color': theme.pointIconShowerIconColor,
'text-color': theme.pointIconShowerTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'telephone'],
'icon-image': 'telephone',
'icon-color': theme.pointIconTelephoneIconColor,
'text-color': theme.pointIconTelephoneTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'toilets'],
'icon-image': 'toilets',
'icon-color': theme.pointIconToiletsIconColor,
'text-color': theme.pointIconToiletsTextColor,
},
// Amenity: waste management
{
filter: ['==', ['get', 'amenity'], 'recycling'],
'icon-image': 'recycling',
'icon-color': theme.pointIconRecyclingIconColor,
'text-color': theme.pointIconRecyclingTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'waste_basket'],
'icon-image': 'waste_basket',
'icon-color': theme.pointIconWasteBasketIconColor,
'text-color': theme.pointIconWasteBasketTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'waste_disposal'],
'icon-image': 'waste_disposal',
'icon-color': theme.pointIconWasteDisposalIconColor,
'text-color': theme.pointIconWasteDisposalTextColor,
},
// Amenity: Others
{
filter: ['==', ['get', 'amenity'], 'childcare'],
'icon-image': 'place-6',
'icon-color': theme.pointIconChildcareIconColor,
'text-color': theme.pointIconChildcareTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'hunting_stand'],
'icon-image': 'hunting_stand',
'icon-color': theme.pointIconHuntingStandIconColor,
'text-color': theme.pointIconHuntingStandTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'internet_cafe'],
'icon-image': 'internet_cafe',
'icon-color': theme.pointIconInternetCafeIconColor,
'text-color': theme.pointIconInternetCafeTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'marketplace'],
'icon-image': 'marketplace',
'icon-color': theme.pointIconMarketplaceIconColor,
'text-color': theme.pointIconMarketplaceTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'place_of_worship'],
'icon-image': 'place_of_worship',
'icon-color': theme.pointIconPlaceOfWorkshipIconColor,
'text-color': theme.pointIconPlaceOfWorkshipTextColor,
},
{
filter: ['==', ['get', 'amenity'], 'public_bath'],
'icon-image': 'public_bath',
'icon-color': theme.pointIconPublicBathIconColor,
'text-color': theme.pointIconPublicBathTextColor,
},
// Historic
{
filter: ['==', ['get', 'historic'], 'archaeological_site'],
'icon-image': 'archaeological_site',
'icon-color': theme.pointIconArchaeologicalSiteIconColor,
'text-color': theme.pointIconArchaeologicalSiteTextColor,
},
{
filter: ['==', ['get', 'historic'], 'castle'],
'icon-image': 'castle',
'icon-color': theme.pointIconCastleIconColor,
'text-color': theme.pointIconCastleTextColor,
},
{
filter: ['==', ['get', 'historic'], 'city_gate'],
'icon-image': 'city_gate',
'icon-color': theme.pointIconCityGateIconColor,
'text-color': theme.pointIconCityGateTextColor,
},
{
filter: ['==', ['get', 'historic'], 'fort'],
'icon-image': 'fort',
'icon-color': theme.pointIconFortIconColor,
'text-color': theme.pointIconFortTextColor,
},
{
filter: ['==', ['get', 'historic'], 'manor'],
'icon-image': 'manor',
'icon-color': theme.pointIconManorIconColor,
'text-color': theme.pointIconManorTextColor,
},
{
filter: ['==', ['get', 'historic'], 'memorial'],
'icon-image': 'memorial',
'icon-color': theme.pointIconMemorialIconColor,
'text-color': theme.pointIconMemorialTextColor,
},
{
filter: ['==', ['get', 'historic'], 'monument'],
'icon-image': 'monument',
'icon-color': theme.pointIconMonumentIconColor,
'text-color': theme.pointIconMonumentTextColor,
},
{
filter: ['==', ['get', 'historic'], 'wayside_cross'],
'icon-image': 'wayside_cross',
'icon-color': theme.pointIconWaysideCrossIconColor,
'text-color': theme.pointIconWaysideCrossTextColor,
},
{
filter: ['==', ['get', 'historic'], 'wayside_shrine'],
'icon-image': 'wayside_shrine',
'icon-color': theme.pointIconWayShrineIconColor,
'text-color': theme.pointIconWaysideShrineTextColor,
},
// Leisure
{
filter: ['==', ['get', 'leisure'], 'amusement_arcade'],
'icon-image': 'amusement_arcade',
'icon-color': theme.pointIconAmusementArcadeIconColor,
'text-color': theme.pointIconAmusementArcadeTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'beach_resort'],
'icon-image': 'beach_resort',
'icon-color': theme.pointIconBeachResortIconColor,
'text-color': theme.pointIconBeachResortTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'bird_hide'],
'icon-image': 'bird_hide',
'icon-color': theme.pointIconBirdHideIconColor,
'text-color': theme.pointIconBirdHideTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'bowling_alley'],
'icon-image': 'bowling_alley',
'icon-color': theme.pointIconBowlingAlleyIconColor,
'text-color': theme.pointIconBowlingAlleyTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'firepit'],
'icon-image': 'firepit',
'icon-color': theme.pointIconFirepitIconColor,
'text-color': theme.pointIconFirepitTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'fishing'],
'icon-image': 'fishing',
'icon-color': theme.pointIconFishingIconColor,
'text-color': theme.pointIconFishingTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'fitness_centre'],
'icon-image': 'sports',
'icon-color': theme.pointIconFitnessCentreIconColor,
'text-color': theme.pointIconFitnessCentreTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'fitness_station'],
'icon-image': 'sports',
'icon-color': theme.pointIconFitnessStationIconColor,
'text-color': theme.pointIconFitnessStationTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'golf_course'],
'icon-image': 'golf_course',
'icon-color': theme.pointIconGolfCourseIconColor,
'text-color': theme.pointIconGolfCourseTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'miniature_golf'],
'icon-image': 'miniature_golf',
'icon-color': theme.pointIconMiniatureGolfIconColor,
'text-color': theme.pointIconMiniatureGolfTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'outdoor_seating'],
'icon-image': 'outdoor_seating',
'icon-color': theme.pointIconOutdoorSeatingIconColor,
'text-color': theme.pointIconOutdoorSeatingTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'picnic_table'],
'icon-image': 'picnic',
'icon-color': theme.pointIconPicnicTableIconColor,
'text-color': theme.pointIconPicnicTableTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'playground'],
'icon-image': 'playground',
'icon-color': theme.pointIconPlaygroundIconColor,
'text-color': theme.pointIconPlaygroundTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'sauna'],
'icon-image': 'sauna',
'icon-color': theme.pointIconSaunaIconColor,
'text-color': theme.pointIconSaunaTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'slipway'],
'icon-image': 'slipway',
'icon-color': theme.pointIconSlipwayIconColor,
'text-color': theme.pointIconSlipwayTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'swimming_area'],
'icon-image': 'swimming_area',
'icon-color': theme.pointIconSwimmingAreaIconColor,
'text-color': theme.pointIconSwimmingAreaTextColor,
},
{
filter: ['==', ['get', 'leisure'], 'water_park'],
'icon-image': 'water_park',
'icon-color': theme.pointIconWaterParkIconColor,
'text-color': theme.pointIconWaterParkTextColor,
},
// Man-made
{
filter: ['==', ['get', 'man_made'], 'chimney'],
'icon-image': 'chimney',
'icon-color': theme.pointIconChimneyIconColor,
'text-color': theme.pointIconChimneyTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'communications_tower'],
'icon-image': 'communications_tower',
'icon-color': theme.pointIconCommunicationTowerIconColor,
'text-color': theme.pointIconCommunicationTowerTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'crane'],
'icon-image': 'crane',
'icon-color': theme.pointIconCraneIconColor,
'text-color': theme.pointIconCraneTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'cross'],
'icon-image': 'cross',
'icon-color': theme.pointIconCrossIconColor,
'text-color': theme.pointIconCrossTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'lighthouse'],
'icon-image': 'lighthouse',
'icon-color': theme.pointIconLighthouseIconColor,
'text-color': theme.pointIconLightHouseTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'mast'],
'icon-image': 'mast',
'icon-color': theme.pointIconMastIconColor,
'text-color': theme.pointIconMastTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'obelisk'],
'icon-image': 'obelisk',
'icon-color': theme.pointIconObeliskIconColor,
'text-color': theme.pointIconObeliskTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'silo'],
'icon-image': 'silo',
'icon-color': theme.pointIconSiloIconColor,
'text-color': theme.pointIconSiloTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'storage_tank'],
'icon-image': 'storage_tank',
'icon-color': theme.pointIconStorageTankIconColor,
'text-color': theme.pointIconStorageTankTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'telescope'],
'icon-image': 'telescope',
'icon-color': theme.pointIconTelescopeIconColor,
'text-color': theme.pointIconTelescopeTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'tower'],
'icon-image': 'tower_generic',
'icon-color': theme.pointIconTowerIconColor,
'text-color': theme.pointIconTowerTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'water_tower'],
'icon-image': 'water_tower',
'icon-color': theme.pointIconWaterTowerIconColor,
'text-color': theme.pointIconWaterTowerTextColor,
},
{
filter: ['==', ['get', 'man_made'], 'windmill'],
'icon-image': 'windmill',
'icon-color': theme.pointIconWindmillIconColor,
'text-color': theme.pointIconWindmillTextColor,
},
// Military
{
filter: ['==', ['get', 'military'], 'bunker'],
'icon-image': 'bunker',
'icon-color': theme.pointIconBunkerIconColor,
'text-color': theme.pointIconBunkerTextColor,
},
// Natural
{
filter: ['==', ['get', 'natural'], 'spring'],
'icon-image': 'spring',
'icon-color': theme.pointIconSpringIconColor,
'text-color': theme.pointIconSpringTextColor,
},
{
filter: ['==', ['get', 'natural'], 'cave_entrance'],
'icon-image': 'entrance',
'icon-color': theme.pointIconCaveEntranceIconColor,
'text-color': theme.pointIconCaveEntranceTextColor,
},
{
filter: ['==', ['get', 'natural'], 'peak'],
'icon-image': 'peak',
'icon-color': theme.pointIconPeakIconColor,
'text-color': theme.pointIconPeakTextColor,
},
{
filter: ['==', ['get', 'natural'], 'saddle'],
'icon-image': 'saddle',
'icon-color': theme.pointIconSaddleIconColor,
'text-color': theme.pointIconSaddleTextColor,
},
{
filter: ['==', ['get', 'natural'], 'volcano'],
'icon-image': 'volcano',
'icon-color': theme.pointIconVolcanoIconColor,
'text-color': theme.pointIconVolcanoTextColor,
},
// Railway: stations and stops
{
filter: ['==', ['get', 'railway'], 'halt'],
'icon-image': 'place-6',
'icon-color': theme.pointIconHaltIconColor,
'text-color': theme.pointIconHaltTextColor,
},
{
filter: ['==', ['get', 'railway'], 'station'],
'icon-image': 'place-6',
'icon-color': theme.pointIconStationIconColor,
'text-color': theme.pointIconStationTextColor,
},
{
filter: ['==', ['get', 'railway'], 'subway_entrance'],
'icon-image': 'entrance',
'icon-color': theme.pointIconSubwayEntranceIconColor,
'text-color': theme.pointIconSubwayEntranceTextColor,
},
{
filter: ['==', ['get', 'railway'], 'tram_stop'],
'icon-image': 'tram_stop',
'icon-color': theme.pointIconTramStopIconColor,
'text-color': theme.pointIconTramStopTextColor,
},
// Railway: other railways
{
filter: ['==', ['get', 'railway'], 'crossing'],
'icon-image': 'level_crossing',
'icon-color': theme.pointIconCrossingIconColor,
'text-color': theme.pointIconCrossingTextColor,
},
{
filter: ['==', ['get', 'railway'], 'level_crossing'],
'icon-image': 'level_crossing',
'icon-color': theme.pointIconLevelCrossingIconColor,
'text-color': theme.pointIconLevelCrossingTextColor,
},
// Tourism
{
filter: ['==', ['get', 'tourism'], 'alpine_hut'],
'icon-image': 'alpine_hut',
'icon-color': theme.pointIconAlpineHutIconColor,
'text-color': theme.pointIconAlpineHutTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'apartment'],
'icon-image': 'apartment',
'icon-color': theme.pointIconApartmentIconColor,
'text-color': theme.pointIconApartmentTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'artwork'],
'icon-image': 'artwork',
'icon-color': theme.pointIconArtworkIconColor,
'text-color': theme.pointIconArtworkTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'camp_site'],
'icon-image': 'camping',
'icon-color': theme.pointIconCampSiteIconColor,
'text-color': theme.pointIconCampSiteTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'caravan_site'],
'icon-image': 'caravan_park',
'icon-color': theme.pointIconCaravaneSiteIconColor,
'text-color': theme.pointIconCaravaneSiteTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'chalet'],
'icon-image': 'chalet',
'icon-color': theme.pointIconChaletIconColor,
'text-color': theme.pointIconChaletTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'gallery'],
'icon-image': 'art',
'icon-color': theme.pointIconGalleryIconColor,
'text-color': theme.pointIconGalleryTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'guest_house'],
'icon-image': 'guest_house',
'icon-color': theme.pointIconGuestHouseIconColor,
'text-color': theme.pointIconGuestHouseextColor,
},
{
filter: ['==', ['get', 'tourism'], 'hostel'],
'icon-image': 'hostel',
'icon-color': theme.pointIconHostelIconColor,
'text-color': theme.pointIconHostelTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'motel'],
'icon-image': 'motel',
'icon-color': theme.pointIconMotelIconColor,
'text-color': theme.pointIconMotelTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'museum'],
'icon-image': 'museum',
'icon-color': theme.pointIconMuseumIconColor,
'text-color': theme.pointIconMuseumTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'picnic_site'],
'icon-image': 'picnic',
'icon-color': theme.pointIconPicnicSiteIconColor,
'text-color': theme.pointIconPicnicSiteTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'viewpoint'],
'icon-image': 'viewpoint',
'icon-color': theme.pointIconViewpointIconColor,
'text-color': theme.pointIconViewpointTextColor,
},
{
filter: ['==', ['get', 'tourism'], 'wilderness_hut'],
'icon-image': 'wilderness_hut',
'icon-color': theme.pointIconWildernessHutIconColor,
'text-color': theme.pointIconWildernessHutTextColor,
},
// Waterway: barriers on waterways
{
filter: ['==', ['get', 'waterway'], 'dam'],
'icon-image': 'dam',
'icon-color': theme.pointIconDamIconColor,
'text-color': theme.pointIconDamTextColor,
},
{
filter: ['==', ['get', 'waterway'], 'weir'],
'icon-image': 'weir',
'icon-color': theme.pointIconWeirIconColor,
'text-color': theme.pointIconWeirTextColor,
},
{
filter: ['==', ['get', 'waterway'], 'waterfall'],
'icon-image': 'waterfall',
'icon-color': theme.pointIconWaterfallIconColor,
'text-color': theme.pointIconWaterfallTextColor,
},
{
filter: ['==', ['get', 'waterway'], 'lock_gate'],
'icon-image': 'lock_gate',
'icon-color': theme.pointIconLockGateIconColor,
'text-color': theme.pointIconLockGateTextColor,
},
];
export default asLayerObject(withSortKeys(directives), {
id: 'icon',
type: 'symbol',
source: 'baremaps',
'source-layer': 'point',
'minzoom': 14,
layout: {
visibility: 'visible',
'icon-size': 1,
'icon-anchor': 'bottom',
'text-font': ['Noto Sans Regular'],
'text-size': 11,
'text-field': ['get', 'name'],
'text-anchor': 'top',
'text-optional': true,
'text-max-width': 5,
},
paint: {
'icon-opacity': 1,
'icon-translate-anchor': 'map',
'icon-halo-color': theme.pointIconLayerIconHaloColor,
'icon-halo-width': 1,
'text-halo-width': 1,
'text-halo-color': theme.pointIconLayerTextHaloColor,
},
});