@tileflow/maps 0.1.0-alpha.7 → 0.1.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +149 -14
- package/THIRD_PARTY_NOTICES.md +24 -6
- package/assets/README.md +23 -2
- package/assets/streets/build-trees.mjs +425 -0
- package/assets/streets/icons/aerialway-dark.svg +11 -0
- package/assets/streets/icons/aerialway-monochrome-dark.svg +11 -0
- package/assets/streets/icons/aerialway-monochrome.svg +11 -0
- package/assets/streets/icons/aerialway.svg +11 -0
- package/assets/streets/icons/airport-dark.svg +11 -0
- package/assets/streets/icons/airport-monochrome-dark.svg +11 -0
- package/assets/streets/icons/airport-monochrome.svg +11 -0
- package/assets/streets/icons/airport.svg +11 -0
- package/assets/streets/icons/amusement-park-dark.svg +11 -0
- package/assets/streets/icons/amusement-park-monochrome-dark.svg +11 -0
- package/assets/streets/icons/amusement-park-monochrome.svg +11 -0
- package/assets/streets/icons/amusement-park.svg +11 -0
- package/assets/streets/icons/aquarium-dark.svg +11 -0
- package/assets/streets/icons/aquarium-monochrome-dark.svg +11 -0
- package/assets/streets/icons/aquarium-monochrome.svg +11 -0
- package/assets/streets/icons/aquarium.svg +11 -0
- package/assets/streets/icons/art-gallery-dark.svg +11 -0
- package/assets/streets/icons/art-gallery-monochrome-dark.svg +11 -0
- package/assets/streets/icons/art-gallery-monochrome.svg +11 -0
- package/assets/streets/icons/art-gallery.svg +11 -0
- package/assets/streets/icons/bank-dark.svg +11 -0
- package/assets/streets/icons/bank-monochrome-dark.svg +11 -0
- package/assets/streets/icons/bank-monochrome.svg +11 -0
- package/assets/streets/icons/bank.svg +11 -0
- package/assets/streets/icons/bar-dark.svg +11 -0
- package/assets/streets/icons/bar-monochrome-dark.svg +11 -0
- package/assets/streets/icons/bar-monochrome.svg +11 -0
- package/assets/streets/icons/bar.svg +11 -0
- package/assets/streets/icons/beach-dark.svg +11 -0
- package/assets/streets/icons/beach-monochrome-dark.svg +11 -0
- package/assets/streets/icons/beach-monochrome.svg +11 -0
- package/assets/streets/icons/beach.svg +11 -0
- package/assets/streets/icons/beauty-dark.svg +11 -0
- package/assets/streets/icons/beauty-monochrome-dark.svg +11 -0
- package/assets/streets/icons/beauty-monochrome.svg +11 -0
- package/assets/streets/icons/beauty.svg +11 -0
- package/assets/streets/icons/bookstore-dark.svg +11 -0
- package/assets/streets/icons/bookstore-monochrome-dark.svg +11 -0
- package/assets/streets/icons/bookstore-monochrome.svg +11 -0
- package/assets/streets/icons/bookstore.svg +11 -0
- package/assets/streets/icons/buddhist-dark.svg +11 -0
- package/assets/streets/icons/buddhist-monochrome-dark.svg +11 -0
- package/assets/streets/icons/buddhist-monochrome.svg +11 -0
- package/assets/streets/icons/buddhist.svg +11 -0
- package/assets/streets/icons/bus-dark.svg +11 -0
- package/assets/streets/icons/bus-monochrome-dark.svg +11 -0
- package/assets/streets/icons/bus-monochrome.svg +11 -0
- package/assets/streets/icons/bus.svg +11 -0
- package/assets/streets/icons/campsite-dark.svg +11 -0
- package/assets/streets/icons/campsite-monochrome-dark.svg +11 -0
- package/assets/streets/icons/campsite-monochrome.svg +11 -0
- package/assets/streets/icons/campsite.svg +11 -0
- package/assets/streets/icons/car-dark.svg +11 -0
- package/assets/streets/icons/car-monochrome-dark.svg +11 -0
- package/assets/streets/icons/car-monochrome.svg +11 -0
- package/assets/streets/icons/car-repair-dark.svg +11 -0
- package/assets/streets/icons/car-repair-monochrome-dark.svg +11 -0
- package/assets/streets/icons/car-repair-monochrome.svg +11 -0
- package/assets/streets/icons/car-repair.svg +11 -0
- package/assets/streets/icons/car.svg +11 -0
- package/assets/streets/icons/casino-dark.svg +11 -0
- package/assets/streets/icons/casino-monochrome-dark.svg +11 -0
- package/assets/streets/icons/casino-monochrome.svg +11 -0
- package/assets/streets/icons/casino.svg +11 -0
- package/assets/streets/icons/castle-dark.svg +11 -0
- package/assets/streets/icons/castle-monochrome-dark.svg +11 -0
- package/assets/streets/icons/castle-monochrome.svg +11 -0
- package/assets/streets/icons/castle.svg +11 -0
- package/assets/streets/icons/cemetery-dark.svg +11 -0
- package/assets/streets/icons/cemetery-monochrome-dark.svg +11 -0
- package/assets/streets/icons/cemetery-monochrome.svg +11 -0
- package/assets/streets/icons/cemetery.svg +11 -0
- package/assets/streets/icons/charging-station-dark.svg +11 -0
- package/assets/streets/icons/charging-station-monochrome-dark.svg +11 -0
- package/assets/streets/icons/charging-station-monochrome.svg +11 -0
- package/assets/streets/icons/charging-station.svg +11 -0
- package/assets/streets/icons/christian-dark.svg +11 -0
- package/assets/streets/icons/christian-monochrome-dark.svg +11 -0
- package/assets/streets/icons/christian-monochrome.svg +11 -0
- package/assets/streets/icons/christian.svg +11 -0
- package/assets/streets/icons/cinema-dark.svg +11 -0
- package/assets/streets/icons/cinema-monochrome-dark.svg +11 -0
- package/assets/streets/icons/cinema-monochrome.svg +11 -0
- package/assets/streets/icons/cinema.svg +11 -0
- package/assets/streets/icons/clothing-dark.svg +11 -0
- package/assets/streets/icons/clothing-monochrome-dark.svg +11 -0
- package/assets/streets/icons/clothing-monochrome.svg +11 -0
- package/assets/streets/icons/clothing.svg +11 -0
- package/assets/streets/icons/coffee-dark.svg +11 -0
- package/assets/streets/icons/coffee-monochrome-dark.svg +11 -0
- package/assets/streets/icons/coffee-monochrome.svg +11 -0
- package/assets/streets/icons/coffee.svg +4 -5
- package/assets/streets/icons/college-dark.svg +11 -0
- package/assets/streets/icons/college-monochrome-dark.svg +11 -0
- package/assets/streets/icons/college-monochrome.svg +11 -0
- package/assets/streets/icons/college.svg +11 -0
- package/assets/streets/icons/community-dark.svg +11 -0
- package/assets/streets/icons/community-monochrome-dark.svg +11 -0
- package/assets/streets/icons/community-monochrome.svg +11 -0
- package/assets/streets/icons/community.svg +11 -0
- package/assets/streets/icons/convenience-dark.svg +11 -0
- package/assets/streets/icons/convenience-monochrome-dark.svg +11 -0
- package/assets/streets/icons/convenience-monochrome.svg +11 -0
- package/assets/streets/icons/convenience.svg +11 -0
- package/assets/streets/icons/culture-dark.svg +11 -0
- package/assets/streets/icons/culture-monochrome-dark.svg +11 -0
- package/assets/streets/icons/culture-monochrome.svg +11 -0
- package/assets/streets/icons/culture.svg +4 -5
- package/assets/streets/icons/dentist-dark.svg +11 -0
- package/assets/streets/icons/dentist-monochrome-dark.svg +11 -0
- package/assets/streets/icons/dentist-monochrome.svg +11 -0
- package/assets/streets/icons/dentist.svg +11 -0
- package/assets/streets/icons/doctor-dark.svg +11 -0
- package/assets/streets/icons/doctor-monochrome-dark.svg +11 -0
- package/assets/streets/icons/doctor-monochrome.svg +11 -0
- package/assets/streets/icons/doctor.svg +11 -0
- package/assets/streets/icons/dog-park-dark.svg +11 -0
- package/assets/streets/icons/dog-park-monochrome-dark.svg +11 -0
- package/assets/streets/icons/dog-park-monochrome.svg +11 -0
- package/assets/streets/icons/dog-park.svg +11 -0
- package/assets/streets/icons/drinking-water-dark.svg +11 -0
- package/assets/streets/icons/drinking-water-monochrome-dark.svg +11 -0
- package/assets/streets/icons/drinking-water-monochrome.svg +11 -0
- package/assets/streets/icons/drinking-water.svg +11 -0
- package/assets/streets/icons/education-dark.svg +11 -0
- package/assets/streets/icons/education-monochrome-dark.svg +11 -0
- package/assets/streets/icons/education-monochrome.svg +11 -0
- package/assets/streets/icons/education.svg +5 -6
- package/assets/streets/icons/electronics-dark.svg +11 -0
- package/assets/streets/icons/electronics-monochrome-dark.svg +11 -0
- package/assets/streets/icons/electronics-monochrome.svg +11 -0
- package/assets/streets/icons/electronics.svg +11 -0
- package/assets/streets/icons/embassy-dark.svg +11 -0
- package/assets/streets/icons/embassy-monochrome-dark.svg +11 -0
- package/assets/streets/icons/embassy-monochrome.svg +11 -0
- package/assets/streets/icons/embassy.svg +11 -0
- package/assets/streets/icons/entertainment-dark.svg +11 -0
- package/assets/streets/icons/entertainment-monochrome-dark.svg +11 -0
- package/assets/streets/icons/entertainment-monochrome.svg +11 -0
- package/assets/streets/icons/entertainment.svg +11 -0
- package/assets/streets/icons/fast-food-dark.svg +11 -0
- package/assets/streets/icons/fast-food-monochrome-dark.svg +11 -0
- package/assets/streets/icons/fast-food-monochrome.svg +11 -0
- package/assets/streets/icons/fast-food.svg +11 -0
- package/assets/streets/icons/ferry-dark.svg +11 -0
- package/assets/streets/icons/ferry-monochrome-dark.svg +11 -0
- package/assets/streets/icons/ferry-monochrome.svg +11 -0
- package/assets/streets/icons/ferry.svg +11 -0
- package/assets/streets/icons/fire-station-dark.svg +11 -0
- package/assets/streets/icons/fire-station-monochrome-dark.svg +11 -0
- package/assets/streets/icons/fire-station-monochrome.svg +11 -0
- package/assets/streets/icons/fire-station.svg +11 -0
- package/assets/streets/icons/fitness-dark.svg +11 -0
- package/assets/streets/icons/fitness-monochrome-dark.svg +11 -0
- package/assets/streets/icons/fitness-monochrome.svg +11 -0
- package/assets/streets/icons/fitness.svg +11 -0
- package/assets/streets/icons/florist-dark.svg +11 -0
- package/assets/streets/icons/florist-monochrome-dark.svg +11 -0
- package/assets/streets/icons/florist-monochrome.svg +11 -0
- package/assets/streets/icons/florist.svg +11 -0
- package/assets/streets/icons/food-dark.svg +11 -0
- package/assets/streets/icons/food-monochrome-dark.svg +11 -0
- package/assets/streets/icons/food-monochrome.svg +11 -0
- package/assets/streets/icons/food.svg +4 -5
- package/assets/streets/icons/fuel-dark.svg +11 -0
- package/assets/streets/icons/fuel-monochrome-dark.svg +11 -0
- package/assets/streets/icons/fuel-monochrome.svg +11 -0
- package/assets/streets/icons/fuel.svg +11 -0
- package/assets/streets/icons/garden-dark.svg +11 -0
- package/assets/streets/icons/garden-monochrome-dark.svg +11 -0
- package/assets/streets/icons/garden-monochrome.svg +11 -0
- package/assets/streets/icons/garden.svg +11 -0
- package/assets/streets/icons/golf-dark.svg +11 -0
- package/assets/streets/icons/golf-monochrome-dark.svg +11 -0
- package/assets/streets/icons/golf-monochrome.svg +11 -0
- package/assets/streets/icons/golf.svg +11 -0
- package/assets/streets/icons/grocery-dark.svg +11 -0
- package/assets/streets/icons/grocery-monochrome-dark.svg +11 -0
- package/assets/streets/icons/grocery-monochrome.svg +11 -0
- package/assets/streets/icons/grocery.svg +11 -0
- package/assets/streets/icons/harbor-dark.svg +11 -0
- package/assets/streets/icons/harbor-monochrome-dark.svg +11 -0
- package/assets/streets/icons/harbor-monochrome.svg +11 -0
- package/assets/streets/icons/harbor.svg +11 -0
- package/assets/streets/icons/hardware-dark.svg +11 -0
- package/assets/streets/icons/hardware-monochrome-dark.svg +11 -0
- package/assets/streets/icons/hardware-monochrome.svg +11 -0
- package/assets/streets/icons/hardware.svg +11 -0
- package/assets/streets/icons/health-dark.svg +11 -0
- package/assets/streets/icons/health-monochrome-dark.svg +11 -0
- package/assets/streets/icons/health-monochrome.svg +11 -0
- package/assets/streets/icons/health.svg +4 -5
- package/assets/streets/icons/historic-dark.svg +11 -0
- package/assets/streets/icons/historic-monochrome-dark.svg +11 -0
- package/assets/streets/icons/historic-monochrome.svg +11 -0
- package/assets/streets/icons/historic.svg +11 -0
- package/assets/streets/icons/jewish-dark.svg +11 -0
- package/assets/streets/icons/jewish-monochrome-dark.svg +11 -0
- package/assets/streets/icons/jewish-monochrome.svg +11 -0
- package/assets/streets/icons/jewish.svg +11 -0
- package/assets/streets/icons/landmark-dark.svg +11 -0
- package/assets/streets/icons/landmark-monochrome-dark.svg +11 -0
- package/assets/streets/icons/landmark-monochrome.svg +11 -0
- package/assets/streets/icons/landmark.svg +11 -0
- package/assets/streets/icons/laundry-dark.svg +11 -0
- package/assets/streets/icons/laundry-monochrome-dark.svg +11 -0
- package/assets/streets/icons/laundry-monochrome.svg +11 -0
- package/assets/streets/icons/laundry.svg +11 -0
- package/assets/streets/icons/library-dark.svg +11 -0
- package/assets/streets/icons/library-monochrome-dark.svg +11 -0
- package/assets/streets/icons/library-monochrome.svg +11 -0
- package/assets/streets/icons/library.svg +11 -0
- package/assets/streets/icons/lodging-dark.svg +11 -0
- package/assets/streets/icons/lodging-monochrome-dark.svg +11 -0
- package/assets/streets/icons/lodging-monochrome.svg +11 -0
- package/assets/streets/icons/lodging.svg +3 -4
- package/assets/streets/icons/major-transit-dark.svg +11 -0
- package/assets/streets/icons/major-transit-monochrome-dark.svg +11 -0
- package/assets/streets/icons/major-transit-monochrome.svg +11 -0
- package/assets/streets/icons/major-transit.svg +4 -5
- package/assets/streets/icons/monument-dark.svg +11 -0
- package/assets/streets/icons/monument-monochrome-dark.svg +11 -0
- package/assets/streets/icons/monument-monochrome.svg +11 -0
- package/assets/streets/icons/monument.svg +11 -0
- package/assets/streets/icons/mountain-dark.svg +11 -0
- package/assets/streets/icons/mountain-monochrome-dark.svg +11 -0
- package/assets/streets/icons/mountain-monochrome.svg +11 -0
- package/assets/streets/icons/mountain.svg +11 -0
- package/assets/streets/icons/music-dark.svg +11 -0
- package/assets/streets/icons/music-monochrome-dark.svg +11 -0
- package/assets/streets/icons/music-monochrome.svg +11 -0
- package/assets/streets/icons/music.svg +11 -0
- package/assets/streets/icons/muslim-dark.svg +11 -0
- package/assets/streets/icons/muslim-monochrome-dark.svg +11 -0
- package/assets/streets/icons/muslim-monochrome.svg +11 -0
- package/assets/streets/icons/muslim.svg +11 -0
- package/assets/streets/icons/natural-dark.svg +11 -0
- package/assets/streets/icons/natural-monochrome-dark.svg +11 -0
- package/assets/streets/icons/natural-monochrome.svg +11 -0
- package/assets/streets/icons/natural.svg +11 -0
- package/assets/streets/icons/nature-dark.svg +11 -0
- package/assets/streets/icons/nature-monochrome-dark.svg +11 -0
- package/assets/streets/icons/nature-monochrome.svg +11 -0
- package/assets/streets/icons/nature.svg +11 -0
- package/assets/streets/icons/nightclub-dark.svg +11 -0
- package/assets/streets/icons/nightclub-monochrome-dark.svg +11 -0
- package/assets/streets/icons/nightclub-monochrome.svg +11 -0
- package/assets/streets/icons/nightclub.svg +11 -0
- package/assets/streets/icons/parking-dark.svg +11 -0
- package/assets/streets/icons/parking-garage-dark.svg +11 -0
- package/assets/streets/icons/parking-garage-monochrome-dark.svg +11 -0
- package/assets/streets/icons/parking-garage-monochrome.svg +11 -0
- package/assets/streets/icons/parking-garage.svg +11 -0
- package/assets/streets/icons/parking-monochrome-dark.svg +11 -0
- package/assets/streets/icons/parking-monochrome.svg +11 -0
- package/assets/streets/icons/parking.svg +3 -4
- package/assets/streets/icons/pharmacy-dark.svg +11 -0
- package/assets/streets/icons/pharmacy-monochrome-dark.svg +11 -0
- package/assets/streets/icons/pharmacy-monochrome.svg +11 -0
- package/assets/streets/icons/pharmacy.svg +11 -0
- package/assets/streets/icons/playground-dark.svg +11 -0
- package/assets/streets/icons/playground-monochrome-dark.svg +11 -0
- package/assets/streets/icons/playground-monochrome.svg +11 -0
- package/assets/streets/icons/playground.svg +11 -0
- package/assets/streets/icons/plaza-dark.svg +11 -0
- package/assets/streets/icons/plaza-monochrome-dark.svg +11 -0
- package/assets/streets/icons/plaza-monochrome.svg +11 -0
- package/assets/streets/icons/plaza.svg +11 -0
- package/assets/streets/icons/police-dark.svg +11 -0
- package/assets/streets/icons/police-monochrome-dark.svg +11 -0
- package/assets/streets/icons/police-monochrome.svg +11 -0
- package/assets/streets/icons/police.svg +11 -0
- package/assets/streets/icons/post-dark.svg +11 -0
- package/assets/streets/icons/post-monochrome-dark.svg +11 -0
- package/assets/streets/icons/post-monochrome.svg +11 -0
- package/assets/streets/icons/post.svg +11 -0
- package/assets/streets/icons/prison-dark.svg +11 -0
- package/assets/streets/icons/prison-monochrome-dark.svg +11 -0
- package/assets/streets/icons/prison-monochrome.svg +11 -0
- package/assets/streets/icons/prison.svg +11 -0
- package/assets/streets/icons/rail-dark.svg +11 -0
- package/assets/streets/icons/rail-light-dark.svg +11 -0
- package/assets/streets/icons/rail-light-monochrome-dark.svg +11 -0
- package/assets/streets/icons/rail-light-monochrome.svg +11 -0
- package/assets/streets/icons/rail-light.svg +11 -0
- package/assets/streets/icons/rail-monochrome-dark.svg +11 -0
- package/assets/streets/icons/rail-monochrome.svg +11 -0
- package/assets/streets/icons/rail.svg +11 -0
- package/assets/streets/icons/services-dark.svg +11 -0
- package/assets/streets/icons/services-monochrome-dark.svg +11 -0
- package/assets/streets/icons/services-monochrome.svg +11 -0
- package/assets/streets/icons/services.svg +4 -5
- package/assets/streets/icons/shopping-dark.svg +11 -0
- package/assets/streets/icons/shopping-monochrome-dark.svg +11 -0
- package/assets/streets/icons/shopping-monochrome.svg +11 -0
- package/assets/streets/icons/shopping.svg +4 -5
- package/assets/streets/icons/sidewalk-dot-dark.svg +1 -1
- package/assets/streets/icons/sidewalk-dot.svg +1 -1
- package/assets/streets/icons/sport-dark.svg +11 -0
- package/assets/streets/icons/sport-monochrome-dark.svg +11 -0
- package/assets/streets/icons/sport-monochrome.svg +11 -0
- package/assets/streets/icons/sport.svg +11 -0
- package/assets/streets/icons/stadium-dark.svg +11 -0
- package/assets/streets/icons/stadium-monochrome-dark.svg +11 -0
- package/assets/streets/icons/stadium-monochrome.svg +11 -0
- package/assets/streets/icons/stadium.svg +11 -0
- package/assets/streets/icons/street-art-dark.svg +11 -0
- package/assets/streets/icons/street-art-monochrome-dark.svg +11 -0
- package/assets/streets/icons/street-art-monochrome.svg +11 -0
- package/assets/streets/icons/street-art.svg +11 -0
- package/assets/streets/icons/streets-tree-columnar-dark.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-columnar.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-conifer-dark.pattern.svg +57 -0
- package/assets/streets/icons/streets-tree-conifer.pattern.svg +57 -0
- package/assets/streets/icons/streets-tree-open-dark.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-open.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-palm-fan-dark.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-palm-fan.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-palm-feather-dark.pattern.svg +305 -0
- package/assets/streets/icons/streets-tree-palm-feather.pattern.svg +305 -0
- package/assets/streets/icons/streets-tree-round-dark.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-round.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-tall-dark.pattern.svg +108 -0
- package/assets/streets/icons/streets-tree-tall.pattern.svg +108 -0
- package/assets/streets/icons/swimming-dark.svg +11 -0
- package/assets/streets/icons/swimming-monochrome-dark.svg +11 -0
- package/assets/streets/icons/swimming-monochrome.svg +11 -0
- package/assets/streets/icons/swimming.svg +11 -0
- package/assets/streets/icons/theatre-dark.svg +11 -0
- package/assets/streets/icons/theatre-monochrome-dark.svg +11 -0
- package/assets/streets/icons/theatre-monochrome.svg +11 -0
- package/assets/streets/icons/theatre.svg +11 -0
- package/assets/streets/icons/toilet-dark.svg +11 -0
- package/assets/streets/icons/toilet-monochrome-dark.svg +11 -0
- package/assets/streets/icons/toilet-monochrome.svg +11 -0
- package/assets/streets/icons/toilet.svg +11 -0
- package/assets/streets/icons/town-hall-dark.svg +11 -0
- package/assets/streets/icons/town-hall-monochrome-dark.svg +11 -0
- package/assets/streets/icons/town-hall-monochrome.svg +11 -0
- package/assets/streets/icons/town-hall.svg +11 -0
- package/assets/streets/icons/viewpoint-dark.svg +11 -0
- package/assets/streets/icons/viewpoint-monochrome-dark.svg +11 -0
- package/assets/streets/icons/viewpoint-monochrome.svg +11 -0
- package/assets/streets/icons/viewpoint.svg +11 -0
- package/assets/streets/icons/waterfall-dark.svg +11 -0
- package/assets/streets/icons/waterfall-monochrome-dark.svg +11 -0
- package/assets/streets/icons/waterfall-monochrome.svg +11 -0
- package/assets/streets/icons/waterfall.svg +11 -0
- package/assets/streets/icons/worship-dark.svg +11 -0
- package/assets/streets/icons/worship-monochrome-dark.svg +11 -0
- package/assets/streets/icons/worship-monochrome.svg +11 -0
- package/assets/streets/icons/worship.svg +11 -0
- package/assets/streets/icons/zoo-dark.svg +11 -0
- package/assets/streets/icons/zoo-monochrome-dark.svg +11 -0
- package/assets/streets/icons/zoo-monochrome.svg +11 -0
- package/assets/streets/icons/zoo.svg +11 -0
- package/assets/streets/models/streets-tree-columnar.far.glb +0 -0
- package/assets/streets/models/streets-tree-columnar.glb +0 -0
- package/assets/streets/models/streets-tree-conifer.far.glb +0 -0
- package/assets/streets/models/streets-tree-conifer.glb +0 -0
- package/assets/streets/models/streets-tree-open.far.glb +0 -0
- package/assets/streets/models/streets-tree-open.glb +0 -0
- package/assets/streets/models/streets-tree-palm-fan.far.glb +0 -0
- package/assets/streets/models/streets-tree-palm-fan.glb +0 -0
- package/assets/streets/models/streets-tree-palm-feather.far.glb +0 -0
- package/assets/streets/models/streets-tree-palm-feather.glb +0 -0
- package/assets/streets/models/streets-tree-round.far.glb +0 -0
- package/assets/streets/models/streets-tree-round.glb +0 -0
- package/assets/streets/models/streets-tree-tall.far.glb +0 -0
- package/assets/streets/models/streets-tree-tall.glb +0 -0
- package/dist/index.d.ts +87 -7
- package/dist/index.js +1641 -773
- package/docs/design-and-assets.md +35 -14
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -25,6 +25,7 @@ function packageDirectory(path) {
|
|
|
25
25
|
return Object.freeze({ kind: "package-directory", package: "@tileflow/maps", path });
|
|
26
26
|
}
|
|
27
27
|
var streetsIcons = packageDirectory("assets/streets/icons");
|
|
28
|
+
var streetsModels = packageDirectory("assets/streets/models");
|
|
28
29
|
var ferrarisIcons = packageDirectory("assets/ferraris/icons");
|
|
29
30
|
var baedekerIcons = packageDirectory("assets/baedeker/icons");
|
|
30
31
|
var civicaIcons = packageDirectory("assets/civica/icons");
|
|
@@ -1242,7 +1243,9 @@ var baedeker = bindOfficialMapTheme(
|
|
|
1242
1243
|
icons: false,
|
|
1243
1244
|
labels: true,
|
|
1244
1245
|
minZoom: 13,
|
|
1245
|
-
|
|
1246
|
+
// Stations and landmarks use the semibold face, and a layer has one font, so each
|
|
1247
|
+
// category keeps its own layer; the categories listed first are placed first.
|
|
1248
|
+
placement: { coupleIconAndLabel: false, order: "categories", textPadding: 1 },
|
|
1246
1249
|
styles: {
|
|
1247
1250
|
transport: {
|
|
1248
1251
|
text: {
|
|
@@ -1500,7 +1503,6 @@ var baedeker = bindOfficialMapTheme(
|
|
|
1500
1503
|
strokeOpacity: 0.78,
|
|
1501
1504
|
strokeWidth: 0.8
|
|
1502
1505
|
},
|
|
1503
|
-
minZoom: 15,
|
|
1504
1506
|
mode: "flat"
|
|
1505
1507
|
}),
|
|
1506
1508
|
water: withRenderStack(
|
|
@@ -2787,13 +2789,14 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2787
2789
|
}),
|
|
2788
2790
|
poi: withRenderStack2(
|
|
2789
2791
|
poi2({
|
|
2792
|
+
// Placed in this order: the primary callouts first.
|
|
2790
2793
|
categories: [
|
|
2794
|
+
"transport",
|
|
2795
|
+
"medical",
|
|
2791
2796
|
"arts-entertainment",
|
|
2792
2797
|
"education",
|
|
2793
|
-
"medical",
|
|
2794
2798
|
"park-nature",
|
|
2795
2799
|
"public-services",
|
|
2796
|
-
"transport",
|
|
2797
2800
|
"visitor-amenity"
|
|
2798
2801
|
],
|
|
2799
2802
|
color: "category",
|
|
@@ -2804,6 +2807,9 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2804
2807
|
placement: {
|
|
2805
2808
|
coupleIconAndLabel: false,
|
|
2806
2809
|
iconPadding: 3,
|
|
2810
|
+
// Medical and transport callouts start earlier than the others, so each category
|
|
2811
|
+
// keeps its own layer; the categories listed first are placed first.
|
|
2812
|
+
order: "categories",
|
|
2807
2813
|
textPadding: 7
|
|
2808
2814
|
},
|
|
2809
2815
|
styles: {
|
|
@@ -2818,7 +2824,8 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2818
2824
|
}),
|
|
2819
2825
|
{
|
|
2820
2826
|
architecturalCallouts: renderPass2({
|
|
2821
|
-
|
|
2827
|
+
// Above every POI label: the first category listed is the top POI layer.
|
|
2828
|
+
placement: { above: "poi.transport.label" },
|
|
2822
2829
|
feature: "poi",
|
|
2823
2830
|
renderer: "symbol",
|
|
2824
2831
|
selector: {
|
|
@@ -3226,7 +3233,6 @@ var blueprint = bindOfficialMapTheme(
|
|
|
3226
3233
|
strokeOpacity: 0.58,
|
|
3227
3234
|
strokeWidth: 0.55
|
|
3228
3235
|
},
|
|
3229
|
-
minZoom: 16,
|
|
3230
3236
|
mode: "flat"
|
|
3231
3237
|
}),
|
|
3232
3238
|
water: withRenderStack2(
|
|
@@ -3434,7 +3440,7 @@ function footpath(minZoom) {
|
|
|
3434
3440
|
function wash(color, minZoom, opacity = 1) {
|
|
3435
3441
|
return { fill: { color, minZoom, opacity }, outline: { visible: false } };
|
|
3436
3442
|
}
|
|
3437
|
-
function place(minZoom, maxZoom,
|
|
3443
|
+
function place(minZoom, maxZoom, size2, options = {}) {
|
|
3438
3444
|
return {
|
|
3439
3445
|
minZoom,
|
|
3440
3446
|
maxZoom,
|
|
@@ -3449,8 +3455,8 @@ function place(minZoom, maxZoom, size, options = {}) {
|
|
|
3449
3455
|
maxWidth: 10,
|
|
3450
3456
|
padding: 5,
|
|
3451
3457
|
size: zoom3.linear([
|
|
3452
|
-
[minZoom,
|
|
3453
|
-
[Math.min(maxZoom, minZoom + 6),
|
|
3458
|
+
[minZoom, size2],
|
|
3459
|
+
[Math.min(maxZoom, minZoom + 6), size2 + 5]
|
|
3454
3460
|
]),
|
|
3455
3461
|
transform: "uppercase"
|
|
3456
3462
|
}
|
|
@@ -3479,15 +3485,14 @@ function streetName(minZoom, major = false) {
|
|
|
3479
3485
|
}
|
|
3480
3486
|
};
|
|
3481
3487
|
}
|
|
3482
|
-
function destination(
|
|
3488
|
+
function destination(image2, minZoom, color, featured = false, role = "caption") {
|
|
3483
3489
|
const park = role === "park";
|
|
3484
3490
|
const station = role === "station";
|
|
3485
3491
|
const principalPark = expr3.lte(expr3.toNumber(expr3.get(field3("poiSizeRank")), 16), 4);
|
|
3486
3492
|
return {
|
|
3487
3493
|
minZoom,
|
|
3488
|
-
density: featured ? 3 : 2,
|
|
3489
3494
|
icon: {
|
|
3490
|
-
image,
|
|
3495
|
+
image: image2,
|
|
3491
3496
|
allowOverlap: false,
|
|
3492
3497
|
ignorePlacement: false,
|
|
3493
3498
|
optional: false,
|
|
@@ -4233,7 +4238,15 @@ var civica = bindOfficialMapTheme(
|
|
|
4233
4238
|
minZoom: 12,
|
|
4234
4239
|
icons: true,
|
|
4235
4240
|
labels: true,
|
|
4236
|
-
placement: {
|
|
4241
|
+
placement: {
|
|
4242
|
+
coupleIconAndLabel: true,
|
|
4243
|
+
iconPadding: 3,
|
|
4244
|
+
// Cívica's destination schedule gives each category its own zoom range and
|
|
4245
|
+
// collision padding, so each keeps its own layer; destinations listed first are
|
|
4246
|
+
// placed first.
|
|
4247
|
+
order: "categories",
|
|
4248
|
+
textPadding: 4
|
|
4249
|
+
},
|
|
4237
4250
|
styles: {
|
|
4238
4251
|
landmark: destination("civica-poi-monument", 13, ink.type, true),
|
|
4239
4252
|
"arts-entertainment": destination("civica-poi-museum", 13.5, ink.type, true),
|
|
@@ -4357,9 +4370,9 @@ var civica = bindOfficialMapTheme(
|
|
|
4357
4370
|
),
|
|
4358
4371
|
vegetation: vegetation3({
|
|
4359
4372
|
mode: "flat",
|
|
4360
|
-
minZoom: 19,
|
|
4361
4373
|
flat: {
|
|
4362
4374
|
color: ink.greenInk,
|
|
4375
|
+
minZoom: 19,
|
|
4363
4376
|
opacity: 0.5,
|
|
4364
4377
|
radius: zoom3.linear([
|
|
4365
4378
|
[19, 1.2],
|
|
@@ -5344,7 +5357,6 @@ var ferraris = bindOfficialMapTheme(
|
|
|
5344
5357
|
strokeOpacity: 0.62,
|
|
5345
5358
|
strokeWidth: 0.7
|
|
5346
5359
|
},
|
|
5347
|
-
minZoom: 15,
|
|
5348
5360
|
mode: "flat"
|
|
5349
5361
|
}),
|
|
5350
5362
|
water: withRenderStack4(
|
|
@@ -6369,7 +6381,6 @@ var harad = bindOfficialMapTheme(
|
|
|
6369
6381
|
strokeOpacity: 0.5,
|
|
6370
6382
|
strokeWidth: 0.55
|
|
6371
6383
|
},
|
|
6372
|
-
minZoom: 15,
|
|
6373
6384
|
mode: "flat"
|
|
6374
6385
|
}),
|
|
6375
6386
|
water: withRenderStack5(
|
|
@@ -8431,24 +8442,23 @@ var soundings = bindOfficialMapTheme(
|
|
|
8431
8442
|
|
|
8432
8443
|
// src/official/streets.ts
|
|
8433
8444
|
import {
|
|
8445
|
+
addresses as addresses4,
|
|
8434
8446
|
boundaries as boundaries8,
|
|
8435
8447
|
buildings as buildings7,
|
|
8436
8448
|
defineMap as defineMap8,
|
|
8437
|
-
|
|
8438
|
-
|
|
8439
|
-
field as field8,
|
|
8449
|
+
expr as expr11,
|
|
8450
|
+
field as field10,
|
|
8440
8451
|
fixed as fixed3,
|
|
8441
8452
|
labels as labels8,
|
|
8442
8453
|
land as land8,
|
|
8443
8454
|
poi as poi4,
|
|
8444
8455
|
refineRenderTarget as refineRenderTarget3,
|
|
8445
|
-
renderPass as
|
|
8456
|
+
renderPass as renderPass9,
|
|
8446
8457
|
roads as roads7,
|
|
8447
8458
|
transit as transit8,
|
|
8448
|
-
vegetation as vegetation6,
|
|
8449
8459
|
water as water8,
|
|
8450
|
-
withRenderStack as
|
|
8451
|
-
zoom as
|
|
8460
|
+
withRenderStack as withRenderStack9,
|
|
8461
|
+
zoom as zoom10
|
|
8452
8462
|
} from "@tileflow/core";
|
|
8453
8463
|
|
|
8454
8464
|
// src/official/mapbox-rail.ts
|
|
@@ -8512,28 +8522,328 @@ function mapboxRailTransitStyle(color) {
|
|
|
8512
8522
|
};
|
|
8513
8523
|
}
|
|
8514
8524
|
|
|
8525
|
+
// src/official/streets-poi.ts
|
|
8526
|
+
import {
|
|
8527
|
+
expr as expr9,
|
|
8528
|
+
field as field8,
|
|
8529
|
+
token as token4
|
|
8530
|
+
} from "@tileflow/core";
|
|
8531
|
+
var streetsPoiDiscColors = Object.freeze({
|
|
8532
|
+
light: {
|
|
8533
|
+
"arts-entertainment": "#F37CCC",
|
|
8534
|
+
education: "#BF803F",
|
|
8535
|
+
"food-drink": "#FF9933",
|
|
8536
|
+
landmark: "#F37CCC",
|
|
8537
|
+
lodging: "#8D73E6",
|
|
8538
|
+
medical: "#F46A75",
|
|
8539
|
+
"park-nature": "#36AD1F",
|
|
8540
|
+
parking: "#5474D5",
|
|
8541
|
+
"public-services": "#7D8F9F",
|
|
8542
|
+
religion: "#7D8F9F",
|
|
8543
|
+
retail: "#5FA0E5",
|
|
8544
|
+
"sport-leisure": "#4BB5C3",
|
|
8545
|
+
transport: "#465DCD",
|
|
8546
|
+
"visitor-amenity": "#7D8F9F"
|
|
8547
|
+
},
|
|
8548
|
+
dark: {
|
|
8549
|
+
"arts-entertainment": "#C786BC",
|
|
8550
|
+
education: "#B6A783",
|
|
8551
|
+
"food-drink": "#D8BD65",
|
|
8552
|
+
landmark: "#C786BC",
|
|
8553
|
+
lodging: "#AA94DA",
|
|
8554
|
+
medical: "#DC7C89",
|
|
8555
|
+
"park-nature": "#89B871",
|
|
8556
|
+
parking: "#94BCE3",
|
|
8557
|
+
"public-services": "#9DAAB0",
|
|
8558
|
+
religion: "#9DAAB0",
|
|
8559
|
+
retail: "#94BCE3",
|
|
8560
|
+
"sport-leisure": "#89B871",
|
|
8561
|
+
transport: "#8296E6",
|
|
8562
|
+
"visitor-amenity": "#9DAAB0"
|
|
8563
|
+
}
|
|
8564
|
+
});
|
|
8565
|
+
var streetsPoiPictograms = Object.freeze({
|
|
8566
|
+
"major-transit": { category: "transport", maki: "rail-metro", title: "Metro" },
|
|
8567
|
+
rail: { category: "transport", maki: "rail", title: "Railway station" },
|
|
8568
|
+
"rail-light": { category: "transport", maki: "rail-light", title: "Tram or light rail" },
|
|
8569
|
+
bus: { category: "transport", maki: "bus", title: "Bus" },
|
|
8570
|
+
ferry: { category: "transport", maki: "ferry", title: "Ferry" },
|
|
8571
|
+
aerialway: { category: "transport", maki: "aerialway", title: "Aerial cableway" },
|
|
8572
|
+
airport: { category: "transport", maki: "airport", title: "Airport" },
|
|
8573
|
+
food: { category: "food-drink", maki: "restaurant", title: "Restaurant" },
|
|
8574
|
+
coffee: { category: "food-drink", maki: "cafe", title: "Cafe" },
|
|
8575
|
+
bar: { category: "food-drink", maki: "bar", title: "Bar" },
|
|
8576
|
+
"fast-food": { category: "food-drink", maki: "fast-food", title: "Fast food" },
|
|
8577
|
+
entertainment: { category: "arts-entertainment", maki: "star", title: "Entertainment venue" },
|
|
8578
|
+
culture: { category: "arts-entertainment", maki: "museum", title: "Museum" },
|
|
8579
|
+
"art-gallery": { category: "arts-entertainment", maki: "art-gallery", title: "Art gallery" },
|
|
8580
|
+
theatre: { category: "arts-entertainment", maki: "theatre", title: "Theatre" },
|
|
8581
|
+
cinema: { category: "arts-entertainment", maki: "cinema", title: "Cinema" },
|
|
8582
|
+
music: { category: "arts-entertainment", maki: "music", title: "Music venue" },
|
|
8583
|
+
nightclub: { category: "arts-entertainment", maki: "nightclub", title: "Nightclub" },
|
|
8584
|
+
zoo: { category: "arts-entertainment", maki: "zoo", title: "Zoo" },
|
|
8585
|
+
aquarium: { category: "arts-entertainment", maki: "aquarium", title: "Aquarium" },
|
|
8586
|
+
"amusement-park": {
|
|
8587
|
+
category: "arts-entertainment",
|
|
8588
|
+
maki: "amusement-park",
|
|
8589
|
+
title: "Amusement park"
|
|
8590
|
+
},
|
|
8591
|
+
casino: { category: "arts-entertainment", maki: "casino", title: "Casino" },
|
|
8592
|
+
landmark: { category: "landmark", maki: "landmark", title: "Landmark" },
|
|
8593
|
+
monument: { category: "landmark", maki: "monument", title: "Monument" },
|
|
8594
|
+
castle: { category: "landmark", maki: "castle", title: "Castle" },
|
|
8595
|
+
historic: { category: "landmark", maki: "historic", title: "Historic site" },
|
|
8596
|
+
viewpoint: { category: "landmark", maki: "viewpoint", title: "Viewpoint" },
|
|
8597
|
+
cemetery: { category: "landmark", maki: "cemetery", title: "Cemetery" },
|
|
8598
|
+
"street-art": { category: "landmark", maki: "paint", title: "Street art" },
|
|
8599
|
+
lodging: { category: "lodging", maki: "lodging", title: "Lodging" },
|
|
8600
|
+
campsite: { category: "lodging", maki: "campsite", title: "Campsite" },
|
|
8601
|
+
health: { category: "medical", maki: "hospital", title: "Hospital" },
|
|
8602
|
+
doctor: { category: "medical", maki: "doctor", title: "Clinic" },
|
|
8603
|
+
dentist: { category: "medical", maki: "dentist", title: "Dentist" },
|
|
8604
|
+
pharmacy: { category: "medical", maki: "pharmacy", title: "Pharmacy" },
|
|
8605
|
+
nature: { category: "park-nature", maki: "park", title: "Park" },
|
|
8606
|
+
garden: { category: "park-nature", maki: "garden", title: "Garden" },
|
|
8607
|
+
playground: { category: "park-nature", maki: "playground", title: "Playground" },
|
|
8608
|
+
"dog-park": { category: "park-nature", maki: "dog-park", title: "Dog park" },
|
|
8609
|
+
beach: { category: "park-nature", maki: "beach", title: "Beach" },
|
|
8610
|
+
mountain: { category: "park-nature", maki: "mountain", title: "Mountain" },
|
|
8611
|
+
waterfall: { category: "park-nature", maki: "waterfall", title: "Waterfall" },
|
|
8612
|
+
natural: { category: "park-nature", maki: "natural", title: "Natural feature" },
|
|
8613
|
+
"town-hall": { category: "public-services", maki: "town-hall", title: "Government" },
|
|
8614
|
+
police: { category: "public-services", maki: "police", title: "Police" },
|
|
8615
|
+
"fire-station": { category: "public-services", maki: "fire-station", title: "Fire station" },
|
|
8616
|
+
post: { category: "public-services", maki: "post", title: "Post office" },
|
|
8617
|
+
embassy: { category: "public-services", maki: "embassy", title: "Embassy" },
|
|
8618
|
+
prison: { category: "public-services", maki: "prison", title: "Prison" },
|
|
8619
|
+
community: { category: "public-services", maki: "building", title: "Community center" },
|
|
8620
|
+
plaza: { category: "public-services", maki: "landmark", title: "Public square" },
|
|
8621
|
+
worship: { category: "religion", maki: "place-of-worship", title: "Place of worship" },
|
|
8622
|
+
christian: { category: "religion", maki: "religious-christian", title: "Church" },
|
|
8623
|
+
muslim: { category: "religion", maki: "religious-muslim", title: "Mosque" },
|
|
8624
|
+
jewish: { category: "religion", maki: "religious-jewish", title: "Synagogue" },
|
|
8625
|
+
buddhist: { category: "religion", maki: "religious-buddhist", title: "Buddhist temple" },
|
|
8626
|
+
shopping: { category: "retail", maki: "shop", title: "Shop" },
|
|
8627
|
+
clothing: { category: "retail", maki: "clothing-store", title: "Clothing store" },
|
|
8628
|
+
grocery: { category: "retail", maki: "grocery", title: "Grocery" },
|
|
8629
|
+
convenience: { category: "retail", maki: "convenience", title: "Convenience store" },
|
|
8630
|
+
car: { category: "retail", maki: "car", title: "Car dealer" },
|
|
8631
|
+
"car-repair": { category: "retail", maki: "car-repair", title: "Car parts" },
|
|
8632
|
+
bookstore: { category: "retail", maki: "library", title: "Bookstore" },
|
|
8633
|
+
florist: { category: "retail", maki: "florist", title: "Florist" },
|
|
8634
|
+
hardware: { category: "retail", maki: "hardware", title: "Hardware store" },
|
|
8635
|
+
electronics: { category: "retail", maki: "mobile-phone", title: "Electronics store" },
|
|
8636
|
+
beauty: { category: "retail", maki: "hairdresser", title: "Beauty" },
|
|
8637
|
+
sport: { category: "sport-leisure", maki: "soccer", title: "Sport" },
|
|
8638
|
+
stadium: { category: "sport-leisure", maki: "stadium", title: "Stadium" },
|
|
8639
|
+
golf: { category: "sport-leisure", maki: "golf", title: "Golf course" },
|
|
8640
|
+
swimming: { category: "sport-leisure", maki: "swimming", title: "Swimming pool" },
|
|
8641
|
+
fitness: { category: "sport-leisure", maki: "fitness-centre", title: "Fitness" },
|
|
8642
|
+
services: { category: "visitor-amenity", maki: "information", title: "Information" },
|
|
8643
|
+
parking: { category: "visitor-amenity", disc: "parking", maki: "parking", title: "Parking" },
|
|
8644
|
+
"parking-garage": {
|
|
8645
|
+
category: "visitor-amenity",
|
|
8646
|
+
disc: "parking",
|
|
8647
|
+
maki: "parking-garage",
|
|
8648
|
+
title: "Parking garage"
|
|
8649
|
+
},
|
|
8650
|
+
toilet: { category: "visitor-amenity", maki: "toilet", title: "Toilets" },
|
|
8651
|
+
bank: { category: "visitor-amenity", maki: "bank", title: "Bank or cash machine" },
|
|
8652
|
+
fuel: { category: "visitor-amenity", maki: "fuel", title: "Fuel" },
|
|
8653
|
+
"charging-station": {
|
|
8654
|
+
category: "visitor-amenity",
|
|
8655
|
+
maki: "charging-station",
|
|
8656
|
+
title: "Charging station"
|
|
8657
|
+
},
|
|
8658
|
+
"drinking-water": { category: "visitor-amenity", maki: "drinking-water", title: "Drinking water" },
|
|
8659
|
+
harbor: { category: "visitor-amenity", maki: "harbor", title: "Marina" },
|
|
8660
|
+
laundry: { category: "visitor-amenity", maki: "laundry", title: "Laundry" },
|
|
8661
|
+
education: { category: "education", maki: "college", title: "Education" },
|
|
8662
|
+
college: { category: "education", maki: "college", title: "College or university" },
|
|
8663
|
+
library: { category: "education", maki: "library", title: "Library" }
|
|
8664
|
+
});
|
|
8665
|
+
var pictogramsByMode = {
|
|
8666
|
+
"major-transit": ["subway"],
|
|
8667
|
+
rail: ["train", "funicular"],
|
|
8668
|
+
"rail-light": ["light_rail", "tram", "monorail"],
|
|
8669
|
+
bus: ["bus"],
|
|
8670
|
+
ferry: ["ferry"],
|
|
8671
|
+
aerialway: ["aerialway"]
|
|
8672
|
+
};
|
|
8673
|
+
var pictogramsByType = {
|
|
8674
|
+
airport: ["airport"],
|
|
8675
|
+
bus: ["bus_station", "bus_stop"],
|
|
8676
|
+
ferry: ["ferry_terminal"],
|
|
8677
|
+
rail: ["train_station"],
|
|
8678
|
+
"rail-light": ["tram_stop"],
|
|
8679
|
+
bar: ["alcoholic_beverage_venue", "bar", "brewery", "distillery", "lounge", "winery"],
|
|
8680
|
+
coffee: ["cafe", "coffee_shop", "non_alcoholic_beverage_venue", "smoothie_juice_bar"],
|
|
8681
|
+
"fast-food": ["fast_food_restaurant", "food_court", "food_truck_stand"],
|
|
8682
|
+
culture: ["museum", "planetarium", "science_attraction"],
|
|
8683
|
+
"art-gallery": ["art_gallery", "arts_and_crafts_space"],
|
|
8684
|
+
theatre: ["comedy_club", "performing_arts_venue", "theatre_venue"],
|
|
8685
|
+
cinema: ["movie_theater"],
|
|
8686
|
+
music: ["music_venue"],
|
|
8687
|
+
nightclub: ["dance_club"],
|
|
8688
|
+
zoo: ["animal_attraction", "zoo"],
|
|
8689
|
+
aquarium: ["aquarium"],
|
|
8690
|
+
"amusement-park": ["amusement_attraction", "amusement_park", "fairgrounds"],
|
|
8691
|
+
casino: ["casino"],
|
|
8692
|
+
monument: ["monument", "sculpture_statue"],
|
|
8693
|
+
castle: ["castle"],
|
|
8694
|
+
historic: ["historic_site"],
|
|
8695
|
+
viewpoint: ["scenic_viewpoint"],
|
|
8696
|
+
cemetery: ["cemetery"],
|
|
8697
|
+
"street-art": ["street_art"],
|
|
8698
|
+
campsite: ["campground", "rv_park"],
|
|
8699
|
+
health: [
|
|
8700
|
+
"emergency_department",
|
|
8701
|
+
"emergency_or_urgent_care_facility",
|
|
8702
|
+
"hospital",
|
|
8703
|
+
"specialty_hospital"
|
|
8704
|
+
],
|
|
8705
|
+
dentist: ["dental_clinic"],
|
|
8706
|
+
pharmacy: ["pharmacy"],
|
|
8707
|
+
garden: ["garden"],
|
|
8708
|
+
playground: ["playground"],
|
|
8709
|
+
"dog-park": ["dog_park"],
|
|
8710
|
+
beach: ["beach"],
|
|
8711
|
+
mountain: ["mountain"],
|
|
8712
|
+
waterfall: ["waterfall"],
|
|
8713
|
+
natural: ["canyon", "hot_springs", "island", "valley"],
|
|
8714
|
+
police: ["police_station", "public_safety_service"],
|
|
8715
|
+
"fire-station": ["fire_station"],
|
|
8716
|
+
post: ["post_office"],
|
|
8717
|
+
embassy: ["embassy"],
|
|
8718
|
+
prison: ["jail_or_prison"],
|
|
8719
|
+
community: ["community_center", "food_bank", "social_or_community_service"],
|
|
8720
|
+
plaza: ["public_plaza"],
|
|
8721
|
+
christian: ["christian_place_of_worship"],
|
|
8722
|
+
muslim: ["muslim_place_of_worship"],
|
|
8723
|
+
jewish: ["jewish_place_of_worship"],
|
|
8724
|
+
buddhist: ["buddhist_place_of_worship"],
|
|
8725
|
+
clothing: ["fashion_and_apparel_store"],
|
|
8726
|
+
grocery: [
|
|
8727
|
+
"farmers_market",
|
|
8728
|
+
"food_and_beverage_store",
|
|
8729
|
+
"market",
|
|
8730
|
+
"superstore",
|
|
8731
|
+
"warehouse_club_store"
|
|
8732
|
+
],
|
|
8733
|
+
convenience: ["convenience_store", "kiosk"],
|
|
8734
|
+
car: ["auto_dealer", "vehicle_dealer"],
|
|
8735
|
+
"car-repair": ["vehicle_parts_store"],
|
|
8736
|
+
bookstore: ["books_music_and_video_store"],
|
|
8737
|
+
florist: ["flowers_and_gifts_store"],
|
|
8738
|
+
hardware: ["hardware_home_and_garden_store"],
|
|
8739
|
+
electronics: ["electronics_store"],
|
|
8740
|
+
beauty: ["personal_care_and_beauty_store"],
|
|
8741
|
+
stadium: ["stadium_arena"],
|
|
8742
|
+
golf: ["golf_course"],
|
|
8743
|
+
swimming: ["swimming_pool"],
|
|
8744
|
+
fitness: ["fitness_studio", "gym"],
|
|
8745
|
+
parking: ["parking", "parking_lot"],
|
|
8746
|
+
"parking-garage": ["parking_garage"],
|
|
8747
|
+
toilet: ["public_restroom"],
|
|
8748
|
+
bank: ["atm", "bank"],
|
|
8749
|
+
fuel: ["fueling_station", "gas_station"],
|
|
8750
|
+
"charging-station": ["ev_charging_station"],
|
|
8751
|
+
"drinking-water": ["drinking_water", "public_fountain"],
|
|
8752
|
+
harbor: ["marina"],
|
|
8753
|
+
laundry: ["laundry"],
|
|
8754
|
+
college: ["college_university", "research_institute"],
|
|
8755
|
+
library: ["library"]
|
|
8756
|
+
};
|
|
8757
|
+
var streetsPoiCategoryPictograms = Object.freeze({
|
|
8758
|
+
"arts-entertainment": "entertainment",
|
|
8759
|
+
education: "education",
|
|
8760
|
+
"food-drink": "food",
|
|
8761
|
+
landmark: "landmark",
|
|
8762
|
+
lodging: "lodging",
|
|
8763
|
+
medical: "doctor",
|
|
8764
|
+
"park-nature": "nature",
|
|
8765
|
+
"public-services": "town-hall",
|
|
8766
|
+
religion: "worship",
|
|
8767
|
+
retail: "shopping",
|
|
8768
|
+
"sport-leisure": "sport",
|
|
8769
|
+
transport: "major-transit",
|
|
8770
|
+
"visitor-amenity": "services"
|
|
8771
|
+
});
|
|
8772
|
+
function streetsPoiPictogramToken(id) {
|
|
8773
|
+
return token4.image(`poi.pictogram.${id}`);
|
|
8774
|
+
}
|
|
8775
|
+
function streetsPoiImageTokens(variant) {
|
|
8776
|
+
const suffix = {
|
|
8777
|
+
light: "",
|
|
8778
|
+
dark: "-dark",
|
|
8779
|
+
monochrome: "-monochrome",
|
|
8780
|
+
"monochrome-dark": "-monochrome-dark"
|
|
8781
|
+
}[variant];
|
|
8782
|
+
const image2 = (id) => `${id}${suffix}`;
|
|
8783
|
+
return Object.fromEntries([
|
|
8784
|
+
...Object.entries(streetsPoiCategoryPictograms).map(([category, id]) => [
|
|
8785
|
+
`poi.${category}`,
|
|
8786
|
+
image2(id)
|
|
8787
|
+
]),
|
|
8788
|
+
...Object.keys(streetsPoiPictograms).map((id) => [`poi.pictogram.${id}`, image2(id)])
|
|
8789
|
+
]);
|
|
8790
|
+
}
|
|
8791
|
+
function streetsPoiImage() {
|
|
8792
|
+
const categoryBranches = Object.keys(streetsPoiCategoryPictograms).map((category) => {
|
|
8793
|
+
const types = Object.entries(pictogramsByType).filter(([id]) => streetsPoiPictograms[id].category === category).map(([id, labels9]) => ({
|
|
8794
|
+
labels: [...labels9],
|
|
8795
|
+
value: streetsPoiPictogramToken(id)
|
|
8796
|
+
}));
|
|
8797
|
+
const [first, ...rest] = types;
|
|
8798
|
+
const categoryRole = token4.image(`poi.${category}`);
|
|
8799
|
+
return {
|
|
8800
|
+
labels: category,
|
|
8801
|
+
value: first ? expr9.match(
|
|
8802
|
+
expr9.get(field8("poiType")),
|
|
8803
|
+
[first, ...rest],
|
|
8804
|
+
categoryRole
|
|
8805
|
+
) : categoryRole
|
|
8806
|
+
};
|
|
8807
|
+
});
|
|
8808
|
+
const [firstCategory, ...otherCategories] = categoryBranches;
|
|
8809
|
+
const [firstMode, ...otherModes] = Object.entries(pictogramsByMode).map(([id, labels9]) => ({
|
|
8810
|
+
labels: [...labels9],
|
|
8811
|
+
value: streetsPoiPictogramToken(id)
|
|
8812
|
+
}));
|
|
8813
|
+
return expr9.match(
|
|
8814
|
+
expr9.get(field8("mode")),
|
|
8815
|
+
[firstMode, ...otherModes],
|
|
8816
|
+
expr9.match(
|
|
8817
|
+
expr9.get(field8("poiCategory")),
|
|
8818
|
+
[firstCategory, ...otherCategories],
|
|
8819
|
+
token4.image("poi.landmark")
|
|
8820
|
+
)
|
|
8821
|
+
);
|
|
8822
|
+
}
|
|
8823
|
+
|
|
8515
8824
|
// src/official/streets-themes.ts
|
|
8516
|
-
import { defineTheme as defineTheme2, token as
|
|
8825
|
+
import { defineTheme as defineTheme2, token as token5 } from "@tileflow/core";
|
|
8517
8826
|
var streetsLightColors = {
|
|
8518
8827
|
"boundaries.admin": "#CE9298",
|
|
8519
8828
|
"boundaries.default": "#CE9298",
|
|
8520
8829
|
"boundaries.disputed": "#CE9298",
|
|
8521
|
-
"boundaries.halo": "#
|
|
8830
|
+
"boundaries.halo": "#F5F1F0",
|
|
8522
8831
|
"boundaries.major": "#CE9298",
|
|
8523
8832
|
"boundaries.maritime": "#648AA4",
|
|
8524
8833
|
"boundaries.regional": "#CE9698",
|
|
8525
|
-
"buildings.active": "#
|
|
8834
|
+
"buildings.active": "#EFEADD",
|
|
8526
8835
|
"buildings.businessCorridor": "#F4E6D8",
|
|
8527
8836
|
"buildings.businessCorridorOutline": "#DCCFC3",
|
|
8528
|
-
"buildings.civic": "#
|
|
8529
|
-
"buildings.commercial": "#
|
|
8530
|
-
"buildings.destination": "#
|
|
8531
|
-
"buildings.extrusion": "#
|
|
8532
|
-
"buildings.
|
|
8533
|
-
"buildings.
|
|
8534
|
-
"buildings.
|
|
8535
|
-
"buildings.
|
|
8536
|
-
"buildings.
|
|
8837
|
+
"buildings.civic": "#EFEADD",
|
|
8838
|
+
"buildings.commercial": "#EFEADD",
|
|
8839
|
+
"buildings.destination": "#EFEADD",
|
|
8840
|
+
"buildings.extrusion": "#EEE4DA",
|
|
8841
|
+
"buildings.contactShadow": "#8C8178",
|
|
8842
|
+
"buildings.fill": "#EFEADD",
|
|
8843
|
+
"buildings.generic": "#EFEADD",
|
|
8844
|
+
"buildings.industrial": "#EFEADD",
|
|
8845
|
+
"buildings.outline": "#E0CDA5",
|
|
8846
|
+
"buildings.residential": "#EFEADD",
|
|
8537
8847
|
"buildings.shadow": "#BDB7B1",
|
|
8538
8848
|
// Low-zoom bathymetry is composited over the ocean fill. These values are
|
|
8539
8849
|
// deliberately pre-compensated so the rendered result, rather than the raw
|
|
@@ -8542,20 +8852,24 @@ var streetsLightColors = {
|
|
|
8542
8852
|
"hydro.depth.m200": "#6ECEFE59",
|
|
8543
8853
|
"hydro.depth.m2000": "#29B5FD59",
|
|
8544
8854
|
"hydro.depth.m7000": "#15AFFA59",
|
|
8545
|
-
"hydro.ferry": "#
|
|
8855
|
+
"hydro.ferry": "#479CEB",
|
|
8546
8856
|
"hydro.label": "#5A88A9",
|
|
8547
8857
|
"hydro.ocean": "#98DCFE",
|
|
8548
8858
|
"hydro.water": "#98DCFE",
|
|
8549
8859
|
"hydro.waterway": "#98DCFE",
|
|
8550
|
-
"labels.country": "#
|
|
8551
|
-
"labels.
|
|
8860
|
+
"labels.country": "#000000",
|
|
8861
|
+
"labels.ferry": "#2682D9",
|
|
8862
|
+
"labels.ferryHalo": "#98DCFE",
|
|
8863
|
+
"labels.halo": "#F5F1F0",
|
|
8864
|
+
"labels.placeHalo": "#FFFFFF",
|
|
8865
|
+
"labels.roadHalo": "#F2F2F2",
|
|
8552
8866
|
"labels.muted": "#6D6E6C",
|
|
8553
8867
|
"labels.neighborhood": "#626361",
|
|
8554
8868
|
"labels.overview": "#5B5C5A",
|
|
8555
8869
|
"labels.poi": "#555654",
|
|
8556
8870
|
"labels.primary": "#5B5C5A",
|
|
8557
|
-
"labels.road": "#
|
|
8558
|
-
"labels.settlement": "#
|
|
8871
|
+
"labels.road": "#404040",
|
|
8872
|
+
"labels.settlement": "#000000",
|
|
8559
8873
|
"labels.shield.dark": "#1B1D27",
|
|
8560
8874
|
"labels.shield.light": "#FFFFFF",
|
|
8561
8875
|
"labels.strong": "#505050",
|
|
@@ -8570,72 +8884,72 @@ var streetsLightColors = {
|
|
|
8570
8884
|
"landcover.global.shrub": "#D4F0C5",
|
|
8571
8885
|
"landcover.global.snow": "#F4F7F8",
|
|
8572
8886
|
"landcover.global.trees": "#C1EFBE",
|
|
8573
|
-
"landcover.global.urban": "#
|
|
8574
|
-
"landcover.grass": "#
|
|
8575
|
-
"landcover.greenspace": "#
|
|
8887
|
+
"landcover.global.urban": "#F5F1F0",
|
|
8888
|
+
"landcover.grass": "#C2EEBE",
|
|
8889
|
+
"landcover.greenspace": "#B3EAAD",
|
|
8576
8890
|
"landcover.greenspaceDark": "#B8E0AE",
|
|
8577
8891
|
"landcover.ice": "#F4F7F8",
|
|
8578
|
-
"landcover.meadow": "#
|
|
8892
|
+
"landcover.meadow": "#C2EEBE",
|
|
8579
8893
|
"landcover.protected": "#D5E8D0",
|
|
8580
|
-
"landcover.recreationGround": "#
|
|
8894
|
+
"landcover.recreationGround": "#B3EAAD",
|
|
8581
8895
|
"landcover.rock": "#E9E8ED",
|
|
8582
8896
|
"landcover.sand": "#F0ECC6",
|
|
8583
8897
|
"landcover.scrub": "#D2EEC6",
|
|
8584
|
-
"landcover.urbanPark": "#
|
|
8898
|
+
"landcover.urbanPark": "#B3EAAD",
|
|
8585
8899
|
"landcover.villageGreen": "#C2E7B5",
|
|
8586
8900
|
"landcover.wetland": "#D7E9DE",
|
|
8587
|
-
"landcover.wood": "#
|
|
8901
|
+
"landcover.wood": "#A7DFA0",
|
|
8588
8902
|
"landuse.businessCorridor": "#FBEDE2",
|
|
8589
8903
|
"landuse.businessCorridorOutline": "#E6D8CA",
|
|
8590
8904
|
"landuse.cemetery": "#CCE5C6",
|
|
8591
|
-
"landuse.civic": "#
|
|
8905
|
+
"landuse.civic": "#F5F1F0",
|
|
8592
8906
|
"landuse.commercial": "#FBEDE2",
|
|
8593
8907
|
"landuse.education": "#ECE4D2",
|
|
8594
|
-
"landuse.government": "#
|
|
8908
|
+
"landuse.government": "#F5F1F0",
|
|
8595
8909
|
"landuse.industrial": "#E8E8F0",
|
|
8596
8910
|
"landuse.medical": "#EEE0DF",
|
|
8597
|
-
"landuse.military": "#
|
|
8911
|
+
"landuse.military": "#F5F1F0",
|
|
8598
8912
|
"landuse.parking": "#E9E6E7",
|
|
8599
8913
|
"landuse.parkingOutline": "#C8C8CF",
|
|
8600
8914
|
"landuse.railway": "#E8E8F0",
|
|
8601
|
-
"landuse.recreation": "#
|
|
8915
|
+
"landuse.recreation": "#B3EAAD",
|
|
8602
8916
|
"landuse.recreationOutline": "#AED7A5",
|
|
8603
8917
|
"landuse.residential": "#F5F0EF",
|
|
8604
|
-
"poi.arts-entertainment": "#
|
|
8605
|
-
"poi.education": "#
|
|
8606
|
-
"poi.food-drink": "#
|
|
8918
|
+
"poi.arts-entertainment": "#F042B6",
|
|
8919
|
+
"poi.education": "#916130",
|
|
8920
|
+
"poi.food-drink": "#F57A00",
|
|
8607
8921
|
"poi.halo": "#FFFFFF",
|
|
8608
8922
|
"poi.icon": "#777876",
|
|
8609
8923
|
"poi.label": "#555654",
|
|
8610
|
-
"poi.landmark": "#
|
|
8611
|
-
"poi.lodging": "#
|
|
8612
|
-
"poi.medical": "#
|
|
8613
|
-
"poi.park-nature": "#
|
|
8614
|
-
"poi.public-services": "#
|
|
8615
|
-
"poi.religion": "#
|
|
8616
|
-
"poi.retail": "#
|
|
8617
|
-
"poi.sport-leisure": "#
|
|
8618
|
-
"poi.transport": "#
|
|
8619
|
-
"poi.visitor-amenity": "#
|
|
8924
|
+
"poi.landmark": "#F042B6",
|
|
8925
|
+
"poi.lodging": "#664CE6",
|
|
8926
|
+
"poi.medical": "#F53D3D",
|
|
8927
|
+
"poi.park-nature": "#267915",
|
|
8928
|
+
"poi.public-services": "#586E84",
|
|
8929
|
+
"poi.religion": "#586E84",
|
|
8930
|
+
"poi.retail": "#2D87E1",
|
|
8931
|
+
"poi.sport-leisure": "#1891AA",
|
|
8932
|
+
"poi.transport": "#3359CC",
|
|
8933
|
+
"poi.visitor-amenity": "#586E84",
|
|
8620
8934
|
"roads.bridge": "#BEC5D8",
|
|
8621
|
-
"roads.casing": "#
|
|
8622
|
-
"roads.city.casing": "#
|
|
8623
|
-
"roads.city.minor": "#
|
|
8624
|
-
"roads.city.primary": "#
|
|
8625
|
-
"roads.city.secondary": "#
|
|
8626
|
-
"roads.city.tertiary": "#
|
|
8935
|
+
"roads.casing": "#9EA9C4",
|
|
8936
|
+
"roads.city.casing": "#9EA9C4",
|
|
8937
|
+
"roads.city.minor": "#BEC5D8",
|
|
8938
|
+
"roads.city.primary": "#BEC5D8",
|
|
8939
|
+
"roads.city.secondary": "#BEC5D8",
|
|
8940
|
+
"roads.city.tertiary": "#BEC5D8",
|
|
8627
8941
|
"roads.city.tunnel": "#E0E0E5",
|
|
8628
8942
|
"roads.city.tunnelCasing": "#C5C5CF",
|
|
8629
8943
|
"roads.cycleway": "#67AD73",
|
|
8630
8944
|
"roads.default": "#BEC5D8",
|
|
8631
|
-
"roads.default.casing": "#
|
|
8945
|
+
"roads.default.casing": "#9EA9C4",
|
|
8632
8946
|
"roads.default.tunnel": "#DEE0E8",
|
|
8633
|
-
"roads.ferry": "#
|
|
8634
|
-
"roads.major": "#
|
|
8947
|
+
"roads.ferry": "#479CEB",
|
|
8948
|
+
"roads.major": "#A1B0C4",
|
|
8635
8949
|
"roads.minor": "#BEC5D8",
|
|
8636
|
-
"roads.motorway": "#
|
|
8950
|
+
"roads.motorway": "#A1B0C4",
|
|
8637
8951
|
"roads.motorway.casing": "#8D9EAE",
|
|
8638
|
-
"roads.motorway.tunnel": "#
|
|
8952
|
+
"roads.motorway.tunnel": "#BEC8D6",
|
|
8639
8953
|
"roads.parkPath": "#D8E1D8",
|
|
8640
8954
|
"roads.path": "#EFECEF",
|
|
8641
8955
|
"roads.path.casing": "#D1C7C7",
|
|
@@ -8645,15 +8959,19 @@ var streetsLightColors = {
|
|
|
8645
8959
|
"roads.rail": "#8B8E99",
|
|
8646
8960
|
"roads.railTransit": "#8E909D",
|
|
8647
8961
|
"roads.secondary": "#BEC5D8",
|
|
8962
|
+
"roads.sidewalk.surface": "rgba(0, 0, 0, 0.06)",
|
|
8648
8963
|
"roads.trunk": "#A3A6C2",
|
|
8649
8964
|
"roads.trunk.casing": "#8F91AA",
|
|
8650
8965
|
"roads.trunk.tunnel": "#C6C8D4",
|
|
8651
8966
|
"roads.tunnel": "#DEE0E8",
|
|
8652
|
-
"surface.background": "#
|
|
8653
|
-
"surface.building": "#
|
|
8654
|
-
"surface.land": "#
|
|
8655
|
-
"surface.park": "#
|
|
8967
|
+
"surface.background": "#F5F1F0",
|
|
8968
|
+
"surface.building": "#EFEADD",
|
|
8969
|
+
"surface.land": "#F5F1F0",
|
|
8970
|
+
"surface.park": "#B3EAAD",
|
|
8656
8971
|
"surface.water": "#98DCFE",
|
|
8972
|
+
"terrain.hillshade.accent": "#A6AB91",
|
|
8973
|
+
"terrain.hillshade.highlight": "#FFFFFF",
|
|
8974
|
+
"terrain.hillshade.shadow": "#727B64",
|
|
8657
8975
|
"transit.primary": "#5C74D6",
|
|
8658
8976
|
"vegetation.tree.bark": "#918878",
|
|
8659
8977
|
"vegetation.tree.broadleaf.a": "#83AD83",
|
|
@@ -8679,6 +8997,7 @@ var streetsDarkColors = {
|
|
|
8679
8997
|
"buildings.commercial": "#2C2E3D",
|
|
8680
8998
|
"buildings.destination": "#3A3947",
|
|
8681
8999
|
"buildings.extrusion": "#343646",
|
|
9000
|
+
"buildings.contactShadow": "#121522",
|
|
8682
9001
|
"buildings.fill": "#2C2E3D",
|
|
8683
9002
|
"buildings.generic": "#2C2E3D",
|
|
8684
9003
|
"buildings.industrial": "#2C2E3D",
|
|
@@ -8695,7 +9014,11 @@ var streetsDarkColors = {
|
|
|
8695
9014
|
"hydro.water": "#18223B",
|
|
8696
9015
|
"hydro.waterway": "#18223B",
|
|
8697
9016
|
"labels.country": "#A6A7AC",
|
|
9017
|
+
"labels.ferry": "#8799BE",
|
|
9018
|
+
"labels.ferryHalo": "#18223B",
|
|
8698
9019
|
"labels.halo": "#252839",
|
|
9020
|
+
"labels.placeHalo": "#252839",
|
|
9021
|
+
"labels.roadHalo": "#252839",
|
|
8699
9022
|
"labels.muted": "#8F9098",
|
|
8700
9023
|
"labels.neighborhood": "#8F9098",
|
|
8701
9024
|
"labels.overview": "#B2B1B7",
|
|
@@ -8749,19 +9072,19 @@ var streetsDarkColors = {
|
|
|
8749
9072
|
"landuse.recreationOutline": "#63756A",
|
|
8750
9073
|
"landuse.residential": "#2D3043",
|
|
8751
9074
|
"poi.arts-entertainment": "#C786BC",
|
|
8752
|
-
"poi.education": "#
|
|
8753
|
-
"poi.food-drink": "#
|
|
9075
|
+
"poi.education": "#B6A783",
|
|
9076
|
+
"poi.food-drink": "#D8BD65",
|
|
8754
9077
|
"poi.halo": "#252839",
|
|
8755
9078
|
"poi.icon": "#8F9098",
|
|
8756
9079
|
"poi.label": "#B8B7BD",
|
|
8757
9080
|
"poi.landmark": "#C786BC",
|
|
8758
9081
|
"poi.lodging": "#AA94DA",
|
|
8759
9082
|
"poi.medical": "#DC7C89",
|
|
8760
|
-
"poi.park-nature": "#
|
|
9083
|
+
"poi.park-nature": "#89B871",
|
|
8761
9084
|
"poi.public-services": "#8F9098",
|
|
8762
|
-
"poi.religion": "#
|
|
8763
|
-
"poi.retail": "#
|
|
8764
|
-
"poi.sport-leisure": "#
|
|
9085
|
+
"poi.religion": "#9DAAB0",
|
|
9086
|
+
"poi.retail": "#94BCE3",
|
|
9087
|
+
"poi.sport-leisure": "#89B871",
|
|
8765
9088
|
"poi.transport": "#8296E6",
|
|
8766
9089
|
"poi.visitor-amenity": "#8F9098",
|
|
8767
9090
|
"roads.bridge": "#636779",
|
|
@@ -8792,6 +9115,7 @@ var streetsDarkColors = {
|
|
|
8792
9115
|
"roads.rail": "#7C7F8C",
|
|
8793
9116
|
"roads.railTransit": "#777B89",
|
|
8794
9117
|
"roads.secondary": "#636779",
|
|
9118
|
+
"roads.sidewalk.surface": "rgba(255, 255, 255, 0.06)",
|
|
8795
9119
|
"roads.trunk": "#6F7188",
|
|
8796
9120
|
"roads.trunk.casing": "#505264",
|
|
8797
9121
|
"roads.trunk.tunnel": "#5B5D70",
|
|
@@ -8801,6 +9125,9 @@ var streetsDarkColors = {
|
|
|
8801
9125
|
"surface.land": "#2D3043",
|
|
8802
9126
|
"surface.park": "#34453F",
|
|
8803
9127
|
"surface.water": "#18223B",
|
|
9128
|
+
"terrain.hillshade.accent": "#252D36",
|
|
9129
|
+
"terrain.hillshade.highlight": "#576374",
|
|
9130
|
+
"terrain.hillshade.shadow": "#101827",
|
|
8804
9131
|
"transit.primary": "#8296E6",
|
|
8805
9132
|
"vegetation.tree.bark": "#52483D",
|
|
8806
9133
|
"vegetation.tree.broadleaf.a": "#35473F",
|
|
@@ -8811,24 +9138,126 @@ var streetsDarkColors = {
|
|
|
8811
9138
|
"vegetation.tree.conifer.b": "#384A40",
|
|
8812
9139
|
"vegetation.tree.conifer.c": "#405348"
|
|
8813
9140
|
};
|
|
9141
|
+
function parseStreetsColor(value) {
|
|
9142
|
+
const hex = /^#([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i.exec(value);
|
|
9143
|
+
if (hex) {
|
|
9144
|
+
const digits = hex[1];
|
|
9145
|
+
const expanded = digits.length < 5 ? [...digits].map((digit) => digit + digit).join("") : digits;
|
|
9146
|
+
return {
|
|
9147
|
+
r: Number.parseInt(expanded.slice(0, 2), 16),
|
|
9148
|
+
g: Number.parseInt(expanded.slice(2, 4), 16),
|
|
9149
|
+
b: Number.parseInt(expanded.slice(4, 6), 16),
|
|
9150
|
+
a: expanded.length === 8 ? Number.parseInt(expanded.slice(6, 8), 16) / 255 : 1
|
|
9151
|
+
};
|
|
9152
|
+
}
|
|
9153
|
+
const rgb = /^rgba?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)(?:\s*,\s*(\d+(?:\.\d+)?))?\s*\)$/i.exec(
|
|
9154
|
+
value
|
|
9155
|
+
);
|
|
9156
|
+
if (rgb) {
|
|
9157
|
+
return {
|
|
9158
|
+
r: Number(rgb[1]),
|
|
9159
|
+
g: Number(rgb[2]),
|
|
9160
|
+
b: Number(rgb[3]),
|
|
9161
|
+
a: rgb[4] === void 0 ? 1 : Number(rgb[4])
|
|
9162
|
+
};
|
|
9163
|
+
}
|
|
9164
|
+
throw new Error(`Unsupported Streets theme color: ${value}`);
|
|
9165
|
+
}
|
|
9166
|
+
function formatStreetsColor({ a, b, g, r }, format) {
|
|
9167
|
+
const channel = (value) => Math.max(0, Math.min(255, Math.round(value)));
|
|
9168
|
+
if (format.startsWith("rgba")) {
|
|
9169
|
+
return `rgba(${channel(r)}, ${channel(g)}, ${channel(b)}, ${Number(a.toFixed(3))})`;
|
|
9170
|
+
}
|
|
9171
|
+
const hex = (value) => channel(value).toString(16).padStart(2, "0");
|
|
9172
|
+
return `#${hex(r)}${hex(g)}${hex(b)}${format.length === 9 ? hex(a * 255) : ""}`;
|
|
9173
|
+
}
|
|
9174
|
+
function mixStreetsColor(color, tint, amount) {
|
|
9175
|
+
const target = parseStreetsColor(tint);
|
|
9176
|
+
return {
|
|
9177
|
+
r: color.r + (target.r - color.r) * amount,
|
|
9178
|
+
g: color.g + (target.g - color.g) * amount,
|
|
9179
|
+
b: color.b + (target.b - color.b) * amount,
|
|
9180
|
+
a: color.a
|
|
9181
|
+
};
|
|
9182
|
+
}
|
|
9183
|
+
function adjustStreetsColors(colors, transform) {
|
|
9184
|
+
return Object.fromEntries(
|
|
9185
|
+
Object.entries(colors).map(([role, value]) => [
|
|
9186
|
+
role,
|
|
9187
|
+
formatStreetsColor(transform(role, parseStreetsColor(value)), value)
|
|
9188
|
+
])
|
|
9189
|
+
);
|
|
9190
|
+
}
|
|
9191
|
+
function applyStreetsLightPreset(colors, preset) {
|
|
9192
|
+
if (preset === "day" || preset === "night") return { ...colors };
|
|
9193
|
+
const dawn = preset === "dawn";
|
|
9194
|
+
return adjustStreetsColors(colors, (role, color) => {
|
|
9195
|
+
if (role.startsWith("hydro.") || role === "boundaries.maritime" || role === "surface.water" || role === "labels.water" || role === "labels.waterHalo" || role === "labels.ferry" || role === "labels.ferryHalo") {
|
|
9196
|
+
return mixStreetsColor(color, dawn ? "#8EA9B8" : "#7893AA", dawn ? 0.24 : 0.2);
|
|
9197
|
+
}
|
|
9198
|
+
if (role.startsWith("roads.")) {
|
|
9199
|
+
return mixStreetsColor(color, dawn ? "#B8AEB0" : "#9698A8", dawn ? 0.17 : 0.2);
|
|
9200
|
+
}
|
|
9201
|
+
const greenLandcover = role.startsWith("landcover.") && !/(?:^|\.)(?:barren|ice|rock|sand|snow|urban)$/.test(role);
|
|
9202
|
+
if (greenLandcover || role.startsWith("vegetation.tree.") || role === "surface.park" || role === "landuse.cemetery" || role === "landuse.recreation" || role === "landuse.recreationOutline") {
|
|
9203
|
+
return mixStreetsColor(color, dawn ? "#B9D5AB" : "#A6BDA8", dawn ? 0.13 : 0.17);
|
|
9204
|
+
}
|
|
9205
|
+
const halo = role === "labels.halo" || role.endsWith("Halo") || role === "poi.halo";
|
|
9206
|
+
if (role.startsWith("labels.") && !halo) {
|
|
9207
|
+
return mixStreetsColor(color, dawn ? "#514B48" : "#494A54", dawn ? 0.06 : 0.08);
|
|
9208
|
+
}
|
|
9209
|
+
if (halo) {
|
|
9210
|
+
return mixStreetsColor(color, dawn ? "#F2E3D7" : "#E5DFE4", dawn ? 0.23 : 0.18);
|
|
9211
|
+
}
|
|
9212
|
+
if (role.startsWith("landuse.parking")) {
|
|
9213
|
+
return mixStreetsColor(color, dawn ? "#D7D6D5" : "#CECFD7", dawn ? 0.16 : 0.2);
|
|
9214
|
+
}
|
|
9215
|
+
if (role.startsWith("buildings.") || role.startsWith("landuse.") || role.startsWith("surface.") || role === "boundaries.halo") {
|
|
9216
|
+
return mixStreetsColor(color, dawn ? "#F2E3D7" : "#E5DFE4", dawn ? 0.23 : 0.18);
|
|
9217
|
+
}
|
|
9218
|
+
return color;
|
|
9219
|
+
});
|
|
9220
|
+
}
|
|
9221
|
+
function applyStreetsColorTheme(colors, theme, isDark) {
|
|
9222
|
+
if (theme === "default") return { ...colors };
|
|
9223
|
+
if (theme === "monochrome") {
|
|
9224
|
+
return adjustStreetsColors(colors, (_role, color) => {
|
|
9225
|
+
const gray = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;
|
|
9226
|
+
return { ...color, r: gray, g: gray, b: gray };
|
|
9227
|
+
});
|
|
9228
|
+
}
|
|
9229
|
+
const background = isDark ? "#292C3A" : "#F1F0ED";
|
|
9230
|
+
return adjustStreetsColors(colors, (_role, color) => {
|
|
9231
|
+
const gray = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;
|
|
9232
|
+
const desaturated = {
|
|
9233
|
+
...color,
|
|
9234
|
+
r: gray + (color.r - gray) * 0.52,
|
|
9235
|
+
g: gray + (color.g - gray) * 0.52,
|
|
9236
|
+
b: gray + (color.b - gray) * 0.52
|
|
9237
|
+
};
|
|
9238
|
+
return mixStreetsColor(desaturated, background, isDark ? 0.08 : 0.12);
|
|
9239
|
+
});
|
|
9240
|
+
}
|
|
9241
|
+
function streetsPaletteColors(preset, colorTheme) {
|
|
9242
|
+
const isDark = preset === "night";
|
|
9243
|
+
const base = isDark ? streetsDarkColors : streetsLightColors;
|
|
9244
|
+
return applyStreetsColorTheme(applyStreetsLightPreset(base, preset), colorTheme, isDark);
|
|
9245
|
+
}
|
|
8814
9246
|
var streetsFonts = {
|
|
9247
|
+
// DIN Pro Medium has much lighter strokes than Noto Sans Bold. Of the
|
|
9248
|
+
// hosted Noto faces, Regular is the closer match for navigation and POIs.
|
|
8815
9249
|
default: "Noto Sans Regular",
|
|
8816
|
-
places: "Noto Sans Bold"
|
|
9250
|
+
places: "Noto Sans Bold",
|
|
9251
|
+
regular: "Noto Sans Regular",
|
|
9252
|
+
water: "Noto Sans Italic"
|
|
8817
9253
|
};
|
|
8818
9254
|
var streetsImages = {
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8822
|
-
|
|
8823
|
-
|
|
8824
|
-
|
|
8825
|
-
"poi.park-nature": "services",
|
|
8826
|
-
"poi.public-services": "services",
|
|
8827
|
-
"poi.religion": "culture",
|
|
8828
|
-
"poi.retail": "shopping",
|
|
8829
|
-
"poi.sport-leisure": "culture",
|
|
8830
|
-
"poi.transport": "major-transit",
|
|
8831
|
-
"poi.visitor-amenity": "services",
|
|
9255
|
+
...Object.fromEntries(
|
|
9256
|
+
["round", "open", "tall", "conifer", "columnar", "palm-feather", "palm-fan"].map((form) => [
|
|
9257
|
+
`vegetation.tree.${form}`,
|
|
9258
|
+
`streets-tree-${form}`
|
|
9259
|
+
])
|
|
9260
|
+
),
|
|
8832
9261
|
"roads.crosswalk": "crosswalk",
|
|
8833
9262
|
"roads.oneway": "oneway",
|
|
8834
9263
|
"roads.shield.circleNeutral": "road-shield-circle-neutral",
|
|
@@ -8840,95 +9269,136 @@ var streetsImages = {
|
|
|
8840
9269
|
"roads.shield.rectangleYellow": "road-shield-rectangle-yellow",
|
|
8841
9270
|
"roads.sidewalkPattern": "sidewalk-dot"
|
|
8842
9271
|
};
|
|
8843
|
-
var
|
|
8844
|
-
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
|
|
8848
|
-
|
|
8849
|
-
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
|
|
8853
|
-
|
|
8854
|
-
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
|
|
8858
|
-
|
|
8859
|
-
|
|
8860
|
-
|
|
8861
|
-
|
|
8862
|
-
|
|
8863
|
-
|
|
8864
|
-
|
|
8865
|
-
|
|
9272
|
+
var streetsLightTheme = defineTheme2({
|
|
9273
|
+
id: "streets-light",
|
|
9274
|
+
version: 1,
|
|
9275
|
+
colorScheme: "light",
|
|
9276
|
+
tokens: {
|
|
9277
|
+
color: streetsLightColors,
|
|
9278
|
+
number: {},
|
|
9279
|
+
font: streetsFonts,
|
|
9280
|
+
image: { ...streetsImages, ...streetsPoiImageTokens("light") }
|
|
9281
|
+
},
|
|
9282
|
+
typography: {
|
|
9283
|
+
font: token5.font("default"),
|
|
9284
|
+
places: { font: token5.font("places") },
|
|
9285
|
+
poi: { font: token5.font("default") },
|
|
9286
|
+
roads: { font: token5.font("default") },
|
|
9287
|
+
water: { font: token5.font("default") }
|
|
9288
|
+
},
|
|
9289
|
+
lighting: {
|
|
9290
|
+
// A broad, high light keeps warm roofs bright and facades softly shaded.
|
|
9291
|
+
// Anchor it to the map so rotating the camera does not move the light.
|
|
9292
|
+
anchor: "map",
|
|
9293
|
+
color: "#FFFFFF",
|
|
9294
|
+
intensity: 0.08,
|
|
9295
|
+
position: [1.15, 210, 30]
|
|
9296
|
+
}
|
|
9297
|
+
});
|
|
9298
|
+
var streetsDarkTheme = defineTheme2({
|
|
9299
|
+
id: "streets-dark",
|
|
9300
|
+
version: 1,
|
|
9301
|
+
colorScheme: "dark",
|
|
9302
|
+
tokens: {
|
|
9303
|
+
color: streetsDarkColors,
|
|
9304
|
+
number: {},
|
|
9305
|
+
font: streetsFonts,
|
|
9306
|
+
image: {
|
|
9307
|
+
...streetsImages,
|
|
9308
|
+
...streetsPoiImageTokens("dark"),
|
|
9309
|
+
...Object.fromEntries(
|
|
9310
|
+
Object.entries(streetsImages).filter(([role]) => role.startsWith("vegetation.tree.")).map(([role, image2]) => [role, `${image2}-dark`])
|
|
9311
|
+
),
|
|
9312
|
+
"roads.sidewalkPattern": "sidewalk-dot-dark"
|
|
8866
9313
|
}
|
|
8867
|
-
}
|
|
8868
|
-
|
|
8869
|
-
|
|
9314
|
+
},
|
|
9315
|
+
typography: {
|
|
9316
|
+
font: token5.font("default"),
|
|
9317
|
+
places: { font: token5.font("places") },
|
|
9318
|
+
poi: { font: token5.font("default") },
|
|
9319
|
+
roads: { font: token5.font("default") },
|
|
9320
|
+
water: { font: token5.font("default") }
|
|
9321
|
+
},
|
|
9322
|
+
lighting: {
|
|
9323
|
+
anchor: "viewport",
|
|
9324
|
+
color: "#9FB6D0",
|
|
9325
|
+
intensity: 0.08,
|
|
9326
|
+
position: [1.15, 210, 30]
|
|
9327
|
+
}
|
|
9328
|
+
});
|
|
9329
|
+
function defineStreetsPaletteTheme(name, preset, colorTheme) {
|
|
9330
|
+
const isDark = preset === "night";
|
|
9331
|
+
const imageVariant = colorTheme === "monochrome" ? isDark ? "monochrome-dark" : "monochrome" : void 0;
|
|
9332
|
+
return defineTheme2(isDark ? streetsDarkTheme : streetsLightTheme, {
|
|
9333
|
+
id: `streets-${name}`,
|
|
8870
9334
|
version: 1,
|
|
8871
|
-
colorScheme: "dark",
|
|
9335
|
+
colorScheme: isDark ? "dark" : "light",
|
|
8872
9336
|
tokens: {
|
|
8873
|
-
color:
|
|
8874
|
-
|
|
8875
|
-
font: streetsFonts,
|
|
8876
|
-
image: {
|
|
8877
|
-
...streetsImages,
|
|
8878
|
-
"roads.sidewalkPattern": "sidewalk-dot-dark"
|
|
8879
|
-
}
|
|
8880
|
-
},
|
|
8881
|
-
typography: {
|
|
8882
|
-
font: token4.font("default"),
|
|
8883
|
-
places: { font: token4.font("places") },
|
|
8884
|
-
poi: { font: token4.font("default") },
|
|
8885
|
-
roads: { font: token4.font("default") },
|
|
8886
|
-
water: { font: token4.font("default") }
|
|
8887
|
-
},
|
|
8888
|
-
lighting: {
|
|
8889
|
-
anchor: "viewport",
|
|
8890
|
-
color: "#9FB6D0",
|
|
8891
|
-
intensity: 0.08,
|
|
8892
|
-
position: [1.15, 210, 30]
|
|
9337
|
+
color: streetsPaletteColors(preset, colorTheme),
|
|
9338
|
+
...imageVariant ? { image: streetsPoiImageTokens(imageVariant) } : {}
|
|
8893
9339
|
}
|
|
8894
|
-
})
|
|
9340
|
+
});
|
|
9341
|
+
}
|
|
9342
|
+
var streetsThemes = Object.freeze({
|
|
9343
|
+
light: streetsLightTheme,
|
|
9344
|
+
dark: streetsDarkTheme,
|
|
9345
|
+
dawn: defineStreetsPaletteTheme("dawn", "dawn", "default"),
|
|
9346
|
+
dusk: defineStreetsPaletteTheme("dusk", "dusk", "default"),
|
|
9347
|
+
faded: defineStreetsPaletteTheme("faded", "day", "faded"),
|
|
9348
|
+
monochrome: defineStreetsPaletteTheme("monochrome", "day", "monochrome"),
|
|
9349
|
+
"dawn-faded": defineStreetsPaletteTheme("dawn-faded", "dawn", "faded"),
|
|
9350
|
+
"dawn-monochrome": defineStreetsPaletteTheme("dawn-monochrome", "dawn", "monochrome"),
|
|
9351
|
+
"dusk-faded": defineStreetsPaletteTheme("dusk-faded", "dusk", "faded"),
|
|
9352
|
+
"dusk-monochrome": defineStreetsPaletteTheme("dusk-monochrome", "dusk", "monochrome"),
|
|
9353
|
+
"dark-faded": defineStreetsPaletteTheme("dark-faded", "night", "faded"),
|
|
9354
|
+
"dark-monochrome": defineStreetsPaletteTheme("dark-monochrome", "night", "monochrome")
|
|
8895
9355
|
});
|
|
8896
9356
|
var streetsVisual = {
|
|
8897
9357
|
boundary: {
|
|
8898
|
-
admin:
|
|
8899
|
-
halo:
|
|
8900
|
-
regional:
|
|
8901
|
-
overviewLabel:
|
|
9358
|
+
admin: token5.color("boundaries.admin"),
|
|
9359
|
+
halo: token5.color("boundaries.halo"),
|
|
9360
|
+
regional: token5.color("boundaries.regional"),
|
|
9361
|
+
overviewLabel: token5.color("labels.overview")
|
|
8902
9362
|
},
|
|
8903
9363
|
building: {
|
|
8904
|
-
|
|
8905
|
-
|
|
8906
|
-
|
|
8907
|
-
|
|
9364
|
+
contactShadow: token5.color("buildings.contactShadow"),
|
|
9365
|
+
extrusion: token5.color("buildings.extrusion"),
|
|
9366
|
+
fill: token5.color("buildings.fill"),
|
|
9367
|
+
outline: token5.color("buildings.outline"),
|
|
9368
|
+
shadow: token5.color("buildings.shadow")
|
|
9369
|
+
},
|
|
9370
|
+
terrain: {
|
|
9371
|
+
accent: token5.color("terrain.hillshade.accent"),
|
|
9372
|
+
highlight: token5.color("terrain.hillshade.highlight"),
|
|
9373
|
+
shadow: token5.color("terrain.hillshade.shadow")
|
|
8908
9374
|
},
|
|
8909
9375
|
hydro: {
|
|
8910
|
-
depth0:
|
|
8911
|
-
depth200:
|
|
8912
|
-
depth2000:
|
|
8913
|
-
depth7000:
|
|
8914
|
-
ocean:
|
|
8915
|
-
water:
|
|
9376
|
+
depth0: token5.color("hydro.depth.m0"),
|
|
9377
|
+
depth200: token5.color("hydro.depth.m200"),
|
|
9378
|
+
depth2000: token5.color("hydro.depth.m2000"),
|
|
9379
|
+
depth7000: token5.color("hydro.depth.m7000"),
|
|
9380
|
+
ocean: token5.color("hydro.ocean"),
|
|
9381
|
+
water: token5.color("hydro.water")
|
|
8916
9382
|
},
|
|
8917
9383
|
label: {
|
|
8918
|
-
country:
|
|
8919
|
-
|
|
8920
|
-
|
|
8921
|
-
|
|
8922
|
-
|
|
8923
|
-
|
|
8924
|
-
|
|
8925
|
-
|
|
8926
|
-
|
|
8927
|
-
|
|
8928
|
-
|
|
8929
|
-
|
|
8930
|
-
|
|
8931
|
-
|
|
9384
|
+
country: token5.color("labels.country"),
|
|
9385
|
+
ferry: token5.color("labels.ferry"),
|
|
9386
|
+
ferryHalo: token5.color("labels.ferryHalo"),
|
|
9387
|
+
halo: token5.color("labels.halo"),
|
|
9388
|
+
muted: token5.color("labels.muted"),
|
|
9389
|
+
neighborhood: token5.color("labels.neighborhood"),
|
|
9390
|
+
overview: token5.color("labels.overview"),
|
|
9391
|
+
poi: token5.color("labels.poi"),
|
|
9392
|
+
primary: token5.color("labels.primary"),
|
|
9393
|
+
road: token5.color("labels.road"),
|
|
9394
|
+
settlement: token5.color("labels.settlement"),
|
|
9395
|
+
shieldDark: token5.color("labels.shield.dark"),
|
|
9396
|
+
shieldLight: token5.color("labels.shield.light"),
|
|
9397
|
+
strong: token5.color("labels.strong"),
|
|
9398
|
+
water: token5.color("labels.water"),
|
|
9399
|
+
waterHalo: token5.color("labels.waterHalo"),
|
|
9400
|
+
placeHalo: token5.color("labels.placeHalo"),
|
|
9401
|
+
roadHalo: token5.color("labels.roadHalo")
|
|
8932
9402
|
},
|
|
8933
9403
|
landcover: Object.fromEntries(
|
|
8934
9404
|
[
|
|
@@ -8949,12 +9419,12 @@ var streetsVisual = {
|
|
|
8949
9419
|
"villageGreen",
|
|
8950
9420
|
"wetland",
|
|
8951
9421
|
"wood"
|
|
8952
|
-
].map((name) => [name,
|
|
9422
|
+
].map((name) => [name, token5.color(`landcover.${name}`)])
|
|
8953
9423
|
),
|
|
8954
9424
|
globalLandcover: Object.fromEntries(
|
|
8955
9425
|
["barren", "crop", "grass", "shrub", "snow", "trees", "urban"].map((name) => [
|
|
8956
9426
|
name,
|
|
8957
|
-
|
|
9427
|
+
token5.color(`landcover.global.${name}`)
|
|
8958
9428
|
])
|
|
8959
9429
|
),
|
|
8960
9430
|
landuse: Object.fromEntries(
|
|
@@ -8975,7 +9445,7 @@ var streetsVisual = {
|
|
|
8975
9445
|
"recreation",
|
|
8976
9446
|
"recreationOutline",
|
|
8977
9447
|
"residential"
|
|
8978
|
-
].map((name) => [name,
|
|
9448
|
+
].map((name) => [name, token5.color(`landuse.${name}`)])
|
|
8979
9449
|
),
|
|
8980
9450
|
poi: Object.fromEntries(
|
|
8981
9451
|
[
|
|
@@ -8995,68 +9465,309 @@ var streetsVisual = {
|
|
|
8995
9465
|
"sport-leisure",
|
|
8996
9466
|
"transport",
|
|
8997
9467
|
"visitor-amenity"
|
|
8998
|
-
].map((name) => [name,
|
|
9468
|
+
].map((name) => [name, token5.color(`poi.${name}`)])
|
|
8999
9469
|
),
|
|
9000
9470
|
road: {
|
|
9001
|
-
casing:
|
|
9002
|
-
cityCasing:
|
|
9003
|
-
cityMinor:
|
|
9004
|
-
cityPrimary:
|
|
9005
|
-
citySecondary:
|
|
9006
|
-
cityTertiary:
|
|
9007
|
-
cityTunnel:
|
|
9008
|
-
cityTunnelCasing:
|
|
9009
|
-
cycleway:
|
|
9010
|
-
default:
|
|
9011
|
-
ferry:
|
|
9012
|
-
motorway:
|
|
9013
|
-
motorwayCasing:
|
|
9014
|
-
motorwayTunnel:
|
|
9015
|
-
parkPath:
|
|
9016
|
-
path:
|
|
9017
|
-
pathCasing:
|
|
9018
|
-
pathTransition:
|
|
9019
|
-
pathTunnel:
|
|
9020
|
-
rail:
|
|
9021
|
-
railTransit:
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9471
|
+
casing: token5.color("roads.default.casing"),
|
|
9472
|
+
cityCasing: token5.color("roads.city.casing"),
|
|
9473
|
+
cityMinor: token5.color("roads.city.minor"),
|
|
9474
|
+
cityPrimary: token5.color("roads.city.primary"),
|
|
9475
|
+
citySecondary: token5.color("roads.city.secondary"),
|
|
9476
|
+
cityTertiary: token5.color("roads.city.tertiary"),
|
|
9477
|
+
cityTunnel: token5.color("roads.city.tunnel"),
|
|
9478
|
+
cityTunnelCasing: token5.color("roads.city.tunnelCasing"),
|
|
9479
|
+
cycleway: token5.color("roads.cycleway"),
|
|
9480
|
+
default: token5.color("roads.default"),
|
|
9481
|
+
ferry: token5.color("roads.ferry"),
|
|
9482
|
+
motorway: token5.color("roads.motorway"),
|
|
9483
|
+
motorwayCasing: token5.color("roads.motorway.casing"),
|
|
9484
|
+
motorwayTunnel: token5.color("roads.motorway.tunnel"),
|
|
9485
|
+
parkPath: token5.color("roads.parkPath"),
|
|
9486
|
+
path: token5.color("roads.path"),
|
|
9487
|
+
pathCasing: token5.color("roads.path.casing"),
|
|
9488
|
+
pathTransition: token5.color("roads.path.transition"),
|
|
9489
|
+
pathTunnel: token5.color("roads.path.tunnel"),
|
|
9490
|
+
rail: token5.color("roads.rail"),
|
|
9491
|
+
railTransit: token5.color("roads.railTransit"),
|
|
9492
|
+
sidewalkSurface: token5.color("roads.sidewalk.surface"),
|
|
9493
|
+
trunk: token5.color("roads.trunk"),
|
|
9494
|
+
trunkCasing: token5.color("roads.trunk.casing"),
|
|
9495
|
+
trunkTunnel: token5.color("roads.trunk.tunnel"),
|
|
9496
|
+
tunnel: token5.color("roads.default.tunnel")
|
|
9026
9497
|
},
|
|
9027
9498
|
surface: {
|
|
9028
|
-
background:
|
|
9029
|
-
building:
|
|
9030
|
-
land:
|
|
9031
|
-
park:
|
|
9032
|
-
water:
|
|
9499
|
+
background: token5.color("surface.background"),
|
|
9500
|
+
building: token5.color("surface.building"),
|
|
9501
|
+
land: token5.color("surface.land"),
|
|
9502
|
+
park: token5.color("surface.park"),
|
|
9503
|
+
water: token5.color("surface.water")
|
|
9033
9504
|
},
|
|
9034
|
-
transit:
|
|
9505
|
+
transit: token5.color("transit.primary"),
|
|
9035
9506
|
tree: {
|
|
9036
|
-
bark:
|
|
9507
|
+
bark: token5.color("vegetation.tree.bark"),
|
|
9037
9508
|
broadleaf: ["a", "b", "c", "d"].map(
|
|
9038
|
-
(suffix) =>
|
|
9509
|
+
(suffix) => token5.color(`vegetation.tree.broadleaf.${suffix}`)
|
|
9039
9510
|
),
|
|
9040
|
-
conifer: ["a", "b", "c"].map((suffix) =>
|
|
9511
|
+
conifer: ["a", "b", "c"].map((suffix) => token5.color(`vegetation.tree.conifer.${suffix}`))
|
|
9041
9512
|
},
|
|
9042
9513
|
image: {
|
|
9043
|
-
crosswalk:
|
|
9044
|
-
oneway:
|
|
9045
|
-
shieldCircleNeutral:
|
|
9046
|
-
shieldRectangleBlue:
|
|
9047
|
-
shieldRectangleGreen:
|
|
9048
|
-
shieldRectangleNeutral:
|
|
9049
|
-
shieldRectangleOrange:
|
|
9050
|
-
shieldRectangleRed:
|
|
9051
|
-
shieldRectangleYellow:
|
|
9052
|
-
sidewalkPattern:
|
|
9514
|
+
crosswalk: token5.image("roads.crosswalk"),
|
|
9515
|
+
oneway: token5.image("roads.oneway"),
|
|
9516
|
+
shieldCircleNeutral: token5.image("roads.shield.circleNeutral"),
|
|
9517
|
+
shieldRectangleBlue: token5.image("roads.shield.rectangleBlue"),
|
|
9518
|
+
shieldRectangleGreen: token5.image("roads.shield.rectangleGreen"),
|
|
9519
|
+
shieldRectangleNeutral: token5.image("roads.shield.rectangleNeutral"),
|
|
9520
|
+
shieldRectangleOrange: token5.image("roads.shield.rectangleOrange"),
|
|
9521
|
+
shieldRectangleRed: token5.image("roads.shield.rectangleRed"),
|
|
9522
|
+
shieldRectangleYellow: token5.image("roads.shield.rectangleYellow"),
|
|
9523
|
+
sidewalkPattern: token5.image("roads.sidewalkPattern")
|
|
9053
9524
|
},
|
|
9054
9525
|
font: {
|
|
9055
|
-
default:
|
|
9056
|
-
places:
|
|
9526
|
+
default: token5.font("default"),
|
|
9527
|
+
places: token5.font("places"),
|
|
9528
|
+
regular: token5.font("regular"),
|
|
9529
|
+
water: token5.font("water")
|
|
9057
9530
|
}
|
|
9058
9531
|
};
|
|
9059
9532
|
|
|
9533
|
+
// src/official/streets-trees.ts
|
|
9534
|
+
import {
|
|
9535
|
+
expr as expr10,
|
|
9536
|
+
field as field9,
|
|
9537
|
+
renderPass as renderPass8,
|
|
9538
|
+
token as token6,
|
|
9539
|
+
vegetation as vegetation6,
|
|
9540
|
+
withRenderStack as withRenderStack8,
|
|
9541
|
+
zoom as zoom9
|
|
9542
|
+
} from "@tileflow/core";
|
|
9543
|
+
var seed = expr10.toNumber(expr10.id(), 0);
|
|
9544
|
+
var genus = expr10.get(field9("genus"));
|
|
9545
|
+
var leaf = expr10.get(field9("leafType"));
|
|
9546
|
+
var named = (names) => expr10.match(
|
|
9547
|
+
genus,
|
|
9548
|
+
[{ labels: names.flatMap((name) => [name, name.toLowerCase()]), value: true }],
|
|
9549
|
+
false
|
|
9550
|
+
);
|
|
9551
|
+
var image = (form) => token6.image(`vegetation.tree.${form}`);
|
|
9552
|
+
var broadleaf = expr10.match(
|
|
9553
|
+
expr10.modulo(seed, 3),
|
|
9554
|
+
[
|
|
9555
|
+
{ labels: [0], value: image("round") },
|
|
9556
|
+
{ labels: [1], value: image("open") }
|
|
9557
|
+
],
|
|
9558
|
+
image("tall")
|
|
9559
|
+
);
|
|
9560
|
+
var palm = expr10.match(
|
|
9561
|
+
expr10.modulo(seed, 2),
|
|
9562
|
+
[{ labels: [0], value: image("palm-feather") }],
|
|
9563
|
+
image("palm-fan")
|
|
9564
|
+
);
|
|
9565
|
+
var crownImage = expr10.case(
|
|
9566
|
+
[
|
|
9567
|
+
{
|
|
9568
|
+
when: expr10.any(
|
|
9569
|
+
expr10.eq(leaf, "palm"),
|
|
9570
|
+
named([
|
|
9571
|
+
"Acoelorrhaphe",
|
|
9572
|
+
"Adonidia",
|
|
9573
|
+
"Archontophoenix",
|
|
9574
|
+
"Areca",
|
|
9575
|
+
"Bismarckia",
|
|
9576
|
+
"Brahea",
|
|
9577
|
+
"Butia",
|
|
9578
|
+
"Caryota",
|
|
9579
|
+
"Chamaedorea",
|
|
9580
|
+
"Chamaerops",
|
|
9581
|
+
"Coccothrinax",
|
|
9582
|
+
"Cocos",
|
|
9583
|
+
"Dypsis",
|
|
9584
|
+
"Elaeis",
|
|
9585
|
+
"Howea",
|
|
9586
|
+
"Jubaea",
|
|
9587
|
+
"Licuala",
|
|
9588
|
+
"Livistona",
|
|
9589
|
+
"Phoenix",
|
|
9590
|
+
"Pritchardia",
|
|
9591
|
+
"Ptychosperma",
|
|
9592
|
+
"Rhapis",
|
|
9593
|
+
"Roystonea",
|
|
9594
|
+
"Sabal",
|
|
9595
|
+
"Serenoa",
|
|
9596
|
+
"Syagrus",
|
|
9597
|
+
"Thrinax",
|
|
9598
|
+
"Trachycarpus",
|
|
9599
|
+
"Veitchia",
|
|
9600
|
+
"Washingtonia",
|
|
9601
|
+
"Wodyetia"
|
|
9602
|
+
])
|
|
9603
|
+
),
|
|
9604
|
+
value: palm
|
|
9605
|
+
},
|
|
9606
|
+
{ when: named(["Cupressus", "Calocedrus", "Thuja"]), value: image("columnar") },
|
|
9607
|
+
{
|
|
9608
|
+
when: expr10.any(
|
|
9609
|
+
expr10.eq(leaf, "needleleaved"),
|
|
9610
|
+
named([
|
|
9611
|
+
"Abies",
|
|
9612
|
+
"Araucaria",
|
|
9613
|
+
"Cedrus",
|
|
9614
|
+
"Cryptomeria",
|
|
9615
|
+
"Juniperus",
|
|
9616
|
+
"Larix",
|
|
9617
|
+
"Metasequoia",
|
|
9618
|
+
"Picea",
|
|
9619
|
+
"Pinus",
|
|
9620
|
+
"Pseudotsuga",
|
|
9621
|
+
"Sequoia",
|
|
9622
|
+
"Sequoiadendron",
|
|
9623
|
+
"Taxodium",
|
|
9624
|
+
"Taxus",
|
|
9625
|
+
"Tsuga"
|
|
9626
|
+
])
|
|
9627
|
+
),
|
|
9628
|
+
value: image("conifer")
|
|
9629
|
+
},
|
|
9630
|
+
{
|
|
9631
|
+
when: named([
|
|
9632
|
+
"Acacia",
|
|
9633
|
+
"Albizia",
|
|
9634
|
+
"Arbutus",
|
|
9635
|
+
"Bursera",
|
|
9636
|
+
"Ceratonia",
|
|
9637
|
+
"Delonix",
|
|
9638
|
+
"Ficus",
|
|
9639
|
+
"Gleditsia",
|
|
9640
|
+
"Jacaranda",
|
|
9641
|
+
"Olea",
|
|
9642
|
+
"Quercus",
|
|
9643
|
+
"Robinia",
|
|
9644
|
+
"Schinus",
|
|
9645
|
+
"Sophora",
|
|
9646
|
+
"Styphnolobium",
|
|
9647
|
+
"Tamarix"
|
|
9648
|
+
]),
|
|
9649
|
+
value: image("open")
|
|
9650
|
+
},
|
|
9651
|
+
{
|
|
9652
|
+
when: named([
|
|
9653
|
+
"Betula",
|
|
9654
|
+
"Celtis",
|
|
9655
|
+
"Fraxinus",
|
|
9656
|
+
"Ginkgo",
|
|
9657
|
+
"Liquidambar",
|
|
9658
|
+
"Liriodendron",
|
|
9659
|
+
"Magnolia",
|
|
9660
|
+
"Platanus",
|
|
9661
|
+
"Populus",
|
|
9662
|
+
"Pyrus",
|
|
9663
|
+
"Ulmus",
|
|
9664
|
+
"Zelkova"
|
|
9665
|
+
]),
|
|
9666
|
+
value: image("tall")
|
|
9667
|
+
},
|
|
9668
|
+
{
|
|
9669
|
+
when: named([
|
|
9670
|
+
"Acer",
|
|
9671
|
+
"Aesculus",
|
|
9672
|
+
"Carpinus",
|
|
9673
|
+
"Castanea",
|
|
9674
|
+
"Catalpa",
|
|
9675
|
+
"Cercis",
|
|
9676
|
+
"Citrus",
|
|
9677
|
+
"Fagus",
|
|
9678
|
+
"Lagerstroemia",
|
|
9679
|
+
"Malus",
|
|
9680
|
+
"Melia",
|
|
9681
|
+
"Morus",
|
|
9682
|
+
"Prunus",
|
|
9683
|
+
"Sorbus",
|
|
9684
|
+
"Tilia"
|
|
9685
|
+
]),
|
|
9686
|
+
value: image("round")
|
|
9687
|
+
}
|
|
9688
|
+
],
|
|
9689
|
+
broadleaf
|
|
9690
|
+
);
|
|
9691
|
+
var diameter = expr10.toNumber(expr10.get(field9("diameterCrown")), 0);
|
|
9692
|
+
var crownFactor = expr10.divide(
|
|
9693
|
+
expr10.max(3, expr10.min(18, expr10.case([{ when: expr10.gt(diameter, 0), value: diameter }], 7))),
|
|
9694
|
+
7
|
|
9695
|
+
);
|
|
9696
|
+
var size = (divisor) => expr10.interpolate({ kind: "exponential", base: 2 }, expr10.zoom(), [
|
|
9697
|
+
[15, expr10.multiply(crownFactor, 2.1 / divisor)],
|
|
9698
|
+
[22, expr10.multiply(crownFactor, 268.8 / divisor)]
|
|
9699
|
+
]);
|
|
9700
|
+
var streetsTrees = withRenderStack8(
|
|
9701
|
+
vegetation6({
|
|
9702
|
+
// Models stay 3D in overhead and tilted views; unsupported renderers omit trees.
|
|
9703
|
+
mode: "3d",
|
|
9704
|
+
fallback: "none",
|
|
9705
|
+
visible: true,
|
|
9706
|
+
flat: {
|
|
9707
|
+
minZoom: 15.5,
|
|
9708
|
+
color: token6.color("vegetation.tree.broadleaf.a"),
|
|
9709
|
+
radius: size(2),
|
|
9710
|
+
opacity: zoom9.linear([
|
|
9711
|
+
[15.5, 0],
|
|
9712
|
+
[16, 0.12]
|
|
9713
|
+
]),
|
|
9714
|
+
blur: 0.7,
|
|
9715
|
+
pitchAlignment: "map",
|
|
9716
|
+
pitchScale: "map",
|
|
9717
|
+
strokeOpacity: 0
|
|
9718
|
+
},
|
|
9719
|
+
threeDimensional: {
|
|
9720
|
+
barkColor: token6.color("vegetation.tree.bark"),
|
|
9721
|
+
broadleafColors: ["a", "b", "c", "d"].map(
|
|
9722
|
+
(shade) => token6.color(`vegetation.tree.broadleaf.${shade}`)
|
|
9723
|
+
),
|
|
9724
|
+
coniferColors: ["a", "b", "c"].map(
|
|
9725
|
+
(shade) => token6.color(`vegetation.tree.conifer.${shade}`)
|
|
9726
|
+
),
|
|
9727
|
+
palmColors: ["a", "b", "c"].map((shade) => token6.color(`vegetation.tree.broadleaf.${shade}`)),
|
|
9728
|
+
crownScale: 1,
|
|
9729
|
+
heightScale: 1,
|
|
9730
|
+
finish: "faceted",
|
|
9731
|
+
edges: 0,
|
|
9732
|
+
forms: {
|
|
9733
|
+
round: { models: ["streets-tree-round"] },
|
|
9734
|
+
open: { models: ["streets-tree-open"] },
|
|
9735
|
+
tall: { models: ["streets-tree-tall"] },
|
|
9736
|
+
conifer: { models: ["streets-tree-conifer"] },
|
|
9737
|
+
columnar: { models: ["streets-tree-columnar"] },
|
|
9738
|
+
palm: { models: ["streets-tree-palm-feather", "streets-tree-palm-fan"] }
|
|
9739
|
+
}
|
|
9740
|
+
}
|
|
9741
|
+
}),
|
|
9742
|
+
{
|
|
9743
|
+
crowns: renderPass8({
|
|
9744
|
+
placement: { above: "vegetation.trees" },
|
|
9745
|
+
// Inherit the optional tree binding from the anchor; generic OpenMapTiles omits it.
|
|
9746
|
+
requirements: ["vegetation"],
|
|
9747
|
+
renderer: "symbol",
|
|
9748
|
+
selector: { kind: "geometry", geometry: "point" },
|
|
9749
|
+
style: {
|
|
9750
|
+
minZoom: 15.5,
|
|
9751
|
+
icon: {
|
|
9752
|
+
image: crownImage,
|
|
9753
|
+
size: size(52),
|
|
9754
|
+
opacity: zoom9.linear([
|
|
9755
|
+
[15.5, 0],
|
|
9756
|
+
[16, 0.88],
|
|
9757
|
+
[18, 1]
|
|
9758
|
+
]),
|
|
9759
|
+
rotate: expr10.modulo(expr10.multiply(seed, 137.508), 360),
|
|
9760
|
+
rotationAlignment: "map",
|
|
9761
|
+
pitchAlignment: "map",
|
|
9762
|
+
allowOverlap: true,
|
|
9763
|
+
ignorePlacement: true,
|
|
9764
|
+
padding: 0
|
|
9765
|
+
}
|
|
9766
|
+
}
|
|
9767
|
+
})
|
|
9768
|
+
}
|
|
9769
|
+
);
|
|
9770
|
+
|
|
9060
9771
|
// src/official/streets.ts
|
|
9061
9772
|
var streetsDetailPalette = {
|
|
9062
9773
|
greenspace: streetsVisual.landcover.greenspace,
|
|
@@ -9134,7 +9845,7 @@ var streetsGlobalLandcoverPalette = {
|
|
|
9134
9845
|
trees: streetsVisual.globalLandcover.trees,
|
|
9135
9846
|
urban: streetsVisual.globalLandcover.urban
|
|
9136
9847
|
};
|
|
9137
|
-
var globalLandcoverOpacity =
|
|
9848
|
+
var globalLandcoverOpacity = zoom10.linear([
|
|
9138
9849
|
// At world and country zooms the source classes are the terrain palette.
|
|
9139
9850
|
// Blending them into the neutral land token desaturates forests and crops
|
|
9140
9851
|
// into one pale wash, so keep the authored colours intact until the detailed
|
|
@@ -9149,39 +9860,54 @@ var globalLandcoverOpacity = zoom9.linear([
|
|
|
9149
9860
|
[10.75, 0.25],
|
|
9150
9861
|
[11, 0]
|
|
9151
9862
|
]);
|
|
9152
|
-
var detailedLandcoverOpacity =
|
|
9863
|
+
var detailedLandcoverOpacity = zoom10.linear([
|
|
9153
9864
|
[7, 0],
|
|
9154
9865
|
[8, 0.35],
|
|
9155
9866
|
[9, 0.7],
|
|
9156
9867
|
[10, 0.9],
|
|
9157
9868
|
[11, 1]
|
|
9158
9869
|
]);
|
|
9159
|
-
var detailedUrbanGreenOpacity =
|
|
9870
|
+
var detailedUrbanGreenOpacity = zoom10.linear([
|
|
9160
9871
|
[8, 0],
|
|
9161
9872
|
[9, 1]
|
|
9162
9873
|
]);
|
|
9163
|
-
var protectedAreaOpacity =
|
|
9874
|
+
var protectedAreaOpacity = zoom10.linear([
|
|
9164
9875
|
[7, 0],
|
|
9165
9876
|
[8, 0.28],
|
|
9166
9877
|
[9, 0.32]
|
|
9167
9878
|
]);
|
|
9168
|
-
|
|
9169
|
-
|
|
9170
|
-
|
|
9171
|
-
|
|
9172
|
-
|
|
9173
|
-
|
|
9174
|
-
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
|
|
9178
|
-
|
|
9179
|
-
|
|
9180
|
-
}
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9879
|
+
function streetsPoiStyle(category) {
|
|
9880
|
+
const filterRank = expr11.toNumber(expr11.get(field10("poiFilterRank")), 6);
|
|
9881
|
+
const sizeRank = expr11.toNumber(expr11.get(field10("poiSizeRank")), 17);
|
|
9882
|
+
const featured = expr11.all(expr11.lte(filterRank, 0), expr11.lt(sizeRank, 5));
|
|
9883
|
+
const featuredDetail = expr11.all(expr11.lte(filterRank, 1), expr11.lt(sizeRank, 13));
|
|
9884
|
+
return {
|
|
9885
|
+
icon: {
|
|
9886
|
+
image: streetsPoiImage(),
|
|
9887
|
+
// Keep the authored 24px cell at native scale. Fractional resizing
|
|
9888
|
+
// softens the small pictogram strokes even with a correct 2x atlas.
|
|
9889
|
+
// The SVG itself fits the Maki artwork into a centered 12px box.
|
|
9890
|
+
size: 1
|
|
9891
|
+
},
|
|
9892
|
+
text: {
|
|
9893
|
+
font: streetsVisual.font.default,
|
|
9894
|
+
haloWidth: 1,
|
|
9895
|
+
haloBlur: 0,
|
|
9896
|
+
letterSpacing: 0.01,
|
|
9897
|
+
lineHeight: 1.2,
|
|
9898
|
+
maxWidth: 9,
|
|
9899
|
+
anchor: "top",
|
|
9900
|
+
offset: [0, 0.8],
|
|
9901
|
+
padding: zoom10.linear([
|
|
9902
|
+
[16, 6],
|
|
9903
|
+
[17, 4]
|
|
9904
|
+
]),
|
|
9905
|
+
size: category === "transport" ? 13 : expr11.step(expr11.zoom(), expr11.case([{ when: featured, value: 18 }], 13), [
|
|
9906
|
+
[17, expr11.case([{ when: featuredDetail, value: 18 }], 13)]
|
|
9907
|
+
])
|
|
9908
|
+
}
|
|
9909
|
+
};
|
|
9910
|
+
}
|
|
9185
9911
|
var mapboxBuildingPalette = {
|
|
9186
9912
|
fill: streetsVisual.building.fill,
|
|
9187
9913
|
outline: streetsVisual.building.outline
|
|
@@ -9210,7 +9936,7 @@ function cityRoadColorStops(minZoom, cityColor, detailedColor) {
|
|
|
9210
9936
|
function cityRoadCasingColorStops(minZoom) {
|
|
9211
9937
|
return cityRoadColorStops(minZoom, streetsDetailPalette.roadCasing, mapboxRoadPalette.roadCasing);
|
|
9212
9938
|
}
|
|
9213
|
-
var roadBorderZoom =
|
|
9939
|
+
var roadBorderZoom = 15;
|
|
9214
9940
|
var roadBorderTotalWidth = 1;
|
|
9215
9941
|
var roadWidthInterpolationBase = 1.5;
|
|
9216
9942
|
var roadSurfaceColor = mapboxRoadPalette.road;
|
|
@@ -9230,94 +9956,78 @@ var visibleBuilding3dSelector = {
|
|
|
9230
9956
|
{ field: "hide3d", kind: "compare", operator: "ne", value: "1" }
|
|
9231
9957
|
]
|
|
9232
9958
|
};
|
|
9233
|
-
var
|
|
9959
|
+
var groundedBuilding3dSelector = {
|
|
9960
|
+
kind: "all",
|
|
9961
|
+
selectors: [
|
|
9962
|
+
visibleBuilding3dSelector,
|
|
9963
|
+
{
|
|
9964
|
+
field: "renderMinHeight",
|
|
9965
|
+
coerce: "number",
|
|
9966
|
+
fallback: 0,
|
|
9967
|
+
kind: "compare",
|
|
9968
|
+
operator: "lte",
|
|
9969
|
+
value: 0
|
|
9970
|
+
},
|
|
9971
|
+
{
|
|
9972
|
+
kind: "any",
|
|
9973
|
+
selectors: [
|
|
9974
|
+
{ kind: "not", selector: { kind: "has", field: "renderHeight" } },
|
|
9975
|
+
{
|
|
9976
|
+
field: "renderHeight",
|
|
9977
|
+
coerce: "number",
|
|
9978
|
+
fallback: 5,
|
|
9979
|
+
kind: "compare",
|
|
9980
|
+
operator: "gt",
|
|
9981
|
+
value: 0
|
|
9982
|
+
}
|
|
9983
|
+
]
|
|
9984
|
+
}
|
|
9985
|
+
]
|
|
9986
|
+
};
|
|
9987
|
+
var building3dHeight = expr11.max(
|
|
9234
9988
|
0,
|
|
9235
|
-
|
|
9989
|
+
expr11.toNumber(expr11.coalesce(expr11.get(field10("renderHeight")), 5), 5)
|
|
9236
9990
|
);
|
|
9237
|
-
var building3dBase =
|
|
9991
|
+
var building3dBase = expr11.max(
|
|
9238
9992
|
0,
|
|
9239
|
-
|
|
9240
|
-
|
|
9993
|
+
expr11.min(
|
|
9994
|
+
expr11.toNumber(expr11.coalesce(expr11.get(field10("renderMinHeight")), 0), 0),
|
|
9241
9995
|
building3dHeight
|
|
9242
9996
|
)
|
|
9243
9997
|
);
|
|
9244
|
-
var circularRoadRadiusAtZ15 =
|
|
9245
|
-
var circularRoadRadiusMetres =
|
|
9246
|
-
var circularRoadOuterRadiusMetres =
|
|
9247
|
-
|
|
9998
|
+
var circularRoadRadiusAtZ15 = expr11.toNumber(expr11.get(field10("circularRadiusAtZoom15")), 0);
|
|
9999
|
+
var circularRoadRadiusMetres = expr11.toNumber(expr11.get(field10("circularRadiusMeters")), 0);
|
|
10000
|
+
var circularRoadOuterRadiusMetres = expr11.toNumber(
|
|
10001
|
+
expr11.get(field10("circularOuterRadiusMeters")),
|
|
9248
10002
|
0
|
|
9249
10003
|
);
|
|
9250
|
-
var circularRoadInnerRadiusMetres =
|
|
9251
|
-
|
|
10004
|
+
var circularRoadInnerRadiusMetres = expr11.toNumber(
|
|
10005
|
+
expr11.get(field10("circularInnerRadiusMeters")),
|
|
9252
10006
|
0
|
|
9253
10007
|
);
|
|
9254
|
-
var
|
|
9255
|
-
|
|
9256
|
-
|
|
9257
|
-
|
|
9258
|
-
|
|
9259
|
-
var roadNeedsControlledSurfaceButtCap = expr9.all(
|
|
9260
|
-
expr9.match(
|
|
9261
|
-
expr9.get(field8("brunnel")),
|
|
9262
|
-
[{ labels: ["tunnel", "bridge"], value: false }],
|
|
9263
|
-
true
|
|
9264
|
-
),
|
|
9265
|
-
expr9.eq(expr9.get(field8("foot")), "no"),
|
|
9266
|
-
expr9.match(
|
|
9267
|
-
expr9.get(field8("class")),
|
|
9268
|
-
[
|
|
9269
|
-
{
|
|
9270
|
-
labels: [
|
|
9271
|
-
"motorway",
|
|
9272
|
-
"trunk",
|
|
9273
|
-
"primary",
|
|
9274
|
-
"motorway_construction",
|
|
9275
|
-
"trunk_construction",
|
|
9276
|
-
"primary_construction"
|
|
9277
|
-
],
|
|
9278
|
-
value: true
|
|
9279
|
-
}
|
|
9280
|
-
],
|
|
9281
|
-
false
|
|
9282
|
-
)
|
|
9283
|
-
);
|
|
9284
|
-
var roadLineCap = expr9.step(
|
|
9285
|
-
expr9.zoom(),
|
|
9286
|
-
expr9.case([{ when: roadNeedsStructuralButtCap, value: "butt" }], "round"),
|
|
9287
|
-
[
|
|
9288
|
-
[
|
|
9289
|
-
17,
|
|
9290
|
-
expr9.case(
|
|
9291
|
-
[
|
|
9292
|
-
{
|
|
9293
|
-
when: expr9.any(roadNeedsStructuralButtCap, roadNeedsControlledSurfaceButtCap),
|
|
9294
|
-
value: "butt"
|
|
9295
|
-
}
|
|
9296
|
-
],
|
|
9297
|
-
"round"
|
|
9298
|
-
)
|
|
9299
|
-
]
|
|
9300
|
-
]
|
|
9301
|
-
);
|
|
9302
|
-
var roadLineJoin = zoom9.step([
|
|
10008
|
+
var roadLineCap = zoom10.step([
|
|
10009
|
+
[3, "butt"],
|
|
10010
|
+
[14, "round"]
|
|
10011
|
+
]);
|
|
10012
|
+
var roadLineJoin = zoom10.step([
|
|
9303
10013
|
[3, "miter"],
|
|
9304
10014
|
[14, "round"]
|
|
9305
10015
|
]);
|
|
9306
|
-
var pathLineCap =
|
|
10016
|
+
var pathLineCap = zoom10.step([
|
|
9307
10017
|
[12, "butt"],
|
|
9308
10018
|
[16, "round"]
|
|
9309
10019
|
]);
|
|
9310
|
-
var pathLineJoin =
|
|
10020
|
+
var pathLineJoin = zoom10.step([
|
|
9311
10021
|
[12, "miter"],
|
|
9312
10022
|
[16, "round"]
|
|
9313
10023
|
]);
|
|
9314
|
-
var hasPhysicalCircularRadii =
|
|
9315
|
-
|
|
9316
|
-
|
|
9317
|
-
|
|
10024
|
+
var hasPhysicalCircularRadii = expr11.all(
|
|
10025
|
+
expr11.gt(circularRoadRadiusMetres, 0),
|
|
10026
|
+
expr11.gt(circularRoadOuterRadiusMetres, circularRoadInnerRadiusMetres),
|
|
10027
|
+
expr11.gte(circularRoadInnerRadiusMetres, 0)
|
|
9318
10028
|
);
|
|
9319
|
-
var circularRoadBaseWidth =
|
|
9320
|
-
|
|
10029
|
+
var circularRoadBaseWidth = expr11.match(
|
|
10030
|
+
expr11.coalesce(expr11.get(field10("class")), "minor"),
|
|
9321
10031
|
[
|
|
9322
10032
|
{ labels: "motorway", value: 6 },
|
|
9323
10033
|
{ labels: "trunk", value: 5.5 },
|
|
@@ -9333,39 +10043,39 @@ var circularRoadRadius = circularRoadInnerRadius(false);
|
|
|
9333
10043
|
var circularRoadCasingRadius = circularRoadInnerRadius(true);
|
|
9334
10044
|
var circularRoadWidth = circularRoadStrokeWidth(false);
|
|
9335
10045
|
var circularRoadCasingWidth = circularRoadStrokeWidth(true);
|
|
9336
|
-
var expresswayWidthScale = 1
|
|
10046
|
+
var expresswayWidthScale = 1;
|
|
9337
10047
|
var tunnelBorderDash = [3, 3];
|
|
9338
10048
|
var tunnelBorderWidth = 1;
|
|
9339
|
-
function
|
|
10049
|
+
function circularRoadFallbackScale(level) {
|
|
9340
10050
|
const interpolationBase = 1.35;
|
|
9341
10051
|
const progress = (interpolationBase ** (level - 15) - 1) / (interpolationBase ** (22 - 15) - 1);
|
|
9342
10052
|
return 1 + progress * 1.2;
|
|
9343
10053
|
}
|
|
9344
10054
|
function circularRoadWidthAtLevel(level) {
|
|
9345
|
-
const scale =
|
|
9346
|
-
return level === 15 ? circularRoadBaseWidth :
|
|
10055
|
+
const scale = circularRoadFallbackScale(level);
|
|
10056
|
+
return level === 15 ? circularRoadBaseWidth : expr11.multiply(circularRoadBaseWidth, scale);
|
|
9347
10057
|
}
|
|
9348
10058
|
function circularRoadCenterlineRadiusAtLevel(level) {
|
|
9349
|
-
return level === 15 ? circularRoadRadiusAtZ15 :
|
|
10059
|
+
return level === 15 ? circularRoadRadiusAtZ15 : expr11.multiply(circularRoadRadiusAtZ15, 2 ** (level - 15));
|
|
9350
10060
|
}
|
|
9351
10061
|
function circularRoadInnerRadiusAtLevel(level, casing) {
|
|
9352
10062
|
const centerlineRadius = circularRoadCenterlineRadiusAtLevel(level);
|
|
9353
|
-
const physicalInnerRadius =
|
|
10063
|
+
const physicalInnerRadius = expr11.multiply(
|
|
9354
10064
|
centerlineRadius,
|
|
9355
|
-
|
|
10065
|
+
expr11.divide(circularRoadInnerRadiusMetres, circularRoadRadiusMetres)
|
|
9356
10066
|
);
|
|
9357
|
-
const fallbackInnerRadius =
|
|
10067
|
+
const fallbackInnerRadius = expr11.subtract(
|
|
9358
10068
|
centerlineRadius,
|
|
9359
|
-
|
|
10069
|
+
expr11.divide(circularRoadWidthAtLevel(level), 2)
|
|
9360
10070
|
);
|
|
9361
|
-
const innerRadius =
|
|
10071
|
+
const innerRadius = expr11.case(
|
|
9362
10072
|
[{ when: hasPhysicalCircularRadii, value: physicalInnerRadius }],
|
|
9363
10073
|
fallbackInnerRadius
|
|
9364
10074
|
);
|
|
9365
|
-
return
|
|
10075
|
+
return expr11.max(0, casing ? expr11.subtract(innerRadius, roadBorderTotalWidth / 2) : innerRadius);
|
|
9366
10076
|
}
|
|
9367
10077
|
function circularRoadInnerRadius(casing) {
|
|
9368
|
-
return
|
|
10078
|
+
return expr11.interpolate({ kind: "exponential", base: 2 }, expr11.zoom(), [
|
|
9369
10079
|
[15, circularRoadInnerRadiusAtLevel(15, casing)],
|
|
9370
10080
|
[16, circularRoadInnerRadiusAtLevel(16, casing)],
|
|
9371
10081
|
[17, circularRoadInnerRadiusAtLevel(17, casing)],
|
|
@@ -9373,28 +10083,30 @@ function circularRoadInnerRadius(casing) {
|
|
|
9373
10083
|
[19, circularRoadInnerRadiusAtLevel(19, casing)],
|
|
9374
10084
|
[20, circularRoadInnerRadiusAtLevel(20, casing)],
|
|
9375
10085
|
[21, circularRoadInnerRadiusAtLevel(21, casing)],
|
|
9376
|
-
[22, circularRoadInnerRadiusAtLevel(22, casing)]
|
|
10086
|
+
[22, circularRoadInnerRadiusAtLevel(22, casing)],
|
|
10087
|
+
[23, circularRoadInnerRadiusAtLevel(23, casing)],
|
|
10088
|
+
[24, circularRoadInnerRadiusAtLevel(24, casing)]
|
|
9377
10089
|
]);
|
|
9378
10090
|
}
|
|
9379
10091
|
function circularRoadStrokeWidthAtLevel(level, casing) {
|
|
9380
10092
|
const fallbackWidth = circularRoadWidthAtLevel(level);
|
|
9381
10093
|
const centerlineRadius = circularRoadCenterlineRadiusAtLevel(level);
|
|
9382
|
-
const physicalWidth =
|
|
10094
|
+
const physicalWidth = expr11.multiply(
|
|
9383
10095
|
centerlineRadius,
|
|
9384
|
-
|
|
9385
|
-
|
|
10096
|
+
expr11.divide(
|
|
10097
|
+
expr11.subtract(circularRoadOuterRadiusMetres, circularRoadInnerRadiusMetres),
|
|
9386
10098
|
circularRoadRadiusMetres
|
|
9387
10099
|
)
|
|
9388
10100
|
);
|
|
9389
|
-
const physicalOutput = casing ?
|
|
9390
|
-
const fallbackOutput = casing ?
|
|
9391
|
-
return
|
|
10101
|
+
const physicalOutput = casing ? expr11.add(physicalWidth, roadBorderTotalWidth) : physicalWidth;
|
|
10102
|
+
const fallbackOutput = casing ? expr11.add(fallbackWidth, roadBorderTotalWidth) : fallbackWidth;
|
|
10103
|
+
return expr11.case(
|
|
9392
10104
|
[{ when: hasPhysicalCircularRadii, value: physicalOutput }],
|
|
9393
10105
|
fallbackOutput
|
|
9394
10106
|
);
|
|
9395
10107
|
}
|
|
9396
10108
|
function circularRoadStrokeWidth(casing) {
|
|
9397
|
-
return
|
|
10109
|
+
return expr11.interpolate({ kind: "exponential", base: 2 }, expr11.zoom(), [
|
|
9398
10110
|
[15, circularRoadStrokeWidthAtLevel(15, casing)],
|
|
9399
10111
|
[16, circularRoadStrokeWidthAtLevel(16, casing)],
|
|
9400
10112
|
[17, circularRoadStrokeWidthAtLevel(17, casing)],
|
|
@@ -9402,20 +10114,22 @@ function circularRoadStrokeWidth(casing) {
|
|
|
9402
10114
|
[19, circularRoadStrokeWidthAtLevel(19, casing)],
|
|
9403
10115
|
[20, circularRoadStrokeWidthAtLevel(20, casing)],
|
|
9404
10116
|
[21, circularRoadStrokeWidthAtLevel(21, casing)],
|
|
9405
|
-
[22, circularRoadStrokeWidthAtLevel(22, casing)]
|
|
10117
|
+
[22, circularRoadStrokeWidthAtLevel(22, casing)],
|
|
10118
|
+
[23, circularRoadStrokeWidthAtLevel(23, casing)],
|
|
10119
|
+
[24, circularRoadStrokeWidthAtLevel(24, casing)]
|
|
9406
10120
|
]);
|
|
9407
10121
|
}
|
|
9408
10122
|
function roadWidth(widths, oneWayScale, rampWidths) {
|
|
9409
10123
|
const augmentedWidths = [...widths].sort(([left], [right]) => left - right);
|
|
9410
10124
|
const widthOutput = (level, width) => {
|
|
9411
|
-
const ordinaryWidth = oneWayScale === 1 ? width :
|
|
9412
|
-
|
|
10125
|
+
const ordinaryWidth = oneWayScale === 1 ? width : expr11.match(
|
|
10126
|
+
expr11.get(field10("oneway")),
|
|
9413
10127
|
[{ labels: [1, -1], value: width * oneWayScale }],
|
|
9414
10128
|
width
|
|
9415
10129
|
);
|
|
9416
10130
|
const rampWidth = rampWidths?.find(([rampLevel]) => rampLevel === level)?.[1];
|
|
9417
|
-
const surfaceWidth = rampWidth === void 0 ? ordinaryWidth :
|
|
9418
|
-
[{ when:
|
|
10131
|
+
const surfaceWidth = rampWidth === void 0 ? ordinaryWidth : expr11.case(
|
|
10132
|
+
[{ when: expr11.eq(expr11.get(field10("ramp")), 1), value: rampWidth }],
|
|
9419
10133
|
ordinaryWidth
|
|
9420
10134
|
);
|
|
9421
10135
|
return surfaceWidth;
|
|
@@ -9425,35 +10139,26 @@ function roadWidth(widths, oneWayScale, rampWidths) {
|
|
|
9425
10139
|
);
|
|
9426
10140
|
const firstWidthStop = widthStops[0];
|
|
9427
10141
|
if (firstWidthStop === void 0) throw new Error("Road widths require at least one zoom stop.");
|
|
9428
|
-
return
|
|
10142
|
+
return expr11.interpolate({ base: roadWidthInterpolationBase, kind: "exponential" }, expr11.zoom(), [
|
|
9429
10143
|
firstWidthStop,
|
|
9430
10144
|
...widthStops.slice(1)
|
|
9431
10145
|
]);
|
|
9432
10146
|
}
|
|
9433
|
-
function
|
|
9434
|
-
return
|
|
9435
|
-
|
|
9436
|
-
|
|
9437
|
-
|
|
9438
|
-
|
|
9439
|
-
[
|
|
9440
|
-
[15, 0.75],
|
|
9441
|
-
[18, 1],
|
|
9442
|
-
[22, 1.5]
|
|
10147
|
+
function roadCasingWidth(major) {
|
|
10148
|
+
return expr11.interpolate({ kind: "exponential", base: 1.5 }, expr11.zoom(), [
|
|
10149
|
+
[
|
|
10150
|
+
14,
|
|
10151
|
+
major ? expr11.case([{ when: expr11.eq(expr11.get(field10("ramp")), 1), value: 0.8 }], 1) : 0.8
|
|
10152
|
+
],
|
|
10153
|
+
[22, 2]
|
|
9443
10154
|
]);
|
|
9444
10155
|
}
|
|
9445
|
-
var
|
|
9446
|
-
[
|
|
9447
|
-
[15.5, tunnelBorderWidth],
|
|
9448
|
-
[22, tunnelBorderWidth]
|
|
9449
|
-
]);
|
|
9450
|
-
var pathCasingStrokeWidth = zoom9.exponential(1.5, [
|
|
9451
|
-
[15, 0],
|
|
9452
|
-
[15.5, 0.5],
|
|
10156
|
+
var pathCasingStrokeWidth = zoom10.exponential(1.5, [
|
|
10157
|
+
[14, 0.5],
|
|
9453
10158
|
[18, 1],
|
|
9454
10159
|
[22, 2]
|
|
9455
10160
|
]);
|
|
9456
|
-
var pathTunnelCasingWidth =
|
|
10161
|
+
var pathTunnelCasingWidth = zoom10.linear([
|
|
9457
10162
|
[15, 0],
|
|
9458
10163
|
[15.5, tunnelBorderWidth],
|
|
9459
10164
|
[22, tunnelBorderWidth]
|
|
@@ -9463,62 +10168,15 @@ var mapboxPathWidthStops = [
|
|
|
9463
10168
|
[18, 6],
|
|
9464
10169
|
[22, 80]
|
|
9465
10170
|
];
|
|
9466
|
-
var
|
|
9467
|
-
|
|
9468
|
-
[15,
|
|
9469
|
-
[16,
|
|
9470
|
-
[18, 2],
|
|
9471
|
-
[22, 20]
|
|
9472
|
-
];
|
|
9473
|
-
var unpavedPathCondition = expr9.eq(expr9.get(field8("surface")), "unpaved");
|
|
9474
|
-
var contextualPathLineWidth = expr9.interpolate(
|
|
9475
|
-
{ base: 1.5, kind: "exponential" },
|
|
9476
|
-
expr9.zoom(),
|
|
9477
|
-
[
|
|
9478
|
-
[12, expr9.case([{ when: unpavedPathCondition, value: 0 }], 0)],
|
|
9479
|
-
[15, expr9.case([{ when: unpavedPathCondition, value: 0.75 }], 1)],
|
|
9480
|
-
[16, expr9.case([{ when: unpavedPathCondition, value: 1 }], 1.5)],
|
|
9481
|
-
[17, expr9.case([{ when: unpavedPathCondition, value: 1.4 }], 3)],
|
|
9482
|
-
[18, expr9.case([{ when: unpavedPathCondition, value: 2 }], 6)],
|
|
9483
|
-
[19, expr9.case([{ when: unpavedPathCondition, value: 3.7 }], 12)],
|
|
9484
|
-
[20, expr9.case([{ when: unpavedPathCondition, value: 7.5 }], 22)],
|
|
9485
|
-
[22, expr9.case([{ when: unpavedPathCondition, value: 20 }], 60)]
|
|
9486
|
-
]
|
|
9487
|
-
);
|
|
9488
|
-
var contextualPathColor = expr9.interpolate({ kind: "linear" }, expr9.zoom(), [
|
|
9489
|
-
[
|
|
9490
|
-
15,
|
|
9491
|
-
expr9.case(
|
|
9492
|
-
[{ when: unpavedPathCondition, value: streetsDetailPalette.parkPath }],
|
|
9493
|
-
mapboxRoadPalette.pathAtZ15
|
|
9494
|
-
)
|
|
9495
|
-
],
|
|
9496
|
-
[
|
|
9497
|
-
16,
|
|
9498
|
-
expr9.case(
|
|
9499
|
-
[{ when: unpavedPathCondition, value: streetsDetailPalette.parkPath }],
|
|
9500
|
-
mapboxRoadPalette.pathFromZ16
|
|
9501
|
-
)
|
|
9502
|
-
]
|
|
10171
|
+
var contextualPathLineWidth = zoom10.exponential(1.5, mapboxPathWidthStops);
|
|
10172
|
+
var contextualPathColor = expr11.interpolate({ kind: "linear" }, expr11.zoom(), [
|
|
10173
|
+
[15, mapboxRoadPalette.pathAtZ15],
|
|
10174
|
+
[16, mapboxRoadPalette.pathFromZ16]
|
|
9503
10175
|
]);
|
|
9504
|
-
var
|
|
9505
|
-
|
|
9506
|
-
mapboxRoadPalette.pathCasing
|
|
9507
|
-
);
|
|
9508
|
-
var contextualPathCasingWidth = expr9.interpolate(
|
|
9509
|
-
{ base: 1.5, kind: "exponential" },
|
|
9510
|
-
expr9.zoom(),
|
|
9511
|
-
[
|
|
9512
|
-
[15, expr9.case([{ when: unpavedPathCondition, value: 0 }], 0)],
|
|
9513
|
-
[15.5, expr9.case([{ when: unpavedPathCondition, value: 0 }], 0.5)],
|
|
9514
|
-
[18, expr9.case([{ when: unpavedPathCondition, value: 0 }], 1)],
|
|
9515
|
-
[22, expr9.case([{ when: unpavedPathCondition, value: 0 }], 2)]
|
|
9516
|
-
]
|
|
9517
|
-
);
|
|
9518
|
-
var googleParkPathClasses = ["pathway", "footway", "steps", "pedestrian"];
|
|
9519
|
-
function googleParkPathRefinements() {
|
|
10176
|
+
var parkPathClasses = ["pathway", "footway", "steps", "pedestrian"];
|
|
10177
|
+
function parkPathRefinements() {
|
|
9520
10178
|
return Object.fromEntries(
|
|
9521
|
-
|
|
10179
|
+
parkPathClasses.flatMap(
|
|
9522
10180
|
(roadClass) => ["surface", "bridge"].flatMap((structure) => [
|
|
9523
10181
|
[
|
|
9524
10182
|
`${roadClass}-${structure}-fill`,
|
|
@@ -9526,6 +10184,7 @@ function googleParkPathRefinements() {
|
|
|
9526
10184
|
renderer: "line",
|
|
9527
10185
|
style: {
|
|
9528
10186
|
color: roadClass === "steps" ? mapboxRoadPalette.pathFromZ16 : contextualPathColor,
|
|
10187
|
+
minZoom: roadClass === "steps" ? 14 : structure === "surface" ? 12 : roadClass === "pedestrian" ? 13 : 14,
|
|
9529
10188
|
...roadClass === "steps" ? { dash: [0.18, 0.15] } : {},
|
|
9530
10189
|
width: contextualPathLineWidth
|
|
9531
10190
|
},
|
|
@@ -9537,9 +10196,10 @@ function googleParkPathRefinements() {
|
|
|
9537
10196
|
refineRenderTarget3({
|
|
9538
10197
|
renderer: "line",
|
|
9539
10198
|
style: {
|
|
9540
|
-
color:
|
|
10199
|
+
color: mapboxRoadPalette.pathCasing,
|
|
10200
|
+
minZoom: roadClass === "steps" || roadClass === "pedestrian" && structure === "surface" ? 14 : 15,
|
|
9541
10201
|
gapWidth: roadClass === "steps" ? 0 : contextualPathLineWidth,
|
|
9542
|
-
width: roadClass === "steps" ? contextualPathLineWidth :
|
|
10202
|
+
width: roadClass === "steps" ? contextualPathLineWidth : pathCasingStrokeWidth
|
|
9543
10203
|
},
|
|
9544
10204
|
target: `roads.classes.${roadClass}.${structure}.casing`
|
|
9545
10205
|
})
|
|
@@ -9589,7 +10249,7 @@ var namedCitySelector = {
|
|
|
9589
10249
|
};
|
|
9590
10250
|
function streetsBoundaryRenderStack() {
|
|
9591
10251
|
return {
|
|
9592
|
-
admin2Background:
|
|
10252
|
+
admin2Background: renderPass9({
|
|
9593
10253
|
placement: { below: "boundaries.admin4" },
|
|
9594
10254
|
feature: "boundary",
|
|
9595
10255
|
renderer: "line",
|
|
@@ -9615,23 +10275,23 @@ function streetsBoundaryRenderStack() {
|
|
|
9615
10275
|
]
|
|
9616
10276
|
},
|
|
9617
10277
|
style: {
|
|
9618
|
-
blur:
|
|
10278
|
+
blur: zoom10.linear([
|
|
9619
10279
|
[3, 0],
|
|
9620
10280
|
[12, 2]
|
|
9621
10281
|
]),
|
|
9622
10282
|
color: streetsVisual.boundary.halo,
|
|
9623
10283
|
minZoom: 1,
|
|
9624
|
-
opacity:
|
|
10284
|
+
opacity: zoom10.linear([
|
|
9625
10285
|
[3, 0],
|
|
9626
10286
|
[4, 0.5]
|
|
9627
10287
|
]),
|
|
9628
|
-
width:
|
|
10288
|
+
width: zoom10.linear([
|
|
9629
10289
|
[3, 4],
|
|
9630
10290
|
[12, 8]
|
|
9631
10291
|
])
|
|
9632
10292
|
}
|
|
9633
10293
|
}),
|
|
9634
|
-
admin4Background:
|
|
10294
|
+
admin4Background: renderPass9({
|
|
9635
10295
|
placement: { below: "boundaries.admin4" },
|
|
9636
10296
|
feature: "boundary",
|
|
9637
10297
|
renderer: "line",
|
|
@@ -9657,17 +10317,17 @@ function streetsBoundaryRenderStack() {
|
|
|
9657
10317
|
]
|
|
9658
10318
|
},
|
|
9659
10319
|
style: {
|
|
9660
|
-
blur:
|
|
10320
|
+
blur: zoom10.linear([
|
|
9661
10321
|
[3, 0],
|
|
9662
10322
|
[12, 1]
|
|
9663
10323
|
]),
|
|
9664
10324
|
color: streetsVisual.boundary.halo,
|
|
9665
10325
|
minZoom: 2,
|
|
9666
|
-
opacity:
|
|
10326
|
+
opacity: zoom10.linear([
|
|
9667
10327
|
[2, 0],
|
|
9668
10328
|
[4, 0.42]
|
|
9669
10329
|
]),
|
|
9670
|
-
width:
|
|
10330
|
+
width: zoom10.linear([
|
|
9671
10331
|
[3, 2.4],
|
|
9672
10332
|
[6, 3.1],
|
|
9673
10333
|
[12, 4.2]
|
|
@@ -9678,7 +10338,7 @@ function streetsBoundaryRenderStack() {
|
|
|
9678
10338
|
// module deliberately exposes only the stable admin-2/admin-4 pair.
|
|
9679
10339
|
// Standard uses the next tier as a restrained dotted municipal cue from
|
|
9680
10340
|
// metro zooms onward, so Streets adds it as an explicit semantic pass.
|
|
9681
|
-
admin6:
|
|
10341
|
+
admin6: renderPass9({
|
|
9682
10342
|
placement: { above: "boundaries.admin4" },
|
|
9683
10343
|
feature: "boundary",
|
|
9684
10344
|
renderer: "line",
|
|
@@ -9707,12 +10367,12 @@ function streetsBoundaryRenderStack() {
|
|
|
9707
10367
|
color: streetsVisual.boundary.regional,
|
|
9708
10368
|
dash: [1, 1.5],
|
|
9709
10369
|
minZoom: 8,
|
|
9710
|
-
opacity:
|
|
10370
|
+
opacity: zoom10.linear([
|
|
9711
10371
|
[8, 0],
|
|
9712
10372
|
[9, 0.5],
|
|
9713
10373
|
[12, 0.68]
|
|
9714
10374
|
]),
|
|
9715
|
-
width:
|
|
10375
|
+
width: zoom10.linear([
|
|
9716
10376
|
[8, 0.45],
|
|
9717
10377
|
[10, 0.7],
|
|
9718
10378
|
[12, 0.95]
|
|
@@ -9723,7 +10383,27 @@ function streetsBoundaryRenderStack() {
|
|
|
9723
10383
|
}
|
|
9724
10384
|
function streetsLandRenderStack() {
|
|
9725
10385
|
return {
|
|
9726
|
-
|
|
10386
|
+
// A park polygon is the base surface. Explicit lawns and meadows inside
|
|
10387
|
+
// it must remain visible instead of being painted over by the park fill.
|
|
10388
|
+
grassDetail: refineRenderTarget3({
|
|
10389
|
+
placement: { above: "land.landuse.recreation.fill" },
|
|
10390
|
+
target: "land.landcover.grass.fill"
|
|
10391
|
+
}),
|
|
10392
|
+
meadowDetail: refineRenderTarget3({
|
|
10393
|
+
placement: { above: "land.landcover.grass.fill" },
|
|
10394
|
+
target: "land.landcover.meadow.fill"
|
|
10395
|
+
}),
|
|
10396
|
+
// Mapped parking surfaces cut through broad park/forest polygons. They
|
|
10397
|
+
// remain below the road network and only fill areas present in the tiles.
|
|
10398
|
+
parkingSurface: refineRenderTarget3({
|
|
10399
|
+
placement: "above-land",
|
|
10400
|
+
target: "land.landuse.parking.fill"
|
|
10401
|
+
}),
|
|
10402
|
+
parkingOutline: refineRenderTarget3({
|
|
10403
|
+
placement: { above: "land.landuse.parking.fill" },
|
|
10404
|
+
target: "land.landuse.parking.outline"
|
|
10405
|
+
}),
|
|
10406
|
+
businessArea: renderPass9({
|
|
9727
10407
|
placement: { above: "land.landuse.residential.fill" },
|
|
9728
10408
|
feature: "landuse",
|
|
9729
10409
|
renderer: "fill",
|
|
@@ -9741,7 +10421,7 @@ function streetsBuildingRenderStack() {
|
|
|
9741
10421
|
// Keep just enough ambient separation for dense footprint clusters. The
|
|
9742
10422
|
// fill and its close-colour outline carry the 2D building hierarchy; a
|
|
9743
10423
|
// dark shadow at z15 would turn every footprint into a heavy sticker.
|
|
9744
|
-
flatShadow:
|
|
10424
|
+
flatShadow: renderPass9({
|
|
9745
10425
|
placement: { below: "buildings.flat.fill" },
|
|
9746
10426
|
feature: "building",
|
|
9747
10427
|
renderer: "line",
|
|
@@ -9749,7 +10429,7 @@ function streetsBuildingRenderStack() {
|
|
|
9749
10429
|
blur: 2,
|
|
9750
10430
|
color: buildingShadowColor,
|
|
9751
10431
|
minZoom: 15.5,
|
|
9752
|
-
opacity:
|
|
10432
|
+
opacity: zoom10.linear([
|
|
9753
10433
|
[15.5, 0],
|
|
9754
10434
|
[16, 0.03],
|
|
9755
10435
|
[18, 0.08],
|
|
@@ -9757,7 +10437,7 @@ function streetsBuildingRenderStack() {
|
|
|
9757
10437
|
]),
|
|
9758
10438
|
translate: [0.5, 0.75],
|
|
9759
10439
|
translateAnchor: "viewport",
|
|
9760
|
-
width:
|
|
10440
|
+
width: zoom10.linear([
|
|
9761
10441
|
[15.5, 0.5],
|
|
9762
10442
|
[16, 1],
|
|
9763
10443
|
[18, 3],
|
|
@@ -9765,38 +10445,69 @@ function streetsBuildingRenderStack() {
|
|
|
9765
10445
|
])
|
|
9766
10446
|
}
|
|
9767
10447
|
}),
|
|
9768
|
-
shadowSoft:
|
|
10448
|
+
shadowSoft: renderPass9({
|
|
9769
10449
|
placement: { below: "buildings.flat.fill" },
|
|
9770
10450
|
feature: "building",
|
|
9771
10451
|
renderer: "line",
|
|
9772
|
-
selector:
|
|
10452
|
+
selector: groundedBuilding3dSelector,
|
|
9773
10453
|
style: {
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
9778
|
-
|
|
9779
|
-
|
|
10454
|
+
// A diffuse contact band, not a displaced footprint. It stays attached
|
|
10455
|
+
// to the walls when the camera rotates and fades in at street detail.
|
|
10456
|
+
blur: zoom10.linear([
|
|
10457
|
+
[15.5, 2],
|
|
10458
|
+
[18, 6],
|
|
10459
|
+
[20, 10]
|
|
10460
|
+
]),
|
|
10461
|
+
cap: "round",
|
|
10462
|
+
color: streetsVisual.building.contactShadow,
|
|
10463
|
+
join: "round",
|
|
10464
|
+
minZoom: 15.5,
|
|
10465
|
+
opacity: zoom10.linear([
|
|
10466
|
+
[15.5, 0],
|
|
10467
|
+
[16.5, 0.12],
|
|
10468
|
+
[18, 0.22],
|
|
10469
|
+
[20, 0.24]
|
|
10470
|
+
]),
|
|
9780
10471
|
visibilityGroup: "building",
|
|
9781
|
-
width:
|
|
10472
|
+
width: zoom10.linear([
|
|
10473
|
+
[15.5, 1],
|
|
10474
|
+
[16.5, 4],
|
|
10475
|
+
[18, 10],
|
|
10476
|
+
[20, 18]
|
|
10477
|
+
])
|
|
9782
10478
|
}
|
|
9783
10479
|
}),
|
|
9784
|
-
shadowCore:
|
|
10480
|
+
shadowCore: renderPass9({
|
|
9785
10481
|
placement: { below: "buildings.flat.fill" },
|
|
9786
10482
|
feature: "building",
|
|
9787
|
-
renderer: "
|
|
9788
|
-
selector:
|
|
10483
|
+
renderer: "line",
|
|
10484
|
+
selector: groundedBuilding3dSelector,
|
|
9789
10485
|
style: {
|
|
9790
|
-
|
|
9791
|
-
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
10486
|
+
blur: zoom10.linear([
|
|
10487
|
+
[15.5, 0.5],
|
|
10488
|
+
[18, 1.5],
|
|
10489
|
+
[20, 2.5]
|
|
10490
|
+
]),
|
|
10491
|
+
cap: "round",
|
|
10492
|
+
color: streetsVisual.building.contactShadow,
|
|
10493
|
+
join: "round",
|
|
10494
|
+
minZoom: 15.5,
|
|
10495
|
+
opacity: zoom10.linear([
|
|
10496
|
+
[15.5, 0],
|
|
10497
|
+
[16.5, 0.08],
|
|
10498
|
+
[18, 0.16],
|
|
10499
|
+
[20, 0.18]
|
|
10500
|
+
]),
|
|
10501
|
+
visibilityGroup: "building",
|
|
10502
|
+
width: zoom10.linear([
|
|
10503
|
+
[15.5, 0.5],
|
|
10504
|
+
[16.5, 1],
|
|
10505
|
+
[18, 2.5],
|
|
10506
|
+
[20, 4]
|
|
10507
|
+
])
|
|
9797
10508
|
}
|
|
9798
10509
|
}),
|
|
9799
|
-
extrusion:
|
|
10510
|
+
extrusion: renderPass9({
|
|
9800
10511
|
placement: { above: "buildings.flat.outline" },
|
|
9801
10512
|
feature: "building",
|
|
9802
10513
|
renderer: "extrusion",
|
|
@@ -9815,7 +10526,89 @@ function streetsBuildingRenderStack() {
|
|
|
9815
10526
|
}
|
|
9816
10527
|
function streetsLabelRenderStack() {
|
|
9817
10528
|
return {
|
|
9818
|
-
|
|
10529
|
+
// Ground passes belong to Streets' label design. They do not depend on the
|
|
10530
|
+
// optional class targets emitted by a replacement roads module. Keep the
|
|
10531
|
+
// structural roads last within this group so they win road-name collisions.
|
|
10532
|
+
streetPedestrian: streetNamePass(
|
|
10533
|
+
"pedestrian",
|
|
10534
|
+
12,
|
|
10535
|
+
["path", "path_construction"],
|
|
10536
|
+
["pedestrian"]
|
|
10537
|
+
),
|
|
10538
|
+
streetPaths: streetNamePass(
|
|
10539
|
+
"path",
|
|
10540
|
+
15,
|
|
10541
|
+
["path", "path_construction"],
|
|
10542
|
+
["path", "bridleway", "corridor", "footway", "cycleway", "steps"]
|
|
10543
|
+
),
|
|
10544
|
+
streetService: streetNamePass("service", 15, [
|
|
10545
|
+
"service",
|
|
10546
|
+
"busway",
|
|
10547
|
+
"bus_guideway",
|
|
10548
|
+
"service_construction"
|
|
10549
|
+
]),
|
|
10550
|
+
streetMinor: streetNamePass("street", 13, [
|
|
10551
|
+
"minor",
|
|
10552
|
+
"residential",
|
|
10553
|
+
"unclassified",
|
|
10554
|
+
"minor_construction"
|
|
10555
|
+
]),
|
|
10556
|
+
streetTertiary: streetNamePass("major", 13, ["tertiary", "tertiary_construction"]),
|
|
10557
|
+
streetArterial: streetNamePass("major", 12, [
|
|
10558
|
+
"primary",
|
|
10559
|
+
"primary_construction",
|
|
10560
|
+
"secondary",
|
|
10561
|
+
"secondary_construction"
|
|
10562
|
+
]),
|
|
10563
|
+
streetHighway: streetNamePass("major", 10, [
|
|
10564
|
+
"motorway",
|
|
10565
|
+
"motorway_construction",
|
|
10566
|
+
"trunk",
|
|
10567
|
+
"trunk_construction"
|
|
10568
|
+
]),
|
|
10569
|
+
ferry: renderPass9({
|
|
10570
|
+
feature: "roadName",
|
|
10571
|
+
placement: "below-labels",
|
|
10572
|
+
renderer: "symbol",
|
|
10573
|
+
selector: {
|
|
10574
|
+
kind: "all",
|
|
10575
|
+
selectors: [
|
|
10576
|
+
{ field: "name", kind: "has" },
|
|
10577
|
+
{ field: "name", kind: "compare", operator: "ne", value: "" },
|
|
10578
|
+
{
|
|
10579
|
+
kind: "any",
|
|
10580
|
+
selectors: [
|
|
10581
|
+
{ field: "class", kind: "compare", operator: "eq", value: "ferry" },
|
|
10582
|
+
{ field: "subclass", kind: "compare", operator: "eq", value: "ferry" }
|
|
10583
|
+
]
|
|
10584
|
+
}
|
|
10585
|
+
]
|
|
10586
|
+
},
|
|
10587
|
+
style: {
|
|
10588
|
+
minZoom: 15,
|
|
10589
|
+
placement: "line",
|
|
10590
|
+
spacing: 250,
|
|
10591
|
+
text: {
|
|
10592
|
+
field: expr11.get(field10("name")),
|
|
10593
|
+
font: streetsVisual.font.default,
|
|
10594
|
+
color: streetsVisual.label.ferry,
|
|
10595
|
+
haloColor: streetsVisual.label.ferryHalo,
|
|
10596
|
+
haloWidth: 1,
|
|
10597
|
+
haloBlur: 1,
|
|
10598
|
+
letterSpacing: 0.01,
|
|
10599
|
+
maxAngle: 30,
|
|
10600
|
+
padding: 1,
|
|
10601
|
+
pitchAlignment: "viewport",
|
|
10602
|
+
rotationAlignment: "map",
|
|
10603
|
+
size: zoom10.linear([
|
|
10604
|
+
[10, 6.5],
|
|
10605
|
+
[18, 13]
|
|
10606
|
+
]),
|
|
10607
|
+
transform: "uppercase"
|
|
10608
|
+
}
|
|
10609
|
+
}
|
|
10610
|
+
}),
|
|
10611
|
+
settlementMarker: renderPass9({
|
|
9819
10612
|
placement: { below: "labels.places.city" },
|
|
9820
10613
|
feature: "place",
|
|
9821
10614
|
renderer: "circle",
|
|
@@ -9824,7 +10617,7 @@ function streetsLabelRenderStack() {
|
|
|
9824
10617
|
color: streetsVisual.label.settlement,
|
|
9825
10618
|
maxZoom: 8,
|
|
9826
10619
|
minZoom: 2,
|
|
9827
|
-
radius:
|
|
10620
|
+
radius: expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 3, [
|
|
9828
10621
|
[3, 2.5],
|
|
9829
10622
|
[7, 2]
|
|
9830
10623
|
]),
|
|
@@ -9838,7 +10631,15 @@ function streetsLabelRenderStack() {
|
|
|
9838
10631
|
kind: "all",
|
|
9839
10632
|
selectors: [
|
|
9840
10633
|
{ field: "name", kind: "has" },
|
|
9841
|
-
{ field: "class", kind: "compare", operator: "eq", value: "country" }
|
|
10634
|
+
{ field: "class", kind: "compare", operator: "eq", value: "country" },
|
|
10635
|
+
{
|
|
10636
|
+
fallback: rankAtMost(4),
|
|
10637
|
+
kind: "step",
|
|
10638
|
+
stops: [
|
|
10639
|
+
{ selector: rankAtMost(4), zoom: 3 },
|
|
10640
|
+
{ selector: { kind: "literal", value: true }, zoom: 5 }
|
|
10641
|
+
]
|
|
10642
|
+
}
|
|
9842
10643
|
]
|
|
9843
10644
|
},
|
|
9844
10645
|
style: {},
|
|
@@ -9932,8 +10733,11 @@ function streetsLabelRenderStack() {
|
|
|
9932
10733
|
fallback: rankAtMost(18),
|
|
9933
10734
|
kind: "step",
|
|
9934
10735
|
stops: [
|
|
9935
|
-
|
|
9936
|
-
|
|
10736
|
+
// World ranks are local to each source zoom: Manhattan, for
|
|
10737
|
+
// example, moves from rank 11 at z12 to 30 at z13. Once city
|
|
10738
|
+
// detail begins, retain the producer's candidates and let
|
|
10739
|
+
// collisions choose which fit instead of hiding them again.
|
|
10740
|
+
{ selector: { kind: "literal", value: true }, zoom: 12 }
|
|
9937
10741
|
]
|
|
9938
10742
|
}
|
|
9939
10743
|
]
|
|
@@ -9943,9 +10747,50 @@ function streetsLabelRenderStack() {
|
|
|
9943
10747
|
})
|
|
9944
10748
|
};
|
|
9945
10749
|
}
|
|
10750
|
+
function streetsRoadEligibility() {
|
|
10751
|
+
return Object.fromEntries(
|
|
10752
|
+
["motorway", "trunk", "primary", "secondary", "tertiary"].map((roadClass) => [
|
|
10753
|
+
`${roadClass}-surface-eligibility`,
|
|
10754
|
+
refineRenderTarget3({
|
|
10755
|
+
renderer: "line",
|
|
10756
|
+
selector: {
|
|
10757
|
+
kind: "all",
|
|
10758
|
+
selectors: [
|
|
10759
|
+
{ kind: "geometry", geometry: "line" },
|
|
10760
|
+
{ kind: "in", field: "class", values: [roadClass, `${roadClass}_construction`] },
|
|
10761
|
+
{
|
|
10762
|
+
kind: "step",
|
|
10763
|
+
fallback: { kind: "literal", value: true },
|
|
10764
|
+
stops: [
|
|
10765
|
+
{
|
|
10766
|
+
zoom: 5,
|
|
10767
|
+
selector: {
|
|
10768
|
+
kind: "all",
|
|
10769
|
+
selectors: [
|
|
10770
|
+
{ kind: "compare", field: "brunnel", operator: "ne", value: "tunnel" },
|
|
10771
|
+
{ kind: "compare", field: "brunnel", operator: "ne", value: "bridge" }
|
|
10772
|
+
]
|
|
10773
|
+
}
|
|
10774
|
+
}
|
|
10775
|
+
]
|
|
10776
|
+
},
|
|
10777
|
+
{
|
|
10778
|
+
kind: "step",
|
|
10779
|
+
fallback: { kind: "compare", field: "ramp", operator: "ne", value: 1 },
|
|
10780
|
+
stops: [{ zoom: 12, selector: { kind: "literal", value: true } }]
|
|
10781
|
+
}
|
|
10782
|
+
]
|
|
10783
|
+
},
|
|
10784
|
+
style: {},
|
|
10785
|
+
target: `roads.classes.${roadClass}.surface.fill`
|
|
10786
|
+
})
|
|
10787
|
+
])
|
|
10788
|
+
);
|
|
10789
|
+
}
|
|
9946
10790
|
function streetsRoadRenderStack() {
|
|
9947
10791
|
return {
|
|
9948
|
-
...
|
|
10792
|
+
...parkPathRefinements(),
|
|
10793
|
+
...streetsRoadEligibility(),
|
|
9949
10794
|
oneWayMarkers: refineRenderTarget3({
|
|
9950
10795
|
renderer: "symbol",
|
|
9951
10796
|
style: {
|
|
@@ -9954,27 +10799,27 @@ function streetsRoadRenderStack() {
|
|
|
9954
10799
|
ignorePlacement: true,
|
|
9955
10800
|
image: streetsVisual.image.oneway,
|
|
9956
10801
|
keepUpright: false,
|
|
9957
|
-
opacity:
|
|
9958
|
-
[
|
|
9959
|
-
[
|
|
9960
|
-
[
|
|
10802
|
+
opacity: expr11.interpolate({ kind: "linear" }, expr11.zoom(), [
|
|
10803
|
+
[16.5, 0],
|
|
10804
|
+
[17, 0.92],
|
|
10805
|
+
[17.5, 1]
|
|
9961
10806
|
]),
|
|
9962
10807
|
padding: 0,
|
|
9963
10808
|
pitchAlignment: "map",
|
|
9964
|
-
rotate:
|
|
9965
|
-
[{ when:
|
|
10809
|
+
rotate: expr11.case(
|
|
10810
|
+
[{ when: expr11.eq(expr11.get(field10("oneway")), -1), value: 180 }],
|
|
9966
10811
|
0
|
|
9967
10812
|
),
|
|
9968
10813
|
rotationAlignment: "map",
|
|
9969
|
-
size:
|
|
10814
|
+
size: expr11.interpolate({ kind: "linear" }, expr11.zoom(), [
|
|
9970
10815
|
[15, 0.38],
|
|
9971
10816
|
[17, 0.55],
|
|
9972
10817
|
[19, 0.7],
|
|
9973
10818
|
[22, 1]
|
|
9974
10819
|
])
|
|
9975
10820
|
},
|
|
9976
|
-
minZoom:
|
|
9977
|
-
spacing:
|
|
10821
|
+
minZoom: 16.5,
|
|
10822
|
+
spacing: expr11.interpolate({ kind: "linear" }, expr11.zoom(), [
|
|
9978
10823
|
[15, 95],
|
|
9979
10824
|
[17, 115],
|
|
9980
10825
|
[19, 150],
|
|
@@ -9982,8 +10827,8 @@ function streetsRoadRenderStack() {
|
|
|
9982
10827
|
]),
|
|
9983
10828
|
text: {
|
|
9984
10829
|
allowOverlap: true,
|
|
9985
|
-
field:
|
|
9986
|
-
[{ when:
|
|
10830
|
+
field: expr11.case(
|
|
10831
|
+
[{ when: expr11.eq(expr11.get(field10("oneway")), -1), value: "\u2190" }],
|
|
9987
10832
|
"\u2192"
|
|
9988
10833
|
),
|
|
9989
10834
|
ignorePlacement: true,
|
|
@@ -9992,7 +10837,7 @@ function streetsRoadRenderStack() {
|
|
|
9992
10837
|
padding: 0,
|
|
9993
10838
|
pitchAlignment: "map",
|
|
9994
10839
|
rotationAlignment: "map",
|
|
9995
|
-
size:
|
|
10840
|
+
size: expr11.interpolate({ kind: "linear" }, expr11.zoom(), [
|
|
9996
10841
|
[15, 11],
|
|
9997
10842
|
[17, 17],
|
|
9998
10843
|
[19, 20],
|
|
@@ -10029,6 +10874,7 @@ function cityRoadStyle(color, widths, options = {}) {
|
|
|
10029
10874
|
casingMinZoom = roadBorderZoom,
|
|
10030
10875
|
colorStops,
|
|
10031
10876
|
minZoom,
|
|
10877
|
+
major = false,
|
|
10032
10878
|
oneWayScale = 1,
|
|
10033
10879
|
rampWidths,
|
|
10034
10880
|
tunnelCasingColor = streetsDetailPalette.roadTunnelBorder,
|
|
@@ -10036,12 +10882,12 @@ function cityRoadStyle(color, widths, options = {}) {
|
|
|
10036
10882
|
tunnelVisible = true
|
|
10037
10883
|
} = options;
|
|
10038
10884
|
const zoomRange = minZoom === void 0 ? {} : { minZoom };
|
|
10039
|
-
const opacity =
|
|
10885
|
+
const opacity = zoom10.linear([
|
|
10040
10886
|
[3, 0],
|
|
10041
10887
|
[3.5, 1]
|
|
10042
10888
|
]);
|
|
10043
|
-
const surfaceColor = colorStops ?
|
|
10044
|
-
const resolvedCasingColor =
|
|
10889
|
+
const surfaceColor = colorStops ? zoom10.linear(colorStops) : color;
|
|
10890
|
+
const resolvedCasingColor = zoom10.linear(roadCasingColorStops(casingColorStops));
|
|
10045
10891
|
const fill = {
|
|
10046
10892
|
...zoomRange,
|
|
10047
10893
|
cap: roadLineCap,
|
|
@@ -10058,29 +10904,36 @@ function cityRoadStyle(color, widths, options = {}) {
|
|
|
10058
10904
|
cap: roadLineCap,
|
|
10059
10905
|
// Border reads as a subtle shade of the road itself rather than a white halo.
|
|
10060
10906
|
color: resolvedCasingColor,
|
|
10061
|
-
gapWidth:
|
|
10907
|
+
gapWidth: roadWidth(widths, oneWayScale, rampWidths),
|
|
10062
10908
|
join: roadLineJoin,
|
|
10063
10909
|
opacity,
|
|
10064
|
-
width:
|
|
10910
|
+
width: roadCasingWidth(major)
|
|
10065
10911
|
};
|
|
10066
10912
|
return {
|
|
10067
10913
|
surface: { casing, fill },
|
|
10068
|
-
bridge: {
|
|
10914
|
+
bridge: {
|
|
10915
|
+
casing: { ...casing, cap: "butt", join: "miter", width: roadCasingWidth((minZoom ?? 0) < 12) },
|
|
10916
|
+
fill: { ...fill, cap: "round", join: "miter", minZoom: Math.max(minZoom ?? 0, 13) }
|
|
10917
|
+
},
|
|
10069
10918
|
tunnel: tunnelVisible ? {
|
|
10070
10919
|
casing: {
|
|
10071
10920
|
...casing,
|
|
10072
|
-
cap:
|
|
10921
|
+
cap: "butt",
|
|
10922
|
+
join: "miter",
|
|
10923
|
+
minZoom: minZoom === 3 ? 13 : (minZoom ?? 0) < 12 ? 14 : minZoom === 12 ? 15 : 16,
|
|
10073
10924
|
color: tunnelCasingColor,
|
|
10074
10925
|
dash: tunnelBorderDash,
|
|
10075
10926
|
gapWidth: roadWidth(widths, oneWayScale, rampWidths),
|
|
10076
10927
|
opacity: 1,
|
|
10077
|
-
width:
|
|
10928
|
+
width: roadCasingWidth((minZoom ?? 0) < 12)
|
|
10078
10929
|
},
|
|
10079
10930
|
fill: {
|
|
10080
10931
|
...fill,
|
|
10081
|
-
cap:
|
|
10932
|
+
cap: "butt",
|
|
10933
|
+
join: "miter",
|
|
10934
|
+
minZoom: Math.max(minZoom ?? 0, 13),
|
|
10082
10935
|
color: tunnelColor,
|
|
10083
|
-
opacity:
|
|
10936
|
+
opacity: zoom10.linear([
|
|
10084
10937
|
[3, 0],
|
|
10085
10938
|
[3.5, 0.8]
|
|
10086
10939
|
])
|
|
@@ -10098,7 +10951,7 @@ function cityRoadStyle(color, widths, options = {}) {
|
|
|
10098
10951
|
}
|
|
10099
10952
|
function pathRoadStyle(color, widths, options = {}) {
|
|
10100
10953
|
const zoomRange = options.minZoom === void 0 ? {} : { minZoom: options.minZoom };
|
|
10101
|
-
const surfaceColor = options.colorStops ?
|
|
10954
|
+
const surfaceColor = options.colorStops ? zoom10.linear(options.colorStops) : color;
|
|
10102
10955
|
const cap = options.steps ? "butt" : pathLineCap;
|
|
10103
10956
|
const tunnelCap = "butt";
|
|
10104
10957
|
const join = options.steps ? "round" : pathLineJoin;
|
|
@@ -10147,12 +11000,43 @@ function pathRoadStyle(color, widths, options = {}) {
|
|
|
10147
11000
|
}
|
|
10148
11001
|
};
|
|
10149
11002
|
}
|
|
11003
|
+
function streetNamePass(kind, minZoom, classes, subclasses) {
|
|
11004
|
+
const style = roadLabelStyle(kind);
|
|
11005
|
+
return renderPass9({
|
|
11006
|
+
feature: "roadName",
|
|
11007
|
+
renderer: "symbol",
|
|
11008
|
+
requirements: ["roads"],
|
|
11009
|
+
placement: "below-buildings",
|
|
11010
|
+
selector: {
|
|
11011
|
+
kind: "all",
|
|
11012
|
+
selectors: [
|
|
11013
|
+
{ field: "name", kind: "has" },
|
|
11014
|
+
{ field: "class", kind: "in", values: classes },
|
|
11015
|
+
...subclasses ? [{ field: "subclass", kind: "in", values: subclasses }] : []
|
|
11016
|
+
]
|
|
11017
|
+
},
|
|
11018
|
+
style: {
|
|
11019
|
+
...style,
|
|
11020
|
+
minZoom,
|
|
11021
|
+
text: {
|
|
11022
|
+
...style.text,
|
|
11023
|
+
field: expr11.coalesce(
|
|
11024
|
+
expr11.get(field10("name")),
|
|
11025
|
+
expr11.get(field10("nameLatin")),
|
|
11026
|
+
expr11.get(field10("nameEnglish"))
|
|
11027
|
+
),
|
|
11028
|
+
optional: true
|
|
11029
|
+
}
|
|
11030
|
+
}
|
|
11031
|
+
});
|
|
11032
|
+
}
|
|
10150
11033
|
function roadLabelStyle(kind) {
|
|
10151
11034
|
const major = kind === "major";
|
|
10152
11035
|
const pedestrian = kind === "pedestrian";
|
|
10153
11036
|
const path = kind === "path";
|
|
10154
|
-
const
|
|
10155
|
-
const
|
|
11037
|
+
const small = path || kind === "service";
|
|
11038
|
+
const startSize = major ? 9 : pedestrian ? 9 : small ? 6.5 : 8;
|
|
11039
|
+
const endSize = major ? 16 : pedestrian ? 14 : small ? 13 : 14;
|
|
10156
11040
|
return {
|
|
10157
11041
|
placement: "line",
|
|
10158
11042
|
priority: major ? 90 : 50,
|
|
@@ -10160,12 +11044,14 @@ function roadLabelStyle(kind) {
|
|
|
10160
11044
|
text: {
|
|
10161
11045
|
color: streetsVisual.label.road,
|
|
10162
11046
|
font: streetsVisual.font.default,
|
|
10163
|
-
haloColor:
|
|
11047
|
+
haloColor: streetsVisual.label.roadHalo,
|
|
10164
11048
|
haloWidth: 1,
|
|
10165
11049
|
letterSpacing: path || pedestrian ? 0.01 : 0.15,
|
|
10166
11050
|
maxAngle: 30,
|
|
10167
11051
|
padding: 1,
|
|
10168
|
-
|
|
11052
|
+
pitchAlignment: "map",
|
|
11053
|
+
rotationAlignment: "map",
|
|
11054
|
+
size: zoom10.linear([
|
|
10169
11055
|
[10, startSize],
|
|
10170
11056
|
[18, endSize]
|
|
10171
11057
|
]),
|
|
@@ -10181,9 +11067,19 @@ var streets = bindOfficialMapTheme(
|
|
|
10181
11067
|
glyphs: {
|
|
10182
11068
|
kind: "url",
|
|
10183
11069
|
url: "https://api.tileflow.dev/base/33d4de5e8086d9d629d67d3f39fedb87e23686c4c1ac653c27e2a52aee9d00b3/glyphs/{fontstack}/{range}.pbf",
|
|
10184
|
-
fontStacks: ["Noto Sans Regular", "Noto Sans Bold"]
|
|
11070
|
+
fontStacks: ["Noto Sans Regular", "Noto Sans Bold", "Noto Sans Italic"]
|
|
10185
11071
|
},
|
|
10186
11072
|
themes: streetsThemes,
|
|
11073
|
+
timeOfDay: {
|
|
11074
|
+
light: { day: "light", dawn: "dawn", dusk: "dusk", night: "dark" },
|
|
11075
|
+
faded: { day: "faded", dawn: "dawn-faded", dusk: "dusk-faded", night: "dark-faded" },
|
|
11076
|
+
monochrome: {
|
|
11077
|
+
day: "monochrome",
|
|
11078
|
+
dawn: "dawn-monochrome",
|
|
11079
|
+
dusk: "dusk-monochrome",
|
|
11080
|
+
night: "dark-monochrome"
|
|
11081
|
+
}
|
|
11082
|
+
},
|
|
10187
11083
|
defaultTheme: "light",
|
|
10188
11084
|
systemThemes: { light: "light", dark: "dark" },
|
|
10189
11085
|
projection: "globe",
|
|
@@ -10194,25 +11090,57 @@ var streets = bindOfficialMapTheme(
|
|
|
10194
11090
|
type: "tileflow-world"
|
|
10195
11091
|
},
|
|
10196
11092
|
icons: [streetsIcons],
|
|
10197
|
-
|
|
10198
|
-
//
|
|
10199
|
-
|
|
11093
|
+
models: [streetsModels],
|
|
11094
|
+
// The same open DEM used by the other terrain maps. Restrict relief to
|
|
11095
|
+
// regional zooms so street detail does not fetch high-resolution DEM tiles.
|
|
11096
|
+
terrain: {
|
|
11097
|
+
mode: "hillshade",
|
|
11098
|
+
encoding: "terrarium",
|
|
11099
|
+
url: "https://tiles.mapterhorn.com/tilejson.json",
|
|
11100
|
+
attribution: 'Terrain: <a href="https://mapterhorn.com/attribution">\xA9 Mapterhorn</a>',
|
|
11101
|
+
hillshade: {
|
|
11102
|
+
minZoom: 5,
|
|
11103
|
+
maxZoom: 14,
|
|
11104
|
+
accentColor: streetsVisual.terrain.accent,
|
|
11105
|
+
highlightColor: streetsVisual.terrain.highlight,
|
|
11106
|
+
shadowColor: streetsVisual.terrain.shadow,
|
|
11107
|
+
exaggeration: 0.23,
|
|
11108
|
+
illuminationAnchor: "map",
|
|
11109
|
+
illuminationDirection: 315
|
|
11110
|
+
}
|
|
11111
|
+
},
|
|
10200
11112
|
modules: {
|
|
10201
11113
|
// Optional keys: addresses, aeroways, boundaries, buildings, labels, land,
|
|
10202
11114
|
// landforms, poi, roads, transit, vegetation, water. Object order never
|
|
10203
11115
|
// controls layer order.
|
|
10204
11116
|
// Streets deliberately omits parcel-level house numbers. POI and road/place
|
|
10205
11117
|
// labels carry the useful navigation hierarchy without close-zoom numeric noise.
|
|
10206
|
-
addresses:
|
|
10207
|
-
|
|
11118
|
+
addresses: addresses4({
|
|
11119
|
+
labels: {
|
|
11120
|
+
minZoom: 17,
|
|
11121
|
+
text: {
|
|
11122
|
+
font: streetsVisual.font.default,
|
|
11123
|
+
color: streetsVisual.label.muted,
|
|
11124
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11125
|
+
haloWidth: 1,
|
|
11126
|
+
maxWidth: 10,
|
|
11127
|
+
padding: 20,
|
|
11128
|
+
size: zoom10.linear([
|
|
11129
|
+
[18, 11],
|
|
11130
|
+
[20, 13]
|
|
11131
|
+
])
|
|
11132
|
+
}
|
|
11133
|
+
}
|
|
11134
|
+
}),
|
|
11135
|
+
land: withRenderStack9(
|
|
10208
11136
|
land8({
|
|
10209
11137
|
background: {
|
|
10210
11138
|
color: streetsSurfacePalette.background,
|
|
10211
11139
|
opacity: 1
|
|
10212
11140
|
},
|
|
10213
11141
|
globalLandcover: {
|
|
10214
|
-
color:
|
|
10215
|
-
|
|
11142
|
+
color: expr11.match(
|
|
11143
|
+
expr11.get(field10("class")),
|
|
10216
11144
|
[
|
|
10217
11145
|
{ labels: "barren", value: streetsGlobalLandcoverPalette.barren },
|
|
10218
11146
|
{ labels: "crop", value: streetsGlobalLandcoverPalette.crop },
|
|
@@ -10348,7 +11276,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10348
11276
|
industrial: { fill: { color: streetsSurfacePalette.industrial, opacity: 1 } },
|
|
10349
11277
|
medical: { fill: { color: streetsSurfacePalette.medical, opacity: 1 } },
|
|
10350
11278
|
parking: {
|
|
10351
|
-
fill: { color: streetsSurfacePalette.parking, minZoom: 15, opacity:
|
|
11279
|
+
fill: { color: streetsSurfacePalette.parking, minZoom: 15, opacity: 1 },
|
|
10352
11280
|
outline: {
|
|
10353
11281
|
color: streetsSurfacePalette.parkingOutline,
|
|
10354
11282
|
minZoom: 16,
|
|
@@ -10378,9 +11306,9 @@ var streets = bindOfficialMapTheme(
|
|
|
10378
11306
|
water: water8({
|
|
10379
11307
|
bathymetry: {
|
|
10380
11308
|
antialias: false,
|
|
10381
|
-
color:
|
|
11309
|
+
color: expr11.interpolate(
|
|
10382
11310
|
{ kind: "linear" },
|
|
10383
|
-
|
|
11311
|
+
expr11.multiply(-1, expr11.toNumber(expr11.get(field10("bathymetryMinDepth")), 0)),
|
|
10384
11312
|
[
|
|
10385
11313
|
[0, streetsSurfacePalette.waterDepth0],
|
|
10386
11314
|
[200, streetsSurfacePalette.waterDepth200],
|
|
@@ -10390,7 +11318,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10390
11318
|
),
|
|
10391
11319
|
maxZoom: 8,
|
|
10392
11320
|
minZoom: 0,
|
|
10393
|
-
opacity:
|
|
11321
|
+
opacity: zoom10.linear([
|
|
10394
11322
|
[0, 1],
|
|
10395
11323
|
[6, 1],
|
|
10396
11324
|
[8, 0]
|
|
@@ -10398,8 +11326,8 @@ var streets = bindOfficialMapTheme(
|
|
|
10398
11326
|
},
|
|
10399
11327
|
bodies: {
|
|
10400
11328
|
fill: {
|
|
10401
|
-
color:
|
|
10402
|
-
|
|
11329
|
+
color: expr11.match(
|
|
11330
|
+
expr11.get(field10("class")),
|
|
10403
11331
|
[{ labels: ["ocean", "sea"], value: streetsSurfacePalette.waterOcean }],
|
|
10404
11332
|
streetsSurfacePalette.water
|
|
10405
11333
|
),
|
|
@@ -10424,7 +11352,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10424
11352
|
join: "round",
|
|
10425
11353
|
minZoom: 8,
|
|
10426
11354
|
opacity: 0.96,
|
|
10427
|
-
width:
|
|
11355
|
+
width: zoom10.linear([
|
|
10428
11356
|
[8, 0.35],
|
|
10429
11357
|
[13, 1.05],
|
|
10430
11358
|
[16, 2.2]
|
|
@@ -10436,7 +11364,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10436
11364
|
join: "round",
|
|
10437
11365
|
minZoom: 12,
|
|
10438
11366
|
opacity: 0.92,
|
|
10439
|
-
width:
|
|
11367
|
+
width: zoom10.linear([
|
|
10440
11368
|
[12, 0.35],
|
|
10441
11369
|
[14, 0.8],
|
|
10442
11370
|
[16, 1.4]
|
|
@@ -10448,7 +11376,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10448
11376
|
join: "round",
|
|
10449
11377
|
minZoom: 6,
|
|
10450
11378
|
opacity: 0.96,
|
|
10451
|
-
width:
|
|
11379
|
+
width: zoom10.linear([
|
|
10452
11380
|
[6, 0.45],
|
|
10453
11381
|
[13, 1.25],
|
|
10454
11382
|
[16, 3.2]
|
|
@@ -10460,7 +11388,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10460
11388
|
join: "round",
|
|
10461
11389
|
minZoom: 10,
|
|
10462
11390
|
opacity: 0.94,
|
|
10463
|
-
width:
|
|
11391
|
+
width: zoom10.linear([
|
|
10464
11392
|
[10, 0.3],
|
|
10465
11393
|
[12, 0.55],
|
|
10466
11394
|
[13, 0.9],
|
|
@@ -10470,31 +11398,8 @@ var streets = bindOfficialMapTheme(
|
|
|
10470
11398
|
}
|
|
10471
11399
|
}
|
|
10472
11400
|
}),
|
|
10473
|
-
vegetation:
|
|
10474
|
-
|
|
10475
|
-
color: streetsDetailPalette.greenspaceDark,
|
|
10476
|
-
minZoom: 16,
|
|
10477
|
-
opacity: 0.82,
|
|
10478
|
-
pitchAlignment: "map",
|
|
10479
|
-
pitchScale: "map",
|
|
10480
|
-
radius: zoom9.linear([
|
|
10481
|
-
[16, 2.2],
|
|
10482
|
-
[20, 8]
|
|
10483
|
-
]),
|
|
10484
|
-
strokeColor: streetsDetailPalette.greenspace,
|
|
10485
|
-
strokeOpacity: 0.55,
|
|
10486
|
-
strokeWidth: 0.8
|
|
10487
|
-
},
|
|
10488
|
-
mode: "3d",
|
|
10489
|
-
threeDimensional: {
|
|
10490
|
-
barkColor: streetsVisual.tree.bark,
|
|
10491
|
-
broadleafColors: streetsVisual.tree.broadleaf,
|
|
10492
|
-
coniferColors: streetsVisual.tree.conifer,
|
|
10493
|
-
crownScale: 1,
|
|
10494
|
-
heightScale: 1
|
|
10495
|
-
}
|
|
10496
|
-
}),
|
|
10497
|
-
boundaries: withRenderStack8(
|
|
11401
|
+
vegetation: streetsTrees,
|
|
11402
|
+
boundaries: withRenderStack9(
|
|
10498
11403
|
boundaries8({
|
|
10499
11404
|
// Mapbox Standard's admin-0/admin-1 layers map to OpenMapTiles
|
|
10500
11405
|
// admin_level 2/4 respectively.
|
|
@@ -10503,7 +11408,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10503
11408
|
dash: [10, 0],
|
|
10504
11409
|
minZoom: 1,
|
|
10505
11410
|
opacity: 1,
|
|
10506
|
-
width:
|
|
11411
|
+
width: zoom10.linear([
|
|
10507
11412
|
[3, 0.8],
|
|
10508
11413
|
[6, 1.35],
|
|
10509
11414
|
[12, 2.1]
|
|
@@ -10513,11 +11418,11 @@ var streets = bindOfficialMapTheme(
|
|
|
10513
11418
|
color: streetsOverviewPalette.admin1,
|
|
10514
11419
|
dash: [3, 2],
|
|
10515
11420
|
minZoom: 2,
|
|
10516
|
-
opacity:
|
|
11421
|
+
opacity: zoom10.linear([
|
|
10517
11422
|
[2, 0],
|
|
10518
11423
|
[3, 1]
|
|
10519
11424
|
]),
|
|
10520
|
-
width:
|
|
11425
|
+
width: zoom10.linear([
|
|
10521
11426
|
[3, 0.7],
|
|
10522
11427
|
[6, 1.2],
|
|
10523
11428
|
[12, 1.8]
|
|
@@ -10525,12 +11430,12 @@ var streets = bindOfficialMapTheme(
|
|
|
10525
11430
|
},
|
|
10526
11431
|
disputed: {
|
|
10527
11432
|
color: streetsOverviewPalette.admin0,
|
|
10528
|
-
dash:
|
|
10529
|
-
[7,
|
|
11433
|
+
dash: expr11.step(expr11.zoom(), expr11.literal([3, 2, 5]), [
|
|
11434
|
+
[7, expr11.literal([2, 1.5])]
|
|
10530
11435
|
]),
|
|
10531
11436
|
minZoom: 1,
|
|
10532
11437
|
opacity: 1,
|
|
10533
|
-
width:
|
|
11438
|
+
width: zoom10.linear([
|
|
10534
11439
|
[3, 0.5],
|
|
10535
11440
|
[12, 2]
|
|
10536
11441
|
])
|
|
@@ -10539,7 +11444,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10539
11444
|
}),
|
|
10540
11445
|
streetsBoundaryRenderStack()
|
|
10541
11446
|
),
|
|
10542
|
-
roads:
|
|
11447
|
+
roads: withRenderStack9(
|
|
10543
11448
|
roads7({
|
|
10544
11449
|
detail: "all",
|
|
10545
11450
|
// 'none' | 'highways' | 'major' | 'streets' | 'all'.
|
|
@@ -10557,10 +11462,12 @@ var streets = bindOfficialMapTheme(
|
|
|
10557
11462
|
},
|
|
10558
11463
|
crossings: {
|
|
10559
11464
|
image: streetsVisual.image.crosswalk,
|
|
10560
|
-
|
|
10561
|
-
|
|
10562
|
-
|
|
10563
|
-
|
|
11465
|
+
// At city detail these white markings wash out otherwise matching
|
|
11466
|
+
// road fills. Introduce them with the closer street-level detail.
|
|
11467
|
+
minZoom: 16.5,
|
|
11468
|
+
opacity: zoom10.linear([
|
|
11469
|
+
[16.5, 0],
|
|
11470
|
+
[17, 1]
|
|
10564
11471
|
])
|
|
10565
11472
|
},
|
|
10566
11473
|
roundabouts: {
|
|
@@ -10590,9 +11497,12 @@ var streets = bindOfficialMapTheme(
|
|
|
10590
11497
|
pattern: streetsVisual.image.sidewalkPattern
|
|
10591
11498
|
},
|
|
10592
11499
|
surface: {
|
|
10593
|
-
|
|
11500
|
+
// Preserve the ground beneath mapped pedestrian polygons. A
|
|
11501
|
+
// neutral translucent tint darkens grass as green and pavement
|
|
11502
|
+
// as neutral, without requiring a spatial join in the style.
|
|
11503
|
+
color: streetsVisual.road.sidewalkSurface,
|
|
10594
11504
|
minZoom: 17,
|
|
10595
|
-
opacity:
|
|
11505
|
+
opacity: 1
|
|
10596
11506
|
}
|
|
10597
11507
|
},
|
|
10598
11508
|
modifiers: {
|
|
@@ -10601,11 +11511,10 @@ var streets = bindOfficialMapTheme(
|
|
|
10601
11511
|
// phases accept color, opacity, dash, blur, gapWidth, offset, and width.
|
|
10602
11512
|
construction: {
|
|
10603
11513
|
surface: {
|
|
10604
|
-
casing
|
|
10605
|
-
|
|
10606
|
-
|
|
10607
|
-
|
|
10608
|
-
},
|
|
11514
|
+
// Keep construction dashes in the fill. A conditional casing
|
|
11515
|
+
// dash adds a [1, 0] fallback to every ordinary road, selecting
|
|
11516
|
+
// MapLibre's SDF dash shader and stippling thin hollow borders.
|
|
11517
|
+
casing: { dash: [1, 0], opacity: 0 },
|
|
10609
11518
|
fill: {
|
|
10610
11519
|
color: mapboxRoadPalette.road,
|
|
10611
11520
|
dash: [1.5, 1],
|
|
@@ -10726,6 +11635,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10726
11635
|
[22, mapboxRoadPalette.motorway]
|
|
10727
11636
|
],
|
|
10728
11637
|
minZoom: 3,
|
|
11638
|
+
major: true,
|
|
10729
11639
|
rampWidths: mapboxMajorRampWidthStops,
|
|
10730
11640
|
tunnelCasingColor: mapboxRoadPalette.motorwayCasing,
|
|
10731
11641
|
tunnelColor: mapboxRoadPalette.motorwayTunnel
|
|
@@ -10749,6 +11659,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10749
11659
|
[22, mapboxRoadPalette.trunk]
|
|
10750
11660
|
],
|
|
10751
11661
|
minZoom: 3,
|
|
11662
|
+
major: true,
|
|
10752
11663
|
rampWidths: mapboxMajorRampWidthStops,
|
|
10753
11664
|
tunnelCasingColor: mapboxRoadPalette.trunkCasing,
|
|
10754
11665
|
tunnelColor: mapboxRoadPalette.trunkTunnel
|
|
@@ -10758,7 +11669,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10758
11669
|
primaryRoadSurfaceColor,
|
|
10759
11670
|
[
|
|
10760
11671
|
[3, 0.8],
|
|
10761
|
-
[12,
|
|
11672
|
+
[12, 3],
|
|
10762
11673
|
[18, 28],
|
|
10763
11674
|
[22, 280]
|
|
10764
11675
|
],
|
|
@@ -10769,7 +11680,8 @@ var streets = bindOfficialMapTheme(
|
|
|
10769
11680
|
streetsCityRoadPalette.primary,
|
|
10770
11681
|
primaryRoadSurfaceColor
|
|
10771
11682
|
),
|
|
10772
|
-
minZoom:
|
|
11683
|
+
minZoom: 6,
|
|
11684
|
+
major: true,
|
|
10773
11685
|
rampWidths: mapboxArterialRampWidthStops,
|
|
10774
11686
|
tunnelCasingColor: mapboxRoadPalette.roadCasing,
|
|
10775
11687
|
tunnelColor: mapboxRoadPalette.roadTunnel
|
|
@@ -10779,7 +11691,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10779
11691
|
secondaryRoadSurfaceColor,
|
|
10780
11692
|
[
|
|
10781
11693
|
[3, 0],
|
|
10782
|
-
[12,
|
|
11694
|
+
[12, 2.2],
|
|
10783
11695
|
[18, 26],
|
|
10784
11696
|
[22, 260]
|
|
10785
11697
|
],
|
|
@@ -10800,7 +11712,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10800
11712
|
tertiaryRoadSurfaceColor,
|
|
10801
11713
|
[
|
|
10802
11714
|
[3, 0],
|
|
10803
|
-
[12,
|
|
11715
|
+
[12, 2.2],
|
|
10804
11716
|
[18, 26],
|
|
10805
11717
|
[22, 260]
|
|
10806
11718
|
],
|
|
@@ -10821,13 +11733,12 @@ var streets = bindOfficialMapTheme(
|
|
|
10821
11733
|
roadSurfaceColor,
|
|
10822
11734
|
[
|
|
10823
11735
|
[3, 0],
|
|
10824
|
-
[12, 0.
|
|
11736
|
+
[12, 0.5],
|
|
10825
11737
|
[18, 20],
|
|
10826
11738
|
[22, 200]
|
|
10827
11739
|
],
|
|
10828
11740
|
{
|
|
10829
11741
|
casingColorStops: cityRoadCasingColorStops(12),
|
|
10830
|
-
casingMinZoom: 14.5,
|
|
10831
11742
|
colorStops: cityRoadColorStops(12, streetsCityRoadPalette.minor, roadSurfaceColor),
|
|
10832
11743
|
minZoom: 12,
|
|
10833
11744
|
tunnelCasingColor: mapboxRoadPalette.roadCasing,
|
|
@@ -10838,16 +11749,12 @@ var streets = bindOfficialMapTheme(
|
|
|
10838
11749
|
roadSurfaceColor,
|
|
10839
11750
|
[
|
|
10840
11751
|
[3, 0],
|
|
10841
|
-
[
|
|
10842
|
-
[13.5, 0.35],
|
|
10843
|
-
[14, 0.8],
|
|
10844
|
-
[15, 2.2],
|
|
10845
|
-
[16, 3.8],
|
|
11752
|
+
[12, 0],
|
|
10846
11753
|
[18, 10],
|
|
10847
11754
|
[22, 100]
|
|
10848
11755
|
],
|
|
10849
11756
|
{
|
|
10850
|
-
casingMinZoom:
|
|
11757
|
+
casingMinZoom: 16,
|
|
10851
11758
|
casingColorStops: [
|
|
10852
11759
|
[14.5, mapboxRoadPalette.roadCasing],
|
|
10853
11760
|
[22, mapboxRoadPalette.roadCasing]
|
|
@@ -10856,24 +11763,21 @@ var streets = bindOfficialMapTheme(
|
|
|
10856
11763
|
[13.5, roadSurfaceColor],
|
|
10857
11764
|
[22, roadSurfaceColor]
|
|
10858
11765
|
],
|
|
10859
|
-
minZoom:
|
|
10860
|
-
|
|
11766
|
+
minZoom: 15,
|
|
11767
|
+
tunnelCasingColor: mapboxRoadPalette.roadCasing,
|
|
11768
|
+
tunnelColor: mapboxRoadPalette.roadTunnel
|
|
10861
11769
|
}
|
|
10862
11770
|
),
|
|
10863
11771
|
track: cityRoadStyle(
|
|
10864
11772
|
mapboxRoadPalette.road,
|
|
10865
11773
|
[
|
|
10866
11774
|
[3, 0],
|
|
10867
|
-
[
|
|
10868
|
-
[13.5, 0.25],
|
|
10869
|
-
[14, 0.6],
|
|
10870
|
-
[15, 1.8],
|
|
10871
|
-
[16, 3.2],
|
|
11775
|
+
[12, 0],
|
|
10872
11776
|
[18, 10],
|
|
10873
11777
|
[22, 100]
|
|
10874
11778
|
],
|
|
10875
11779
|
{
|
|
10876
|
-
casingMinZoom:
|
|
11780
|
+
casingMinZoom: 16,
|
|
10877
11781
|
casingColorStops: [
|
|
10878
11782
|
[14.5, mapboxRoadPalette.roadCasing],
|
|
10879
11783
|
[22, mapboxRoadPalette.roadCasing]
|
|
@@ -10882,32 +11786,28 @@ var streets = bindOfficialMapTheme(
|
|
|
10882
11786
|
[13.5, mapboxRoadPalette.road],
|
|
10883
11787
|
[22, mapboxRoadPalette.road]
|
|
10884
11788
|
],
|
|
10885
|
-
minZoom:
|
|
11789
|
+
minZoom: 15,
|
|
10886
11790
|
tunnelCasingColor: mapboxRoadPalette.roadCasing,
|
|
10887
11791
|
tunnelColor: mapboxRoadPalette.roadTunnel
|
|
10888
11792
|
}
|
|
10889
11793
|
),
|
|
10890
|
-
pathway: pathRoadStyle(
|
|
10891
|
-
casingColor: streetsDetailPalette.parkPath,
|
|
10892
|
-
casingWidth: 0,
|
|
11794
|
+
pathway: pathRoadStyle(mapboxRoadPalette.pathFromZ16, mapboxPathWidthStops, {
|
|
10893
11795
|
minZoom: 12
|
|
10894
11796
|
}),
|
|
10895
|
-
footway: pathRoadStyle(
|
|
10896
|
-
casingColor: streetsDetailPalette.parkPath,
|
|
10897
|
-
casingWidth: 0,
|
|
11797
|
+
footway: pathRoadStyle(mapboxRoadPalette.pathFromZ16, mapboxPathWidthStops, {
|
|
10898
11798
|
minZoom: 12
|
|
10899
11799
|
}),
|
|
10900
11800
|
cycleway: pathRoadStyle(mapboxRoadPalette.cycleway, mapboxPathWidthStops, {
|
|
10901
11801
|
casingColor: mapboxRoadPalette.pathCasing,
|
|
10902
11802
|
casingGapWidth: roadWidth(mapboxPathWidthStops, 1),
|
|
10903
|
-
fillOpacity:
|
|
11803
|
+
fillOpacity: zoom10.linear([
|
|
10904
11804
|
[15, 0],
|
|
10905
11805
|
[16, 1]
|
|
10906
11806
|
]),
|
|
10907
11807
|
minZoom: 15,
|
|
10908
11808
|
underlay: {
|
|
10909
11809
|
cap: pathLineCap,
|
|
10910
|
-
color:
|
|
11810
|
+
color: zoom10.linear([
|
|
10911
11811
|
[15, mapboxRoadPalette.pathAtZ15],
|
|
10912
11812
|
[16, mapboxRoadPalette.pathFromZ16]
|
|
10913
11813
|
]),
|
|
@@ -10916,16 +11816,16 @@ var streets = bindOfficialMapTheme(
|
|
|
10916
11816
|
opacity: 1,
|
|
10917
11817
|
width: roadWidth(mapboxPathWidthStops, 1)
|
|
10918
11818
|
},
|
|
10919
|
-
width:
|
|
11819
|
+
width: zoom10.linear([
|
|
10920
11820
|
[12, 0],
|
|
10921
11821
|
[18, 2],
|
|
10922
11822
|
[22, 20]
|
|
10923
11823
|
])
|
|
10924
11824
|
}),
|
|
10925
|
-
steps: pathRoadStyle(
|
|
11825
|
+
steps: pathRoadStyle(mapboxRoadPalette.pathFromZ16, mapboxPathWidthStops, {
|
|
10926
11826
|
casingMinZoom: 14,
|
|
10927
|
-
|
|
10928
|
-
|
|
11827
|
+
casingWidth: contextualPathLineWidth,
|
|
11828
|
+
casingGapWidth: 0,
|
|
10929
11829
|
// World V1 overzooms its native z15 tile above street level.
|
|
10930
11830
|
// Keep this literal: a zoom-dependent dash is evaluated at the
|
|
10931
11831
|
// source tile zoom and would remain a continuous line at z16+.
|
|
@@ -10935,18 +11835,35 @@ var streets = bindOfficialMapTheme(
|
|
|
10935
11835
|
minZoom: 14,
|
|
10936
11836
|
steps: true
|
|
10937
11837
|
}),
|
|
10938
|
-
pedestrian: pathRoadStyle(
|
|
11838
|
+
pedestrian: pathRoadStyle(mapboxRoadPalette.pathFromZ16, mapboxPathWidthStops, {
|
|
10939
11839
|
casingMinZoom: 14,
|
|
10940
|
-
casingColor: streetsDetailPalette.parkPath,
|
|
10941
|
-
casingWidth: 0,
|
|
10942
11840
|
minZoom: 12
|
|
10943
11841
|
})
|
|
10944
11842
|
}
|
|
10945
11843
|
}),
|
|
10946
11844
|
streetsRoadRenderStack()
|
|
10947
11845
|
),
|
|
10948
|
-
transit: transit8(
|
|
10949
|
-
|
|
11846
|
+
transit: transit8({
|
|
11847
|
+
...mapboxRailTransitStyle(mapboxRailColor),
|
|
11848
|
+
// Fine blue routes fade in at regional scale; street-scale dashes
|
|
11849
|
+
// and names follow the same hierarchy as the Standard reference.
|
|
11850
|
+
ferry: {
|
|
11851
|
+
color: streetsVisual.road.ferry,
|
|
11852
|
+
minZoom: 8,
|
|
11853
|
+
dash: expr11.step(expr11.zoom(), expr11.literal([1, 0]), [
|
|
11854
|
+
[13, expr11.literal([12, 4])]
|
|
11855
|
+
]),
|
|
11856
|
+
opacity: zoom10.linear([
|
|
11857
|
+
[8, 0],
|
|
11858
|
+
[17, 1]
|
|
11859
|
+
]),
|
|
11860
|
+
width: zoom10.exponential(1.5, [
|
|
11861
|
+
[14, 0.5],
|
|
11862
|
+
[20, 1]
|
|
11863
|
+
])
|
|
11864
|
+
}
|
|
11865
|
+
}),
|
|
11866
|
+
buildings: withRenderStack9(
|
|
10950
11867
|
buildings7({
|
|
10951
11868
|
mode: "flat",
|
|
10952
11869
|
// 'flat' | '3d'.
|
|
@@ -10961,7 +11878,7 @@ var streets = bindOfficialMapTheme(
|
|
|
10961
11878
|
fill: {
|
|
10962
11879
|
color: buildingFillColor,
|
|
10963
11880
|
minZoom: 14.25,
|
|
10964
|
-
opacity:
|
|
11881
|
+
opacity: zoom10.linear([
|
|
10965
11882
|
[14.25, 0],
|
|
10966
11883
|
[14.75, 0.5],
|
|
10967
11884
|
[15, 1]
|
|
@@ -10970,14 +11887,14 @@ var streets = bindOfficialMapTheme(
|
|
|
10970
11887
|
outline: {
|
|
10971
11888
|
color: buildingOutlineColor,
|
|
10972
11889
|
minZoom: 14.5,
|
|
10973
|
-
opacity:
|
|
11890
|
+
opacity: zoom10.linear([
|
|
10974
11891
|
[14.5, 0],
|
|
10975
11892
|
[15, 0.6],
|
|
10976
11893
|
[16, 0.82],
|
|
10977
11894
|
[17, 0.96],
|
|
10978
11895
|
[18, 1]
|
|
10979
11896
|
]),
|
|
10980
|
-
width:
|
|
11897
|
+
width: zoom10.linear([
|
|
10981
11898
|
[14.5, 0.25],
|
|
10982
11899
|
[15, 0.4],
|
|
10983
11900
|
[16, 0.65],
|
|
@@ -10989,15 +11906,15 @@ var streets = bindOfficialMapTheme(
|
|
|
10989
11906
|
}),
|
|
10990
11907
|
streetsBuildingRenderStack()
|
|
10991
11908
|
),
|
|
10992
|
-
labels:
|
|
11909
|
+
labels: withRenderStack9(
|
|
10993
11910
|
labels8({
|
|
10994
11911
|
collisionPriority: "navigation",
|
|
10995
11912
|
language: "local",
|
|
10996
11913
|
// 'auto' | 'local' | 'en' | another language field suffix.
|
|
10997
11914
|
places: "all",
|
|
10998
11915
|
// 'none' | 'major' | 'all'.
|
|
10999
|
-
|
|
11000
|
-
|
|
11916
|
+
// Street names use the ground passes below; shields remain in the foreground.
|
|
11917
|
+
roads: "none",
|
|
11001
11918
|
shields: "major",
|
|
11002
11919
|
// 'none' | 'major' | 'all'.
|
|
11003
11920
|
junctions: true,
|
|
@@ -11006,7 +11923,7 @@ var streets = bindOfficialMapTheme(
|
|
|
11006
11923
|
// 'none' | 'major' | 'all'.
|
|
11007
11924
|
styles: {
|
|
11008
11925
|
places: {
|
|
11009
|
-
//
|
|
11926
|
+
// Standard overview hierarchy: continents disappear first, then
|
|
11010
11927
|
// countries and administrative regions hand over to settlements.
|
|
11011
11928
|
continent: {
|
|
11012
11929
|
minZoom: 0.75,
|
|
@@ -11014,17 +11931,17 @@ var streets = bindOfficialMapTheme(
|
|
|
11014
11931
|
priority: 100,
|
|
11015
11932
|
text: {
|
|
11016
11933
|
color: streetsOverviewPalette.label,
|
|
11017
|
-
haloColor:
|
|
11934
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11018
11935
|
haloWidth: 1.5,
|
|
11019
11936
|
letterSpacing: 0.05,
|
|
11020
11937
|
lineHeight: 1.1,
|
|
11021
11938
|
maxWidth: 6,
|
|
11022
|
-
opacity:
|
|
11939
|
+
opacity: zoom10.linear([
|
|
11023
11940
|
[0, 0.8],
|
|
11024
11941
|
[1.5, 0.5],
|
|
11025
11942
|
[2.5, 0.5]
|
|
11026
11943
|
]),
|
|
11027
|
-
size:
|
|
11944
|
+
size: zoom10.exponential(0.5, [
|
|
11028
11945
|
[0, 10],
|
|
11029
11946
|
[2.5, 15]
|
|
11030
11947
|
]),
|
|
@@ -11036,46 +11953,33 @@ var streets = bindOfficialMapTheme(
|
|
|
11036
11953
|
maxZoom: 10,
|
|
11037
11954
|
priority: 95,
|
|
11038
11955
|
text: {
|
|
11956
|
+
font: streetsVisual.font.default,
|
|
11039
11957
|
color: streetsOverviewPalette.label,
|
|
11040
|
-
haloColor:
|
|
11958
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11041
11959
|
haloWidth: 1.25,
|
|
11042
11960
|
lineHeight: 1.1,
|
|
11043
11961
|
maxWidth: 6,
|
|
11044
11962
|
padding: 3,
|
|
11045
|
-
radialOffset:
|
|
11963
|
+
radialOffset: zoom10.step([
|
|
11046
11964
|
[1, 0.6],
|
|
11047
11965
|
[8, 0]
|
|
11048
11966
|
]),
|
|
11049
|
-
size:
|
|
11967
|
+
size: expr11.interpolate(
|
|
11050
11968
|
{ kind: "cubic-bezier", x1: 0.2, x2: 0.7, y1: 0, y2: 1 },
|
|
11051
|
-
|
|
11969
|
+
expr11.zoom(),
|
|
11052
11970
|
[
|
|
11053
11971
|
[
|
|
11054
11972
|
1,
|
|
11055
|
-
|
|
11973
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 11, [
|
|
11056
11974
|
[4, 9],
|
|
11057
11975
|
[5, 8]
|
|
11058
11976
|
])
|
|
11059
11977
|
],
|
|
11060
|
-
[
|
|
11061
|
-
5,
|
|
11062
|
-
expr9.step(expr9.coalesce(expr9.get(field8("rank")), 99), 14, [
|
|
11063
|
-
[3, 13],
|
|
11064
|
-
[5, 11]
|
|
11065
|
-
])
|
|
11066
|
-
],
|
|
11067
|
-
[
|
|
11068
|
-
7,
|
|
11069
|
-
expr9.step(expr9.coalesce(expr9.get(field8("rank")), 99), 16, [
|
|
11070
|
-
[3, 15],
|
|
11071
|
-
[5, 13]
|
|
11072
|
-
])
|
|
11073
|
-
],
|
|
11074
11978
|
[
|
|
11075
11979
|
9,
|
|
11076
|
-
|
|
11077
|
-
[
|
|
11078
|
-
[5,
|
|
11980
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 22, [
|
|
11981
|
+
[4, 19],
|
|
11982
|
+
[5, 17]
|
|
11079
11983
|
])
|
|
11080
11984
|
]
|
|
11081
11985
|
]
|
|
@@ -11088,26 +11992,27 @@ var streets = bindOfficialMapTheme(
|
|
|
11088
11992
|
maxZoom: 9,
|
|
11089
11993
|
priority: 86,
|
|
11090
11994
|
text: {
|
|
11995
|
+
font: streetsVisual.font.places,
|
|
11091
11996
|
color: streetsOverviewPalette.label,
|
|
11092
|
-
haloColor:
|
|
11997
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11093
11998
|
haloWidth: 1,
|
|
11094
11999
|
letterSpacing: 0.15,
|
|
11095
12000
|
maxWidth: 6,
|
|
11096
12001
|
opacity: 0.5,
|
|
11097
|
-
size:
|
|
12002
|
+
size: expr11.interpolate(
|
|
11098
12003
|
{ kind: "cubic-bezier", x1: 0.85, x2: 0.65, y1: 0.7, y2: 1 },
|
|
11099
|
-
|
|
12004
|
+
expr11.zoom(),
|
|
11100
12005
|
[
|
|
11101
12006
|
[
|
|
11102
12007
|
4,
|
|
11103
|
-
|
|
12008
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 9, [
|
|
11104
12009
|
[6, 8],
|
|
11105
12010
|
[7, 7]
|
|
11106
12011
|
])
|
|
11107
12012
|
],
|
|
11108
12013
|
[
|
|
11109
12014
|
9,
|
|
11110
|
-
|
|
12015
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 21, [
|
|
11111
12016
|
[6, 16],
|
|
11112
12017
|
[7, 14]
|
|
11113
12018
|
])
|
|
@@ -11119,67 +12024,46 @@ var streets = bindOfficialMapTheme(
|
|
|
11119
12024
|
},
|
|
11120
12025
|
city: {
|
|
11121
12026
|
minZoom: 2,
|
|
11122
|
-
maxZoom:
|
|
11123
|
-
priority:
|
|
12027
|
+
maxZoom: 15,
|
|
12028
|
+
priority: expr11.subtract(100, expr11.coalesce(expr11.get(field10("rank")), 20)),
|
|
11124
12029
|
text: {
|
|
11125
|
-
color:
|
|
12030
|
+
color: zoom10.linear([
|
|
11126
12031
|
[2, streetsOverviewPalette.label],
|
|
11127
12032
|
[4, streetsOverviewPalette.label],
|
|
11128
12033
|
[6, streetsVisual.label.settlement]
|
|
11129
12034
|
]),
|
|
11130
|
-
haloColor:
|
|
12035
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11131
12036
|
haloBlur: 1,
|
|
11132
12037
|
haloWidth: 1,
|
|
11133
12038
|
lineHeight: 1.1,
|
|
11134
12039
|
maxWidth: 7,
|
|
11135
12040
|
padding: 1,
|
|
11136
|
-
radialOffset:
|
|
12041
|
+
radialOffset: zoom10.step([
|
|
11137
12042
|
[2, 0.6],
|
|
11138
12043
|
[8, 0]
|
|
11139
12044
|
]),
|
|
11140
|
-
size:
|
|
12045
|
+
size: expr11.interpolate(
|
|
11141
12046
|
{ kind: "cubic-bezier", x1: 0.2, x2: 0.9, y1: 0, y2: 1 },
|
|
11142
|
-
|
|
12047
|
+
expr11.zoom(),
|
|
11143
12048
|
[
|
|
11144
|
-
[
|
|
11145
|
-
3,
|
|
11146
|
-
expr9.step(expr9.coalesce(expr9.get(field8("rank")), 99), 13, [
|
|
11147
|
-
[3, 12],
|
|
11148
|
-
[6, 10]
|
|
11149
|
-
])
|
|
11150
|
-
],
|
|
11151
|
-
[
|
|
11152
|
-
5,
|
|
11153
|
-
expr9.step(expr9.coalesce(expr9.get(field8("rank")), 99), 15, [
|
|
11154
|
-
[3, 13],
|
|
11155
|
-
[4, 12],
|
|
11156
|
-
[6, 11],
|
|
11157
|
-
[8, 10],
|
|
11158
|
-
[14, 9.5]
|
|
11159
|
-
])
|
|
11160
|
-
],
|
|
12049
|
+
[3, expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 13, [[6, 11]])],
|
|
11161
12050
|
[
|
|
11162
12051
|
6,
|
|
11163
|
-
|
|
11164
|
-
[
|
|
11165
|
-
[
|
|
11166
|
-
[6, 12],
|
|
11167
|
-
[8, 10.5],
|
|
11168
|
-
[14, 10]
|
|
12052
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 18, [
|
|
12053
|
+
[6, 16],
|
|
12054
|
+
[7, 14]
|
|
11169
12055
|
])
|
|
11170
12056
|
],
|
|
11171
12057
|
[
|
|
11172
12058
|
8,
|
|
11173
|
-
|
|
11174
|
-
[
|
|
11175
|
-
[
|
|
11176
|
-
[9, 14],
|
|
11177
|
-
[12, 12]
|
|
12059
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 20, [
|
|
12060
|
+
[9, 16],
|
|
12061
|
+
[10, 14]
|
|
11178
12062
|
])
|
|
11179
12063
|
],
|
|
11180
12064
|
[
|
|
11181
12065
|
15,
|
|
11182
|
-
|
|
12066
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 24, [
|
|
11183
12067
|
[9, 20],
|
|
11184
12068
|
[12, 16],
|
|
11185
12069
|
[15, 14]
|
|
@@ -11187,54 +12071,41 @@ var streets = bindOfficialMapTheme(
|
|
|
11187
12071
|
]
|
|
11188
12072
|
]
|
|
11189
12073
|
),
|
|
11190
|
-
// Regular minor-city labels leave room for the denser
|
|
11191
|
-
// regional label field used by Standard. Capital dots and
|
|
11192
|
-
// rank-driven size still carry the major-city hierarchy.
|
|
11193
12074
|
font: streetsVisual.font.default,
|
|
11194
|
-
variableAnchors: [
|
|
11195
|
-
"left",
|
|
11196
|
-
"right",
|
|
11197
|
-
"top",
|
|
11198
|
-
"bottom",
|
|
11199
|
-
"top-left",
|
|
11200
|
-
"top-right",
|
|
11201
|
-
"bottom-left",
|
|
11202
|
-
"bottom-right"
|
|
11203
|
-
]
|
|
12075
|
+
variableAnchors: ["right"]
|
|
11204
12076
|
}
|
|
11205
12077
|
},
|
|
11206
12078
|
town: {
|
|
11207
12079
|
minZoom: 2,
|
|
11208
|
-
maxZoom:
|
|
11209
|
-
priority:
|
|
12080
|
+
maxZoom: 13,
|
|
12081
|
+
priority: expr11.subtract(80, expr11.coalesce(expr11.get(field10("rank")), 20)),
|
|
11210
12082
|
text: {
|
|
11211
12083
|
color: streetsVisual.label.settlement,
|
|
11212
|
-
haloColor:
|
|
12084
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11213
12085
|
haloBlur: 1,
|
|
11214
12086
|
haloWidth: 1,
|
|
11215
12087
|
lineHeight: 1.1,
|
|
11216
12088
|
maxWidth: 7,
|
|
11217
12089
|
padding: 1,
|
|
11218
|
-
radialOffset:
|
|
12090
|
+
radialOffset: zoom10.step([
|
|
11219
12091
|
[2, 0.55],
|
|
11220
|
-
[8, 0
|
|
11221
|
-
[11, 0]
|
|
12092
|
+
[8, 0]
|
|
11222
12093
|
]),
|
|
11223
|
-
size:
|
|
12094
|
+
size: expr11.interpolate(
|
|
11224
12095
|
{ kind: "cubic-bezier", x1: 0.2, x2: 0.9, y1: 0, y2: 1 },
|
|
11225
|
-
|
|
12096
|
+
expr11.zoom(),
|
|
11226
12097
|
[
|
|
11227
|
-
[3,
|
|
12098
|
+
[3, expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 11, [[9, 10]])],
|
|
11228
12099
|
[
|
|
11229
12100
|
6,
|
|
11230
|
-
|
|
12101
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 14, [
|
|
11231
12102
|
[9, 12],
|
|
11232
12103
|
[12, 10]
|
|
11233
12104
|
])
|
|
11234
12105
|
],
|
|
11235
12106
|
[
|
|
11236
12107
|
8,
|
|
11237
|
-
|
|
12108
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 16, [
|
|
11238
12109
|
[9, 14],
|
|
11239
12110
|
[12, 12],
|
|
11240
12111
|
[15, 10]
|
|
@@ -11242,7 +12113,7 @@ var streets = bindOfficialMapTheme(
|
|
|
11242
12113
|
],
|
|
11243
12114
|
[
|
|
11244
12115
|
13,
|
|
11245
|
-
|
|
12116
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 22, [
|
|
11246
12117
|
[9, 20],
|
|
11247
12118
|
[12, 16],
|
|
11248
12119
|
[15, 14]
|
|
@@ -11250,7 +12121,7 @@ var streets = bindOfficialMapTheme(
|
|
|
11250
12121
|
]
|
|
11251
12122
|
]
|
|
11252
12123
|
),
|
|
11253
|
-
font: streetsVisual.font.
|
|
12124
|
+
font: streetsVisual.font.regular,
|
|
11254
12125
|
variableAnchors: [
|
|
11255
12126
|
"left",
|
|
11256
12127
|
"right",
|
|
@@ -11265,36 +12136,35 @@ var streets = bindOfficialMapTheme(
|
|
|
11265
12136
|
},
|
|
11266
12137
|
village: {
|
|
11267
12138
|
minZoom: 2,
|
|
11268
|
-
maxZoom:
|
|
11269
|
-
priority:
|
|
12139
|
+
maxZoom: 13,
|
|
12140
|
+
priority: expr11.subtract(65, expr11.coalesce(expr11.get(field10("rank")), 20)),
|
|
11270
12141
|
text: {
|
|
11271
12142
|
color: streetsVisual.label.settlement,
|
|
11272
|
-
haloColor:
|
|
12143
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11273
12144
|
haloBlur: 1,
|
|
11274
12145
|
haloWidth: 1,
|
|
11275
12146
|
lineHeight: 1.1,
|
|
11276
12147
|
maxWidth: 7,
|
|
11277
12148
|
padding: 1,
|
|
11278
|
-
radialOffset:
|
|
12149
|
+
radialOffset: zoom10.step([
|
|
11279
12150
|
[2, 0.55],
|
|
11280
|
-
[8, 0
|
|
11281
|
-
[11, 0]
|
|
12151
|
+
[8, 0]
|
|
11282
12152
|
]),
|
|
11283
|
-
size:
|
|
12153
|
+
size: expr11.interpolate(
|
|
11284
12154
|
{ kind: "cubic-bezier", x1: 0.2, x2: 0.9, y1: 0, y2: 1 },
|
|
11285
|
-
|
|
12155
|
+
expr11.zoom(),
|
|
11286
12156
|
[
|
|
11287
|
-
[3,
|
|
12157
|
+
[3, expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 11, [[9, 10]])],
|
|
11288
12158
|
[
|
|
11289
12159
|
6,
|
|
11290
|
-
|
|
12160
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 14, [
|
|
11291
12161
|
[9, 12],
|
|
11292
12162
|
[12, 10]
|
|
11293
12163
|
])
|
|
11294
12164
|
],
|
|
11295
12165
|
[
|
|
11296
12166
|
8,
|
|
11297
|
-
|
|
12167
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 16, [
|
|
11298
12168
|
[9, 14],
|
|
11299
12169
|
[12, 12],
|
|
11300
12170
|
[15, 10]
|
|
@@ -11302,7 +12172,7 @@ var streets = bindOfficialMapTheme(
|
|
|
11302
12172
|
],
|
|
11303
12173
|
[
|
|
11304
12174
|
13,
|
|
11305
|
-
|
|
12175
|
+
expr11.step(expr11.coalesce(expr11.get(field10("rank")), 99), 22, [
|
|
11306
12176
|
[9, 20],
|
|
11307
12177
|
[12, 16],
|
|
11308
12178
|
[15, 14]
|
|
@@ -11310,7 +12180,7 @@ var streets = bindOfficialMapTheme(
|
|
|
11310
12180
|
]
|
|
11311
12181
|
]
|
|
11312
12182
|
),
|
|
11313
|
-
font: streetsVisual.font.
|
|
12183
|
+
font: streetsVisual.font.regular,
|
|
11314
12184
|
variableAnchors: [
|
|
11315
12185
|
"left",
|
|
11316
12186
|
"right",
|
|
@@ -11325,46 +12195,40 @@ var streets = bindOfficialMapTheme(
|
|
|
11325
12195
|
},
|
|
11326
12196
|
neighborhood: {
|
|
11327
12197
|
minZoom: 10,
|
|
11328
|
-
maxZoom:
|
|
11329
|
-
priority:
|
|
12198
|
+
maxZoom: 15,
|
|
12199
|
+
priority: expr11.subtract(65, expr11.coalesce(expr11.get(field10("rank")), 20)),
|
|
11330
12200
|
text: {
|
|
12201
|
+
font: streetsVisual.font.default,
|
|
11331
12202
|
color: streetsVisual.label.neighborhood,
|
|
11332
|
-
haloColor:
|
|
11333
|
-
haloBlur: 0
|
|
12203
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
12204
|
+
haloBlur: 0,
|
|
11334
12205
|
haloWidth: 1.3,
|
|
11335
|
-
letterSpacing:
|
|
11336
|
-
|
|
12206
|
+
letterSpacing: expr11.match(
|
|
12207
|
+
expr11.get(field10("class")),
|
|
11337
12208
|
[{ labels: "suburb", value: 0.15 }],
|
|
11338
12209
|
0.05
|
|
11339
12210
|
),
|
|
12211
|
+
lineHeight: 1.1,
|
|
11340
12212
|
maxWidth: 7,
|
|
11341
|
-
padding:
|
|
11342
|
-
size:
|
|
12213
|
+
padding: 3,
|
|
12214
|
+
size: expr11.interpolate(
|
|
11343
12215
|
{ kind: "cubic-bezier", x1: 0.5, x2: 1, y1: 0, y2: 1 },
|
|
11344
|
-
|
|
12216
|
+
expr11.zoom(),
|
|
11345
12217
|
[
|
|
11346
12218
|
[
|
|
11347
|
-
|
|
11348
|
-
|
|
11349
|
-
|
|
11350
|
-
[{ labels: "suburb", value: 10.5 }],
|
|
11351
|
-
10
|
|
11352
|
-
)
|
|
11353
|
-
],
|
|
11354
|
-
[
|
|
11355
|
-
12,
|
|
11356
|
-
expr9.match(
|
|
11357
|
-
expr9.get(field8("class")),
|
|
12219
|
+
11,
|
|
12220
|
+
expr11.match(
|
|
12221
|
+
expr11.get(field10("class")),
|
|
11358
12222
|
[{ labels: "suburb", value: 12 }],
|
|
11359
12223
|
11.5
|
|
11360
12224
|
)
|
|
11361
12225
|
],
|
|
11362
12226
|
[
|
|
11363
12227
|
15,
|
|
11364
|
-
|
|
11365
|
-
|
|
11366
|
-
[{ labels: "suburb", value:
|
|
11367
|
-
|
|
12228
|
+
expr11.match(
|
|
12229
|
+
expr11.get(field10("class")),
|
|
12230
|
+
[{ labels: "suburb", value: 16 }],
|
|
12231
|
+
15
|
|
11368
12232
|
)
|
|
11369
12233
|
]
|
|
11370
12234
|
]
|
|
@@ -11377,11 +12241,12 @@ var streets = bindOfficialMapTheme(
|
|
|
11377
12241
|
maxZoom: 16,
|
|
11378
12242
|
priority: 40,
|
|
11379
12243
|
text: {
|
|
12244
|
+
font: streetsVisual.font.default,
|
|
11380
12245
|
color: streetsVisual.label.neighborhood,
|
|
11381
|
-
haloColor:
|
|
12246
|
+
haloColor: streetsVisual.label.placeHalo,
|
|
11382
12247
|
haloBlur: 0.5,
|
|
11383
12248
|
haloWidth: 1,
|
|
11384
|
-
size:
|
|
12249
|
+
size: zoom10.linear([
|
|
11385
12250
|
[11, 10],
|
|
11386
12251
|
[15, 14]
|
|
11387
12252
|
])
|
|
@@ -11389,32 +12254,17 @@ var streets = bindOfficialMapTheme(
|
|
|
11389
12254
|
}
|
|
11390
12255
|
},
|
|
11391
12256
|
junctions: {
|
|
11392
|
-
//
|
|
11393
|
-
minZoom:
|
|
12257
|
+
// Standard exit references start at z14 and use the shield weight.
|
|
12258
|
+
minZoom: 14,
|
|
11394
12259
|
placement: "point",
|
|
11395
12260
|
text: {
|
|
11396
12261
|
color: streetsVisual.label.road,
|
|
11397
|
-
font: streetsVisual.font.
|
|
12262
|
+
font: streetsVisual.font.places,
|
|
11398
12263
|
haloColor: streetsDetailPalette.halo,
|
|
11399
|
-
haloWidth:
|
|
11400
|
-
size:
|
|
12264
|
+
haloWidth: 1,
|
|
12265
|
+
size: 9
|
|
11401
12266
|
}
|
|
11402
12267
|
},
|
|
11403
|
-
roads: {
|
|
11404
|
-
motorway: { ...roadLabelStyle("major"), minZoom: 10 },
|
|
11405
|
-
trunk: { ...roadLabelStyle("major"), minZoom: 10 },
|
|
11406
|
-
primary: { ...roadLabelStyle("major"), minZoom: 12 },
|
|
11407
|
-
secondary: { ...roadLabelStyle("major"), minZoom: 12 },
|
|
11408
|
-
tertiary: { ...roadLabelStyle("major"), minZoom: 13 },
|
|
11409
|
-
minor: { ...roadLabelStyle("street"), minZoom: 13 },
|
|
11410
|
-
service: { ...roadLabelStyle("street"), minZoom: 15 },
|
|
11411
|
-
track: { ...roadLabelStyle("path"), visible: false },
|
|
11412
|
-
pathway: { ...roadLabelStyle("path"), minZoom: 15 },
|
|
11413
|
-
footway: { ...roadLabelStyle("path"), minZoom: 15 },
|
|
11414
|
-
cycleway: { ...roadLabelStyle("path"), minZoom: 15 },
|
|
11415
|
-
steps: { ...roadLabelStyle("path"), minZoom: 15 },
|
|
11416
|
-
pedestrian: { ...roadLabelStyle("pedestrian"), minZoom: 12 }
|
|
11417
|
-
},
|
|
11418
12268
|
shields: {
|
|
11419
12269
|
default: {
|
|
11420
12270
|
minZoom: 6,
|
|
@@ -11448,7 +12298,7 @@ var streets = bindOfficialMapTheme(
|
|
|
11448
12298
|
detail: {
|
|
11449
12299
|
// Core switches to line placement at street scale while retaining viewport
|
|
11450
12300
|
// alignment, so each route reference remains horizontal during navigation.
|
|
11451
|
-
spacing:
|
|
12301
|
+
spacing: zoom10.linear([
|
|
11452
12302
|
[11, 400],
|
|
11453
12303
|
[14, 600]
|
|
11454
12304
|
])
|
|
@@ -11473,11 +12323,12 @@ var streets = bindOfficialMapTheme(
|
|
|
11473
12323
|
minZoom: 1,
|
|
11474
12324
|
priority: 70,
|
|
11475
12325
|
text: {
|
|
12326
|
+
font: streetsVisual.font.water,
|
|
11476
12327
|
color: streetsDetailPalette.waterText,
|
|
11477
12328
|
haloColor: streetsVisual.label.waterHalo,
|
|
11478
|
-
haloWidth: 0
|
|
11479
|
-
letterSpacing: 0.
|
|
11480
|
-
size:
|
|
12329
|
+
haloWidth: 0,
|
|
12330
|
+
letterSpacing: 0.25,
|
|
12331
|
+
size: zoom10.linear([
|
|
11481
12332
|
[1, 12],
|
|
11482
12333
|
[8, 18]
|
|
11483
12334
|
])
|
|
@@ -11488,10 +12339,11 @@ var streets = bindOfficialMapTheme(
|
|
|
11488
12339
|
maxZoom: 15,
|
|
11489
12340
|
priority: 60,
|
|
11490
12341
|
text: {
|
|
12342
|
+
font: streetsVisual.font.water,
|
|
11491
12343
|
color: streetsDetailPalette.waterText,
|
|
11492
12344
|
haloColor: streetsVisual.label.waterHalo,
|
|
11493
|
-
haloWidth: 0
|
|
11494
|
-
size:
|
|
12345
|
+
haloWidth: 0,
|
|
12346
|
+
size: zoom10.linear([
|
|
11495
12347
|
[5, 11],
|
|
11496
12348
|
[14, 16]
|
|
11497
12349
|
])
|
|
@@ -11502,12 +12354,20 @@ var streets = bindOfficialMapTheme(
|
|
|
11502
12354
|
placement: "line-center",
|
|
11503
12355
|
priority: 65,
|
|
11504
12356
|
text: {
|
|
12357
|
+
font: streetsVisual.font.water,
|
|
11505
12358
|
color: streetsDetailPalette.waterText,
|
|
11506
12359
|
haloColor: streetsVisual.label.waterHalo,
|
|
11507
|
-
haloWidth: 0
|
|
11508
|
-
letterSpacing:
|
|
12360
|
+
haloWidth: 0,
|
|
12361
|
+
letterSpacing: expr11.match(
|
|
12362
|
+
expr11.get(field10("class")),
|
|
12363
|
+
[
|
|
12364
|
+
{ labels: "ocean", value: 0.25 },
|
|
12365
|
+
{ labels: ["sea", "bay"], value: 0.15 }
|
|
12366
|
+
],
|
|
12367
|
+
0
|
|
12368
|
+
),
|
|
11509
12369
|
maxAngle: 30,
|
|
11510
|
-
size:
|
|
12370
|
+
size: zoom10.linear([
|
|
11511
12371
|
[1, 12],
|
|
11512
12372
|
[8, 18]
|
|
11513
12373
|
])
|
|
@@ -11516,15 +12376,17 @@ var streets = bindOfficialMapTheme(
|
|
|
11516
12376
|
waterway: {
|
|
11517
12377
|
minZoom: 13,
|
|
11518
12378
|
placement: "line",
|
|
11519
|
-
spacing:
|
|
12379
|
+
spacing: zoom10.linear([
|
|
11520
12380
|
[15, 250],
|
|
11521
12381
|
[17, 400]
|
|
11522
12382
|
]),
|
|
11523
12383
|
text: {
|
|
12384
|
+
font: streetsVisual.font.water,
|
|
11524
12385
|
color: streetsDetailPalette.waterText,
|
|
11525
12386
|
haloColor: streetsVisual.label.waterHalo,
|
|
12387
|
+
haloWidth: 0,
|
|
11526
12388
|
maxAngle: 30,
|
|
11527
|
-
size:
|
|
12389
|
+
size: zoom10.linear([
|
|
11528
12390
|
[13, 12],
|
|
11529
12391
|
[18, 18]
|
|
11530
12392
|
])
|
|
@@ -11535,13 +12397,14 @@ var streets = bindOfficialMapTheme(
|
|
|
11535
12397
|
minZoom: 8,
|
|
11536
12398
|
priority: 68,
|
|
11537
12399
|
text: {
|
|
12400
|
+
font: streetsVisual.font.default,
|
|
11538
12401
|
color: streetsDetailPalette.transit,
|
|
11539
12402
|
haloColor: streetsDetailPalette.halo,
|
|
11540
12403
|
haloWidth: 1,
|
|
11541
12404
|
letterSpacing: 0.01,
|
|
11542
12405
|
lineHeight: 1.1,
|
|
11543
12406
|
maxWidth: 9,
|
|
11544
|
-
size:
|
|
12407
|
+
size: zoom10.linear([
|
|
11545
12408
|
[8, 12],
|
|
11546
12409
|
[14, 15]
|
|
11547
12410
|
])
|
|
@@ -11552,9 +12415,9 @@ var streets = bindOfficialMapTheme(
|
|
|
11552
12415
|
streetsLabelRenderStack()
|
|
11553
12416
|
),
|
|
11554
12417
|
poi: poi4({
|
|
11555
|
-
// World owns
|
|
11556
|
-
//
|
|
11557
|
-
//
|
|
12418
|
+
// World owns taxonomy, zoom eligibility, density ranks and importance. Streets
|
|
12419
|
+
// shows every category at one density and places them all in World's importance
|
|
12420
|
+
// order, so collision keeps the most relevant places whatever their category.
|
|
11558
12421
|
categories: [
|
|
11559
12422
|
"transport",
|
|
11560
12423
|
"food-drink",
|
|
@@ -11578,26 +12441,30 @@ var streets = bindOfficialMapTheme(
|
|
|
11578
12441
|
icons: true,
|
|
11579
12442
|
labels: true,
|
|
11580
12443
|
placement: {
|
|
11581
|
-
// One collision unit:
|
|
11582
|
-
//
|
|
12444
|
+
// One collision unit: a POI shows its disc and its name, or nothing. Parking and
|
|
12445
|
+
// toilets, whose pictogram says what they are, show the disc alone.
|
|
11583
12446
|
coupleIconAndLabel: true,
|
|
11584
|
-
iconPadding:
|
|
11585
|
-
|
|
12447
|
+
iconPadding: 3,
|
|
12448
|
+
order: "importance",
|
|
12449
|
+
// Street and place names outrank everyday destinations ('navigation' labels), but
|
|
12450
|
+
// not the places that make a city recognisable: World's two most important ranks.
|
|
12451
|
+
prominentRank: 1,
|
|
12452
|
+
textPadding: 3
|
|
11586
12453
|
},
|
|
11587
12454
|
styles: {
|
|
11588
|
-
"arts-entertainment":
|
|
11589
|
-
education:
|
|
11590
|
-
"food-drink": streetsPoiStyle,
|
|
11591
|
-
landmark:
|
|
11592
|
-
lodging:
|
|
11593
|
-
medical:
|
|
11594
|
-
"park-nature":
|
|
11595
|
-
"public-services":
|
|
11596
|
-
religion:
|
|
11597
|
-
retail: streetsPoiStyle,
|
|
11598
|
-
"sport-leisure": streetsPoiStyle,
|
|
11599
|
-
transport: streetsPoiStyle,
|
|
11600
|
-
"visitor-amenity":
|
|
12455
|
+
"arts-entertainment": streetsPoiStyle("arts-entertainment"),
|
|
12456
|
+
education: streetsPoiStyle("education"),
|
|
12457
|
+
"food-drink": streetsPoiStyle("food-drink"),
|
|
12458
|
+
landmark: streetsPoiStyle("landmark"),
|
|
12459
|
+
lodging: streetsPoiStyle("lodging"),
|
|
12460
|
+
medical: streetsPoiStyle("medical"),
|
|
12461
|
+
"park-nature": streetsPoiStyle("park-nature"),
|
|
12462
|
+
"public-services": streetsPoiStyle("public-services"),
|
|
12463
|
+
religion: streetsPoiStyle("religion"),
|
|
12464
|
+
retail: streetsPoiStyle("retail"),
|
|
12465
|
+
"sport-leisure": streetsPoiStyle("sport-leisure"),
|
|
12466
|
+
transport: streetsPoiStyle("transport"),
|
|
12467
|
+
"visitor-amenity": streetsPoiStyle("visitor-amenity")
|
|
11601
12468
|
}
|
|
11602
12469
|
})
|
|
11603
12470
|
},
|
|
@@ -11638,5 +12505,6 @@ export {
|
|
|
11638
12505
|
soundingsIcons,
|
|
11639
12506
|
streets2 as streets,
|
|
11640
12507
|
streetsIcons,
|
|
12508
|
+
streetsModels,
|
|
11641
12509
|
streetsThemes
|
|
11642
12510
|
};
|