2024-08-11 13:47:10 +02:00
import { TramFront , Utensils , ShoppingBasket , Droplet , ShowerHead , Fuel , CircleParking , Fence , FerrisWheel , Bed , Mountain , Pickaxe , Store , TrainFront , Bus , Ship , Croissant , House , Tent , Wrench , Binoculars } from 'lucide-static' ;
2024-10-02 12:49:08 +02:00
import { type StyleSpecification } from 'mapbox-gl' ;
2024-07-24 14:01:00 +02:00
import ignFrTopo from './custom/ign-fr-topo.json' ;
import ignFrPlan from './custom/ign-fr-plan.json' ;
import ignFrSatellite from './custom/ign-fr-satellite.json' ;
2024-08-31 15:57:58 +02:00
import bikerouterGravel from './custom/bikerouter-gravel.json' ;
2024-04-11 17:18:21 +02:00
2024-10-02 12:49:08 +02:00
export const basemaps : { [ key : string ] : string | StyleSpecification ; } = {
2024-04-11 17:18:21 +02:00
mapboxOutdoors : 'mapbox://styles/mapbox/outdoors-v12' ,
2024-05-08 21:31:54 +02:00
mapboxSatellite : 'mapbox://styles/mapbox/satellite-streets-v12' ,
2024-04-11 17:18:21 +02:00
openStreetMap : {
version : 8 ,
sources : {
openStreetMap : {
type : 'raster' ,
tiles : [ 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png' , 'https://b.tile.openstreetmap.org/{z}/{x}/{y}.png' , 'https://c.tile.openstreetmap.org/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
2024-09-24 17:41:49 +02:00
maxzoom : 19 ,
2024-04-11 17:18:21 +02:00
attribution : 'Map tiles by <a target="_top" rel="noopener" href="https://tile.openstreetmap.org/">OpenStreetMap tile servers</a>, under the <a target="_top" rel="noopener" href="https://operations.osmfoundation.org/policies/tiles/">tile usage policy</a>. Data by <a target="_top" rel="noopener" href="http://openstreetmap.org">OpenStreetMap</a>'
}
} ,
layers : [ {
id : 'openStreetMap' ,
type : 'raster' ,
source : 'openStreetMap' ,
} ] ,
} ,
openTopoMap : {
version : 8 ,
sources : {
openTopoMap : {
type : 'raster' ,
tiles : [ 'https://tile.opentopomap.org/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 17 ,
attribution : '© <a href="https://www.opentopomap.org" target="_blank">OpenTopoMap</a> © <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>'
}
} ,
layers : [ {
id : 'openTopoMap' ,
type : 'raster' ,
source : 'openTopoMap' ,
} ] ,
} ,
openHikingMap : {
version : 8 ,
sources : {
openHikingMap : {
type : 'raster' ,
tiles : [ 'https://maps.refuges.info/hiking/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://wiki.openstreetmap.org/wiki/Hiking/mri" target="_blank">sly</a> © <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>'
}
} ,
layers : [ {
id : 'openHikingMap' ,
type : 'raster' ,
source : 'openHikingMap' ,
} ] ,
} ,
cyclOSM : {
version : 8 ,
sources : {
cyclOSM : {
type : 'raster' ,
tiles : [ 'https://a.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png' , 'https://b.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png' , 'https://c.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
2024-09-24 17:41:49 +02:00
maxzoom : 18 ,
2024-04-11 17:18:21 +02:00
attribution : '© <a href="https://github.com/cyclosm/cyclosm-cartocss-style/releases" title="CyclOSM - Open Bicycle render">CyclOSM</a> © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}
} ,
layers : [ {
id : 'cyclOSM' ,
type : 'raster' ,
source : 'cyclOSM' ,
} ] ,
} ,
2024-07-18 12:45:25 +02:00
swisstopoRaster : {
version : 8 ,
sources : {
swisstopoRaster : {
type : 'raster' ,
tiles : [ 'https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/3857/{z}/{x}/{y}.jpeg' ] ,
tileSize : 128 ,
maxzoom : 19 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
}
} ,
layers : [ {
id : 'swisstopoRaster' ,
type : 'raster' ,
source : 'swisstopoRaster' ,
} ] ,
} ,
swisstopoVector : 'https://vectortiles.geo.admin.ch/styles/ch.swisstopo.basemap.vt/style.json' ,
2024-06-07 13:32:44 +02:00
swisstopoSatellite : 'https://vectortiles.geo.admin.ch/styles/ch.swisstopo.imagerybasemap.vt/style.json' ,
2024-06-07 15:54:40 +02:00
linz : 'https://basemaps.linz.govt.nz/v1/tiles/topographic/EPSG:3857/style/topographic.json?api=d01fbtg0ar23gctac5m0jgyy2ds' ,
2024-04-11 17:51:48 +02:00
linzTopo : {
version : 8 ,
sources : {
linzTopo : {
type : 'raster' ,
tiles : [ 'https://tiles-cdn.koordinates.com/services;key=39a8b989633a4bef98bc0e065380454a/tiles/v4/layer=50767/EPSG:3857/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.linz.govt.nz/" target="_blank">LINZ</a>'
}
} ,
layers : [ {
id : 'linzTopo' ,
type : 'raster' ,
source : 'linzTopo' ,
} ] ,
} ,
2024-06-09 16:53:04 +02:00
ignBe : {
version : 8 ,
sources : {
ignBe : {
type : 'raster' ,
tiles : [ 'https://cartoweb.wmts.ngi.be/1.0.0/topo/default/3857/{z}/{y}/{x}.png' ] ,
tileSize : 256 ,
maxzoom : 17 ,
attribution : '© <a href="https://www.ngi.be/" target="_blank">IGN/NGI</a>'
}
} ,
layers : [ {
id : 'ignBe' ,
type : 'raster' ,
source : 'ignBe' ,
} ] ,
} ,
2024-07-24 14:01:00 +02:00
ignFrPlan : ignFrPlan ,
ignFrTopo : ignFrTopo ,
2024-04-11 17:51:48 +02:00
ignFrScan25 : {
version : 8 ,
sources : {
ignFrScan25 : {
type : 'raster' ,
2024-06-07 13:19:28 +02:00
tiles : [ 'https://data.geopf.fr/private/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TILEMATRIXSET=PM&TILEMATRIX={z}&TILECOL={x}&TILEROW={y}&LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&FORMAT=image/jpeg&STYLE=normal&apikey=ign_scan_ws' ] ,
2024-04-11 17:51:48 +02:00
tileSize : 256 ,
maxzoom : 16 ,
attribution : 'IGN-F/Géoportail'
}
} ,
layers : [ {
id : 'ignFrScan25' ,
type : 'raster' ,
source : 'ignFrScan25' ,
} ] ,
} ,
2024-07-24 14:01:00 +02:00
ignFrSatellite : ignFrSatellite ,
2024-04-11 17:51:48 +02:00
ignEs : {
version : 8 ,
sources : {
ignEs : {
type : 'raster' ,
tiles : [ 'https://www.ign.es/wmts/mapa-raster?layer=MTN&style=default&tilematrixset=GoogleMapsCompatible&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix={z}&TileCol={x}&TileRow={y}' ] ,
tileSize : 256 ,
maxzoom : 20 ,
attribution : 'IGN-F/Géoportail'
}
} ,
layers : [ {
id : 'ignEs' ,
type : 'raster' ,
source : 'ignEs' ,
} ] ,
} ,
2024-08-19 11:46:47 +02:00
ordnanceSurvey : "https://api.os.uk/maps/vector/v1/vts/resources/styles?srs=3857&key=piCT8WysfuC3xLSUW7sGLfrAAJoYDvQz" ,
2024-04-11 17:51:48 +02:00
norwayTopo : {
version : 8 ,
sources : {
norwayTopo : {
type : 'raster' ,
2024-07-16 15:05:22 +02:00
tiles : [ 'https://cache.kartverket.no/v1/wmts/1.0.0/topo/default/webmercator/{z}/{y}/{x}.png' ] ,
2024-04-11 17:51:48 +02:00
tileSize : 256 ,
maxzoom : 20 ,
attribution : '© <a href="https://www.geonorge.no/" target="_blank">Geonorge</a>'
}
} ,
layers : [ {
id : 'norwayTopo' ,
type : 'raster' ,
source : 'norwayTopo' ,
} ] ,
} ,
swedenTopo : {
version : 8 ,
sources : {
2024-09-03 12:45:35 +02:00
swedenTopoWMTS : {
2024-04-11 17:51:48 +02:00
type : 'raster' ,
tiles : [ 'https://api.lantmateriet.se/open/topowebb-ccby/v1/wmts/token/1d54dd14-a28c-38a9-b6f3-b4ebfcc3c204/1.0.0/topowebb/default/3857/{z}/{y}/{x}.png' ] ,
tileSize : 256 ,
maxzoom : 14 ,
attribution : '© <a href="https://www.lantmateriet.se" target="_blank">Lantmäteriet</a>'
2024-09-03 12:45:35 +02:00
} ,
swedenTopoWMS : {
type : 'raster' ,
tiles : [ 'https://minkarta.lantmateriet.se/map/topowebb?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&FORMAT=image%2Fpng&STYLES=&TRANSPARENT=false&LAYERS=topowebbkartan&TILED=true&MAP_RESOLUTION=180&WIDTH=512&HEIGHT=512&SRS=EPSG%3A3857&BBOX={bbox-epsg-3857}' ] ,
tileSize : 512 ,
minzoom : 14 ,
maxzoom : 20 ,
attribution : '© <a href="https://www.lantmateriet.se" target="_blank">Lantmäteriet</a>'
}
} ,
layers : [ {
id : 'swedenTopoWMTS' ,
type : 'raster' ,
source : 'swedenTopoWMTS' ,
maxzoom : 14
} , {
id : 'swedenTopoWMS' ,
type : 'raster' ,
source : 'swedenTopoWMS' ,
minzoom : 14
} ] ,
} ,
swedenSatellite : {
version : 8 ,
sources : {
swedenSatellite : {
type : 'raster' ,
tiles : [ 'https://minkarta.lantmateriet.se/map/ortofoto?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&FORMAT=image%2Fpng&STYLES=&TRANSPARENT=false&LAYERS=Ortofoto_0.5%2COrtofoto_0.4%2COrtofoto_0.25%2COrtofoto_0.16&TILED=true&MAP_RESOLUTION=180&WIDTH=512&HEIGHT=512&SRS=EPSG%3A3857&BBOX={bbox-epsg-3857}' ] ,
tileSize : 512 ,
maxzoom : 22 ,
attribution : '© <a href="https://www.lantmateriet.se" target="_blank">Lantmäteriet</a>'
2024-04-11 17:51:48 +02:00
}
} ,
layers : [ {
2024-09-03 12:45:35 +02:00
id : 'swedenSatellite' ,
2024-04-11 17:51:48 +02:00
type : 'raster' ,
2024-09-03 12:45:35 +02:00
source : 'swedenSatellite' ,
2024-04-11 17:51:48 +02:00
} ] ,
} ,
finlandTopo : {
version : 8 ,
sources : {
finlandTopo : {
type : 'raster' ,
tiles : [ 'https://avoin-karttakuva.maanmittauslaitos.fi/avoin/wmts?layer=maastokartta&style=default&tilematrixset=WGS84_Pseudo-Mercator&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={z}&TileCol={x}&TileRow={y}&api-key=30cb768c-c968-493c-ae24-2b0b974ebd29' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.maanmittauslaitos.fi/" target="_blank">Maanmittauslaitos</a>'
}
} ,
layers : [ {
id : 'finlandTopo' ,
type : 'raster' ,
source : 'finlandTopo' ,
} ] ,
} ,
bgMountains : {
version : 8 ,
sources : {
bgMountains : {
type : 'raster' ,
tiles : [ 'https://bgmtile.kade.si/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 19 ,
attribution : '<a href="http://mountain.bajhui.org/trac/wiki/BGMountains%20%D0%BB%D0%B5%D0%B3%D0%B5%D0%BD%D0%B4%D0%B0" target="_blank">BGM Legend</a> / <a href="https://cart.uni-plovdiv.net/" target="_blank">CART Lab</a>, <a href="http://www.bgmountains.org/" target="_blank">BGM team</a>, © <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0</a>, <a href="http://bgmountains.org/en/maps/garmin-maps/category/9-bgmountains/" target="_blank">Garmin version</a>'
}
} ,
layers : [ {
id : 'bgMountains' ,
type : 'raster' ,
source : 'bgMountains' ,
} ] ,
} ,
usgs : {
version : 8 ,
sources : {
usgs : {
type : 'raster' ,
tiles : [ 'https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}?blankTile=false' ] ,
tileSize : 256 ,
maxzoom : 16 ,
attribution : '© <a href="usgs.gov" target="_blank">USGS</a>'
}
} ,
layers : [ {
id : 'usgs' ,
type : 'raster' ,
source : 'usgs' ,
} ] ,
} ,
2024-04-11 17:18:21 +02:00
} ;
2024-10-02 12:49:08 +02:00
export const overlays : { [ key : string ] : string | StyleSpecification ; } = {
2024-04-11 17:18:21 +02:00
cyclOSMlite : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
cyclOSMlite : {
type : 'raster' ,
tiles : [ 'https://a.tile-cyclosm.openstreetmap.fr/cyclosm-lite/{z}/{x}/{y}.png' , 'https://b.tile-cyclosm.openstreetmap.fr/cyclosm-lite/{z}/{x}/{y}.png' , 'https://c.tile-cyclosm.openstreetmap.fr/cyclosm-lite/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 17 ,
attribution : '© <a href="https://github.com/cyclosm/cyclosm-cartocss-style/releases" title="CyclOSM - Open Bicycle render">CyclOSM</a> © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}
} ,
layers : [ {
id : 'cyclOSMlite' ,
type : 'raster' ,
source : 'cyclOSMlite' ,
} ] ,
2024-04-11 17:18:21 +02:00
} ,
2024-08-31 15:57:58 +02:00
bikerouterGravel : bikerouterGravel ,
2024-04-11 17:51:48 +02:00
swisstopoSlope : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoSlope : {
type : 'raster' ,
tiles : [ 'https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.hangneigung-ueber_30/default/current/3857/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 17 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>' ,
} ,
} ,
layers : [ {
id : 'swisstopoSlope' ,
type : 'raster' ,
source : 'swisstopoSlope' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
2024-07-18 12:45:25 +02:00
swisstopoHiking : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoHiking : {
type : 'raster' ,
tiles : [ 'https://wmts.geo.admin.ch/1.0.0/ch.swisstopo.swisstlm3d-wanderwege/default/current/3857/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
} ,
} ,
layers : [ {
id : 'swisstopoHiking' ,
type : 'raster' ,
source : 'swisstopoHiking' ,
} ] ,
2024-07-18 12:45:25 +02:00
} ,
swisstopoHikingClosures : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoHikingClosures : {
type : 'raster' ,
tiles : [ 'https://wms.geo.admin.ch/?version=1.3.0&service=WMS&request=GetMap&sld_version=1.1.0&layers=ch.astra.wanderland-sperrungen_umleitungen&format=image/png&STYLE=default&bbox={bbox-epsg-3857}&width=256&height=256&crs=EPSG:3857&transparent=true' ] ,
tileSize : 256 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
} ,
} ,
layers : [ {
id : 'swisstopoHikingClosures' ,
type : 'raster' ,
source : 'swisstopoHikingClosures' ,
} ] ,
2024-07-18 12:45:25 +02:00
} ,
2024-04-11 17:51:48 +02:00
swisstopoCycling : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoCycling : {
type : 'raster' ,
tiles : [ 'https://wmts.geo.admin.ch/1.0.0/ch.astra.veloland/default/current/3857/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
}
} ,
layers : [ {
id : 'swisstopoCycling' ,
type : 'raster' ,
source : 'swisstopoCycling' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
2024-07-18 12:45:25 +02:00
swisstopoCyclingClosures : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoCyclingClosures : {
type : 'raster' ,
tiles : [ 'https://wms.geo.admin.ch/?version=1.3.0&service=WMS&request=GetMap&sld_version=1.1.0&layers=ch.astra.veloland-sperrungen_umleitungen&format=image/png&STYLE=default&bbox={bbox-epsg-3857}&width=256&height=256&crs=EPSG:3857&transparent=true' ] ,
tileSize : 256 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
}
} ,
layers : [ {
id : 'swisstopoCyclingClosures' ,
type : 'raster' ,
source : 'swisstopoCyclingClosures' ,
} ] ,
2024-07-18 12:45:25 +02:00
} ,
2024-04-11 17:51:48 +02:00
swisstopoMountainBike : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoMountainBike : {
type : 'raster' ,
tiles : [ 'https://wmts.geo.admin.ch/1.0.0/ch.astra.mountainbikeland/default/current/3857/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
}
} ,
layers : [ {
id : 'swisstopoMountainBike' ,
type : 'raster' ,
source : 'swisstopoMountainBike' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
2024-07-18 12:45:25 +02:00
swisstopoMountainBikeClosures : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoMountainBikeClosures : {
type : 'raster' ,
tiles : [ 'https://wms.geo.admin.ch/?version=1.3.0&service=WMS&request=GetMap&sld_version=1.1.0&layers=ch.astra.mountainbikeland-sperrungen_umleitungen&format=image/png&STYLE=default&bbox={bbox-epsg-3857}&width=256&height=256&crs=EPSG:3857&transparent=true' ] ,
tileSize : 256 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
}
} ,
layers : [ {
id : 'swisstopoMountainBikeClosures' ,
type : 'raster' ,
source : 'swisstopoMountainBikeClosures' ,
} ] ,
2024-07-18 12:45:25 +02:00
} ,
2024-06-06 12:52:00 +02:00
swisstopoSkiTouring : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
swisstopoSkiTouring : {
type : 'raster' ,
tiles : [ 'https://wmts.geo.admin.ch/1.0.0/ch.swisstopo-karto.skitouren/default/current/3857/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 17 ,
attribution : '© <a href="https://www.swisstopo.admin.ch" target="_blank">swisstopo</a>'
}
} ,
layers : [ {
id : 'swisstopoSkiTouring' ,
type : 'raster' ,
source : 'swisstopoSkiTouring' ,
} ] ,
2024-06-06 12:52:00 +02:00
} ,
2024-04-11 17:51:48 +02:00
ignFrCadastre : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
ignFrCadastre : {
type : 'raster' ,
tiles : [ 'https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TILEMATRIXSET=PM&TILEMATRIX={z}&TILECOL={x}&TILEROW={y}&LAYER=CADASTRALPARCELS.PARCELS&FORMAT=image/png&STYLE=normal' ] ,
tileSize : 256 ,
maxzoom : 20 ,
attribution : 'IGN-F/Géoportail'
}
} ,
layers : [ {
id : 'ignFrCadastre' ,
type : 'raster' ,
source : 'ignFrCadastre' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
ignSlope : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
ignSlope : {
type : 'raster' ,
tiles : [ 'https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TileMatrixSet=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&Layer=GEOGRAPHICALGRIDSYSTEMS.SLOPES.MOUNTAIN&FORMAT=image/png&Style=normal' ] ,
tileSize : 256 ,
attribution : 'IGN-F/Géoportail'
}
} ,
layers : [ {
id : 'ignSlope' ,
type : 'raster' ,
source : 'ignSlope' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
2024-06-06 12:16:07 +02:00
ignSkiTouring : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
ignSkiTouring : {
type : 'raster' ,
tiles : [ 'https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&TileMatrixSet=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&Layer=TRACES.RANDO.HIVERNALE&FORMAT=image/png&Style=normal' ] ,
tileSize : 256 ,
maxzoom : 16 ,
attribution : 'IGN-F/Géoportail'
} ,
} ,
layers : [ {
id : 'ignSkiTouring' ,
type : 'raster' ,
source : 'ignSkiTouring' ,
} ] ,
2024-06-06 12:16:07 +02:00
} ,
2024-04-11 17:51:48 +02:00
waymarkedTrailsHiking : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
waymarkedTrailsHiking : {
type : 'raster' ,
tiles : [ 'https://tile.waymarkedtrails.org/hiking/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.waymarkedtrails.org" target="_blank">Waymarked Trails</a>'
}
} ,
layers : [ {
id : 'waymarkedTrailsHiking' ,
type : 'raster' ,
source : 'waymarkedTrailsHiking' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
waymarkedTrailsCycling : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
waymarkedTrailsCycling : {
type : 'raster' ,
tiles : [ 'https://tile.waymarkedtrails.org/cycling/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.waymarkedtrails.org" target="_blank">Waymarked Trails</a>'
}
} ,
layers : [ {
id : 'waymarkedTrailsCycling' ,
type : 'raster' ,
source : 'waymarkedTrailsCycling' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
waymarkedTrailsMTB : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
waymarkedTrailsMTB : {
type : 'raster' ,
tiles : [ 'https://tile.waymarkedtrails.org/mtb/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.waymarkedtrails.org" target="_blank">Waymarked Trails</a>'
}
} ,
layers : [ {
id : 'waymarkedTrailsMTB' ,
type : 'raster' ,
source : 'waymarkedTrailsMTB' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
waymarkedTrailsSkating : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
waymarkedTrailsSkating : {
type : 'raster' ,
tiles : [ 'https://tile.waymarkedtrails.org/skating/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.waymarkedtrails.org" target="_blank">Waymarked Trails</a>'
}
} ,
layers : [ {
id : 'waymarkedTrailsSkating' ,
type : 'raster' ,
source : 'waymarkedTrailsSkating' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
waymarkedTrailsHorseRiding : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
waymarkedTrailsHorseRiding : {
type : 'raster' ,
tiles : [ 'https://tile.waymarkedtrails.org/riding/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.waymarkedtrails.org" target="_blank">Waymarked Trails</a>'
}
} ,
layers : [ {
id : 'waymarkedTrailsHorseRiding' ,
type : 'raster' ,
source : 'waymarkedTrailsHorseRiding' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
waymarkedTrailsWinter : {
2024-08-31 15:57:58 +02:00
version : 8 ,
sources : {
waymarkedTrailsWinter : {
type : 'raster' ,
tiles : [ 'https://tile.waymarkedtrails.org/slopes/{z}/{x}/{y}.png' ] ,
tileSize : 256 ,
maxzoom : 18 ,
attribution : '© <a href="https://www.waymarkedtrails.org" target="_blank">Waymarked Trails</a>'
}
} ,
layers : [ {
id : 'waymarkedTrailsWinter' ,
type : 'raster' ,
source : 'waymarkedTrailsWinter' ,
} ] ,
2024-04-11 17:51:48 +02:00
} ,
} ;
2024-06-26 18:46:03 +02:00
export const defaultOpacities : { [ key : string ] : number ; } = {
2024-04-11 17:51:48 +02:00
ignFrCadastre : 0.5 ,
ignSlope : 0.4 ,
swisstopoSlope : 0.4 ,
2024-04-12 12:38:19 +02:00
} ;
2024-05-05 18:59:09 +02:00
export type LayerTreeType = { [ key : string ] : LayerTreeType | boolean ; } ;
2024-04-12 13:43:51 +02:00
2024-05-05 18:59:09 +02:00
// Hierarchy containing all basemaps
2024-04-12 13:43:51 +02:00
export const basemapTree : LayerTreeType = {
2024-04-15 11:04:36 +02:00
basemaps : {
2024-05-05 18:59:09 +02:00
world : {
mapboxOutdoors : true ,
mapboxSatellite : true ,
openStreetMap : true ,
openTopoMap : true ,
openHikingMap : true ,
cyclOSM : true
} ,
2024-04-15 11:04:36 +02:00
countries : {
2024-06-09 16:53:04 +02:00
belgium : {
ignBe : true ,
} ,
2024-05-05 18:59:09 +02:00
bulgaria : {
bgMountains : true ,
} ,
finland : {
finlandTopo : true ,
} ,
france : {
2024-06-07 13:19:28 +02:00
ignFrPlan : true ,
2024-07-24 12:09:45 +02:00
ignFrTopo : true ,
2024-05-05 18:59:09 +02:00
ignFrScan25 : true ,
2024-06-07 13:19:28 +02:00
ignFrSatellite : true ,
2024-05-05 18:59:09 +02:00
} ,
new_zealand : {
linz : true ,
linzTopo : true ,
} ,
norway : {
norwayTopo : true ,
} ,
spain : {
ignEs : true ,
} ,
sweden : {
swedenTopo : true ,
2024-09-03 12:45:35 +02:00
swedenSatellite : true ,
2024-05-05 18:59:09 +02:00
} ,
switzerland : {
2024-07-18 12:45:25 +02:00
swisstopoRaster : true ,
swisstopoVector : true ,
2024-06-07 13:32:44 +02:00
swisstopoSatellite : true ,
2024-05-05 18:59:09 +02:00
} ,
united_kingdom : {
ordnanceSurvey : true ,
} ,
united_states : {
usgs : true ,
}
2024-04-15 11:04:36 +02:00
} ,
2024-04-12 12:38:19 +02:00
} ,
}
2024-05-05 18:59:09 +02:00
// Hierarchy containing all overlays
2024-04-12 13:43:51 +02:00
export const overlayTree : LayerTreeType = {
2024-04-15 11:04:36 +02:00
overlays : {
world : {
2024-05-05 18:59:09 +02:00
waymarked_trails : {
waymarkedTrailsHiking : true ,
waymarkedTrailsCycling : true ,
waymarkedTrailsMTB : true ,
waymarkedTrailsSkating : true ,
waymarkedTrailsHorseRiding : true ,
waymarkedTrailsWinter : true ,
2024-08-31 15:57:58 +02:00
} ,
cyclOSMlite : true ,
bikerouterGravel : true ,
2024-04-15 11:04:36 +02:00
} ,
countries : {
2024-05-05 18:59:09 +02:00
france : {
ignFrCadastre : true ,
ignSlope : true ,
2024-06-06 12:16:07 +02:00
ignSkiTouring : true ,
2024-05-05 18:59:09 +02:00
} ,
switzerland : {
swisstopoSlope : true ,
2024-07-18 12:45:25 +02:00
swisstopoHiking : true ,
swisstopoHikingClosures : true ,
2024-05-05 18:59:09 +02:00
swisstopoCycling : true ,
2024-07-18 12:45:25 +02:00
swisstopoCyclingClosures : true ,
2024-05-05 18:59:09 +02:00
swisstopoMountainBike : true ,
2024-07-18 12:45:25 +02:00
swisstopoMountainBikeClosures : true ,
2024-06-06 12:52:00 +02:00
swisstopoSkiTouring : true ,
2024-05-05 18:59:09 +02:00
}
2024-04-15 11:04:36 +02:00
} ,
2024-04-12 12:38:19 +02:00
} ,
}
2024-07-17 14:19:04 +02:00
// Hierachy containing all Overpass layers
export const overpassTree : LayerTreeType = {
points_of_interest : {
2024-07-17 19:40:53 +02:00
food : {
bakery : true ,
"food-store" : true ,
"eat-and-drink" : true ,
} ,
amenities : {
toilets : true ,
"water" : true ,
shower : true ,
2024-08-11 12:17:06 +02:00
shelter : true ,
2024-07-17 19:40:53 +02:00
barrier : true
} ,
tourism : {
attraction : true ,
viewpoint : true ,
2024-07-18 11:03:41 +02:00
hotel : true ,
campsite : true ,
hut : true ,
2024-08-11 12:17:06 +02:00
picnic : true ,
2024-07-17 19:40:53 +02:00
summit : true ,
pass : true ,
climbing : true ,
} ,
bicycle : {
"bicycle-parking" : true ,
"bicycle-rental" : true ,
"bicycle-shop" : true
} ,
"public-transport" : {
"railway-station" : true ,
"tram-stop" : true ,
"bus-stop" : true ,
ferry : true
2024-07-17 14:19:04 +02:00
} ,
2024-07-18 11:45:35 +02:00
motorized : {
"fuel-station" : true ,
parking : true ,
garage : true
} ,
2024-07-17 14:19:04 +02:00
} ,
} ;
2024-05-05 18:59:09 +02:00
// Default basemap used
2024-04-12 12:38:19 +02:00
export const defaultBasemap = 'mapboxOutdoors' ;
2024-05-05 18:59:09 +02:00
// Default overlays used (none)
export const defaultOverlays = {
overlays : {
world : {
waymarked_trails : {
waymarkedTrailsHiking : false ,
waymarkedTrailsCycling : false ,
waymarkedTrailsMTB : false ,
waymarkedTrailsSkating : false ,
waymarkedTrailsHorseRiding : false ,
waymarkedTrailsWinter : false ,
2024-08-31 15:57:58 +02:00
} ,
cyclOSMlite : false ,
bikerouterGravel : false ,
2024-05-05 18:59:09 +02:00
} ,
countries : {
france : {
ignFrCadastre : false ,
ignSlope : false ,
2024-06-06 12:16:07 +02:00
ignSkiTouring : false ,
2024-05-05 18:59:09 +02:00
} ,
switzerland : {
swisstopoSlope : false ,
2024-07-18 12:45:25 +02:00
swisstopoHiking : false ,
swisstopoHikingClosures : false ,
2024-05-05 18:59:09 +02:00
swisstopoCycling : false ,
2024-07-18 12:45:25 +02:00
swisstopoCyclingClosures : false ,
2024-05-05 18:59:09 +02:00
swisstopoMountainBike : false ,
2024-07-18 12:45:25 +02:00
swisstopoMountainBikeClosures : false ,
2024-06-06 12:52:00 +02:00
swisstopoSkiTouring : false ,
2024-05-05 18:59:09 +02:00
}
} ,
} ,
} ;
2024-07-17 14:19:04 +02:00
// Default Overpass queries used (none)
export const defaultOverpassQueries : LayerTreeType = {
points_of_interest : {
2024-07-17 19:40:53 +02:00
"food" : {
bakery : false ,
"food-store" : false ,
"eat-and-drink" : false ,
} ,
amenities : {
toilets : false ,
"water" : false ,
shower : false ,
2024-08-11 12:17:06 +02:00
shelter : false ,
2024-07-17 19:40:53 +02:00
barrier : false
} ,
tourism : {
attraction : false ,
viewpoint : false ,
2024-07-18 11:03:41 +02:00
hotel : false ,
campsite : false ,
hut : false ,
2024-08-11 12:17:06 +02:00
picnic : false ,
2024-07-17 19:40:53 +02:00
summit : false ,
pass : false ,
climbing : false
} ,
bicycle : {
"bicycle-parking" : false ,
"bicycle-rental" : false ,
"bicycle-shop" : false
} ,
"public-transport" : {
"railway-station" : false ,
"tram-stop" : false ,
"bus-stop" : false ,
ferry : false
2024-07-17 14:19:04 +02:00
} ,
2024-07-18 11:45:35 +02:00
motorized : {
"fuel-station" : false ,
parking : false ,
garage : false
} ,
2024-07-17 14:19:04 +02:00
} ,
} ;
2024-05-05 18:59:09 +02:00
// Default basemaps shown in the layer menu
2024-05-04 23:50:27 +02:00
export const defaultBasemapTree : LayerTreeType = {
basemaps : {
2024-05-05 18:59:09 +02:00
world : {
mapboxOutdoors : true ,
mapboxSatellite : true ,
openStreetMap : true ,
openTopoMap : true ,
openHikingMap : true ,
cyclOSM : true
} ,
countries : {
2024-06-09 16:53:04 +02:00
belgium : {
ignBe : false ,
} ,
2024-05-05 18:59:09 +02:00
bulgaria : {
bgMountains : false ,
} ,
finland : {
finlandTopo : false ,
} ,
france : {
2024-06-07 13:19:28 +02:00
ignFrPlan : false ,
2024-07-24 12:09:45 +02:00
ignFrTopo : false ,
2024-05-05 18:59:09 +02:00
ignFrScan25 : false ,
2024-06-07 13:19:28 +02:00
ignFrSatellite : false ,
2024-05-05 18:59:09 +02:00
} ,
new_zealand : {
linz : false ,
linzTopo : false ,
} ,
norway : {
norwayTopo : false ,
} ,
spain : {
ignEs : false ,
} ,
sweden : {
swedenTopo : false ,
2024-09-03 12:45:35 +02:00
swedenSatellite : false ,
2024-05-05 18:59:09 +02:00
} ,
switzerland : {
2024-07-18 12:45:25 +02:00
swisstopoRaster : false ,
swisstopoVector : false ,
2024-06-07 13:32:44 +02:00
swisstopoSatellite : false ,
2024-05-05 18:59:09 +02:00
} ,
united_kingdom : {
ordnanceSurvey : false ,
} ,
united_states : {
usgs : false ,
}
} ,
2024-05-04 23:50:27 +02:00
}
} ;
2024-05-05 18:59:09 +02:00
// Default overlays shown in the layer menu
2024-05-04 23:50:27 +02:00
export const defaultOverlayTree : LayerTreeType = {
overlays : {
world : {
2024-05-05 18:59:09 +02:00
waymarked_trails : {
waymarkedTrailsHiking : true ,
waymarkedTrailsCycling : true ,
waymarkedTrailsMTB : true ,
waymarkedTrailsSkating : false ,
waymarkedTrailsHorseRiding : false ,
waymarkedTrailsWinter : false ,
2024-08-31 15:57:58 +02:00
} ,
cyclOSMlite : false ,
bikerouterGravel : false ,
2024-05-05 18:59:09 +02:00
} ,
countries : {
france : {
ignFrCadastre : false ,
ignSlope : false ,
2024-06-06 12:16:07 +02:00
ignSkiTouring : false ,
2024-05-05 18:59:09 +02:00
} ,
switzerland : {
swisstopoSlope : false ,
2024-07-18 12:45:25 +02:00
swisstopoHiking : false ,
swisstopoHikingClosures : false ,
2024-05-05 18:59:09 +02:00
swisstopoCycling : false ,
2024-07-18 12:45:25 +02:00
swisstopoCyclingClosures : false ,
2024-05-05 18:59:09 +02:00
swisstopoMountainBike : false ,
2024-07-18 12:45:25 +02:00
swisstopoMountainBikeClosures : false ,
2024-06-06 12:52:00 +02:00
swisstopoSkiTouring : false ,
2024-05-05 18:59:09 +02:00
}
} ,
2024-05-04 23:50:27 +02:00
}
2024-06-06 18:11:03 +02:00
}
2024-07-17 14:19:04 +02:00
// Default Overpass queries shown in the layer menu
export const defaultOverpassTree : LayerTreeType = {
points_of_interest : {
2024-07-17 19:40:53 +02:00
"food" : {
bakery : true ,
"food-store" : true ,
"eat-and-drink" : true ,
} ,
amenities : {
toilets : true ,
"water" : true ,
2024-07-17 23:05:17 +02:00
shower : false ,
2024-08-11 12:17:06 +02:00
shelter : false ,
2024-07-17 19:40:53 +02:00
barrier : false
} ,
tourism : {
2024-07-17 23:05:17 +02:00
attraction : false ,
viewpoint : false ,
2024-07-18 11:03:41 +02:00
hotel : true ,
campsite : true ,
hut : true ,
2024-08-11 12:17:06 +02:00
picnic : false ,
2024-07-17 19:40:53 +02:00
summit : true ,
pass : true ,
climbing : false
} ,
bicycle : {
2024-07-17 23:05:17 +02:00
"bicycle-parking" : false ,
"bicycle-rental" : false ,
2024-07-17 19:40:53 +02:00
"bicycle-shop" : true
} ,
"public-transport" : {
"railway-station" : true ,
"tram-stop" : true ,
"bus-stop" : true ,
2024-07-17 23:05:17 +02:00
ferry : false
2024-07-17 14:19:04 +02:00
} ,
2024-07-18 11:45:35 +02:00
motorized : {
"fuel-station" : false ,
parking : false ,
garage : false
} ,
2024-07-17 14:19:04 +02:00
} ,
} ;
2024-06-26 17:19:41 +02:00
export type CustomLayer = {
id : string ,
name : string ,
tileUrls : string [ ] ,
maxZoom : number ,
layerType : 'basemap' | 'overlay' ,
resourceType : 'raster' | 'vector' ,
value : string | { } ,
} ;
2024-07-17 19:40:53 +02:00
type OverpassQueryData = {
icon : {
svg : string ,
color : string ,
2024-07-17 14:19:04 +02:00
} ,
2024-07-18 11:45:35 +02:00
tags : Record < string , string | boolean | string [ ] > | Record < string , string | boolean | string [ ] > [ ] ,
2024-08-08 17:52:11 +02:00
symbol ? : string ,
2024-07-17 14:19:04 +02:00
} ;
2024-07-17 19:40:53 +02:00
export const overpassQueryData : Record < string , OverpassQueryData > = {
2024-08-08 17:52:11 +02:00
bakery : {
2024-07-17 19:40:53 +02:00
icon : {
svg : Croissant ,
color : "Coral" ,
} ,
tags : {
shop : "bakery"
2024-08-11 13:47:10 +02:00
} ,
symbol : "Convenience Store"
2024-07-17 19:40:53 +02:00
} ,
"food-store" : {
icon : {
svg : ShoppingBasket ,
color : "Coral" ,
} ,
tags : {
shop : [ "supermarket" , "convenience" ] ,
2024-08-08 17:52:11 +02:00
} ,
symbol : "Convenience Store"
2024-07-17 19:40:53 +02:00
} ,
"eat-and-drink" : {
icon : {
svg : Utensils ,
color : "Coral" ,
} ,
tags : {
amenity : [ "restaurant" , "fast_food" , "cafe" , "pub" , "bar" ]
2024-08-08 17:52:11 +02:00
} ,
symbol : "Restaurant"
2024-07-17 19:40:53 +02:00
} ,
2024-08-08 17:52:11 +02:00
toilets : {
2024-07-17 19:40:53 +02:00
icon : {
svg : Droplet ,
color : "DeepSkyBlue" ,
} ,
tags : {
amenity : "toilets"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Restroom"
2024-07-17 19:40:53 +02:00
} ,
water : {
icon : {
svg : Droplet ,
color : "DeepSkyBlue" ,
} ,
2024-07-18 11:45:35 +02:00
tags : [ {
2024-07-17 19:40:53 +02:00
amenity : [ "drinking_water" , "water_point" ]
2024-07-18 11:45:35 +02:00
} , {
2024-07-17 19:40:53 +02:00
natural : "spring" ,
drinking_water : "yes"
2024-08-08 17:52:11 +02:00
} ] ,
symbol : "Drinking Water"
2024-07-17 19:40:53 +02:00
} ,
shower : {
icon : {
svg : ShowerHead ,
color : "DeepSkyBlue" ,
} ,
tags : {
amenity : "shower"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Shower"
2024-07-17 19:40:53 +02:00
} ,
2024-08-11 12:17:06 +02:00
shelter : {
icon : {
2024-08-11 13:47:10 +02:00
svg : Tent ,
2024-08-11 12:17:06 +02:00
color : "#000000" ,
} ,
tags : {
amenity : "shelter"
} ,
2024-08-11 13:47:10 +02:00
symbol : "Shelter"
2024-08-11 12:17:06 +02:00
} ,
2024-07-17 19:40:53 +02:00
"fuel-station" : {
icon : {
svg : Fuel ,
color : "#000000" ,
} ,
tags : {
amenity : "fuel"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Gas Station"
2024-07-17 19:40:53 +02:00
} ,
parking : {
icon : {
svg : CircleParking ,
color : "#000000" ,
} ,
tags : {
amenity : "parking"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Parking Area"
2024-07-17 19:40:53 +02:00
} ,
2024-07-18 11:45:35 +02:00
garage : {
icon : {
svg : Wrench ,
color : "#000000" ,
} ,
tags : {
shop : [ "car_repair" , "motorcycle_repair" ]
2024-08-08 17:52:11 +02:00
} ,
symbol : "Car Repair"
2024-07-18 11:45:35 +02:00
} ,
2024-07-17 19:40:53 +02:00
barrier : {
icon : {
svg : Fence ,
color : "#000000" ,
} ,
tags : {
barrier : true
}
} ,
attraction : {
icon : {
svg : FerrisWheel ,
color : "Green" ,
} ,
tags : {
tourism : "attraction"
}
} ,
viewpoint : {
icon : {
2024-08-11 13:47:10 +02:00
svg : Binoculars ,
2024-07-17 19:40:53 +02:00
color : "Green" ,
} ,
tags : {
tourism : "viewpoint"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Scenic Area"
2024-07-17 19:40:53 +02:00
} ,
2024-07-18 11:03:41 +02:00
hotel : {
2024-07-17 19:40:53 +02:00
icon : {
svg : Bed ,
2024-07-17 23:05:17 +02:00
color : "#e6c100" ,
2024-07-17 19:40:53 +02:00
} ,
tags : {
2024-07-18 11:03:41 +02:00
tourism : [ "hotel" , "hostel" , "guest_house" , "motel" ]
2024-08-08 17:52:11 +02:00
} ,
symbol : "Hotel"
2024-07-18 11:03:41 +02:00
} ,
campsite : {
icon : {
svg : Tent ,
color : "#e6c100" ,
} ,
tags : {
tourism : "camp_site"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Campground"
2024-07-18 11:03:41 +02:00
} ,
hut : {
icon : {
svg : House ,
color : "#e6c100" ,
} ,
tags : {
tourism : [ "alpine_hut" , "wilderness_hut" ]
2024-08-08 17:52:11 +02:00
} ,
symbol : "Lodge"
2024-07-17 19:40:53 +02:00
} ,
2024-08-11 12:17:06 +02:00
picnic : {
icon : {
svg : Utensils ,
color : "Green" ,
} ,
tags : {
tourism : "picnic_site"
} ,
symbol : "Picnic Area"
} ,
2024-07-17 19:40:53 +02:00
summit : {
icon : {
svg : Mountain ,
color : "Green" ,
} ,
tags : {
natural : "peak"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Summit"
2024-07-17 19:40:53 +02:00
} ,
pass : {
icon : {
svg : Mountain ,
color : "Green" ,
} ,
tags : {
mountain_pass : "yes"
}
} ,
climbing : {
icon : {
svg : Pickaxe ,
color : "Green" ,
} ,
tags : {
sport : "climbing"
}
} ,
"bicycle-parking" : {
icon : {
svg : CircleParking ,
color : "HotPink" ,
} ,
tags : {
amenity : "bicycle_parking"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Parking Area"
2024-07-17 19:40:53 +02:00
} ,
"bicycle-rental" : {
icon : {
svg : Store ,
color : "HotPink" ,
} ,
tags : {
amenity : "bicycle_rental"
}
} ,
"bicycle-shop" : {
icon : {
svg : Store ,
color : "HotPink" ,
} ,
tags : {
shop : "bicycle"
}
} ,
"railway-station" : {
icon : {
svg : TrainFront ,
color : "DarkBlue" ,
} ,
tags : {
railway : "station"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Ground Transportation"
2024-07-17 19:40:53 +02:00
} ,
"tram-stop" : {
icon : {
svg : TramFront ,
color : 'DarkBlue' ,
} ,
tags : {
railway : "tram_stop"
} ,
2024-08-08 17:52:11 +02:00
symbol : "Ground Transportation"
2024-07-17 19:40:53 +02:00
} ,
"bus-stop" : {
icon : {
svg : Bus ,
color : "DarkBlue" ,
} ,
tags : {
"public_transport" : [ "stop_position" , "platform" ] ,
bus : "yes"
2024-08-08 17:52:11 +02:00
} ,
symbol : "Ground Transportation"
2024-07-17 19:40:53 +02:00
} ,
ferry : {
icon : {
svg : Ship ,
color : "DarkBlue" ,
} ,
tags : {
amenity : "ferry_terminal"
2024-08-11 13:47:10 +02:00
} ,
symbol : "Anchor"
2024-07-17 14:19:04 +02:00
}
2024-08-11 11:57:01 +02:00
} ;