Compare commits

1 Commits

Author SHA1 Message Date
Sil Klaasboer
05588c2333 Initial setup (without mbtiles example) 2025-02-10 21:40:39 +01:00
11 changed files with 7987 additions and 1 deletions

4
.env Normal file
View File

@@ -0,0 +1,4 @@
DATA_DIR=/home/silklaasboer/tileserver-gl-weatherroutes/data
PORT=9019
MBTILES_FILE=osm-2020-02-10-v3.11_europe_netherlands.mbtiles

View File

@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2025 silklaasboer Copyright (c) 2025 sil klaasboer pavankumar bellary
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

27
data/config.json Normal file
View File

@@ -0,0 +1,27 @@
{
"options": {
"paths": {
"fonts": "fonts",
"styles": "styles"
}
},
"styles": {
"default": {
"style": "default/style.json",
"tilejson": {
"type": "overlay"
}
},
"dark": {
"style": "custom/dark-style.json",
"tilejson": {
"type": "overlay"
}
}
},
"data": {
"openmaptiles": {
"mbtiles": "osm-2020-02-10-v3.11_europe_netherlands.mbtiles"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,611 @@
{
"airfield_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 50,
"y": 0
},
"airport_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 45,
"y": 36
},
"alcohol_shop_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 50,
"y": 54
},
"amusement_park_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 67,
"y": 0
},
"aquarium_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 84,
"y": 0
},
"art_gallery_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 101,
"y": 0
},
"attraction_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 118,
"y": 0
},
"bakery_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 64,
"y": 18
},
"bank_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 81,
"y": 18
},
"bar_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 98,
"y": 18
},
"beer_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 115,
"y": 18
},
"bicycle_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 62,
"y": 36
},
"bicycle_share_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 79,
"y": 36
},
"bus_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 96,
"y": 36
},
"cafe_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 113,
"y": 36
},
"campsite_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 67,
"y": 54
},
"car_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 84,
"y": 54
},
"castle_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 101,
"y": 54
},
"cemetery_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 118,
"y": 54
},
"cinema_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 0,
"y": 72
},
"circle_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 17,
"y": 72
},
"circle_stroked_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 34,
"y": 72
},
"clothing_store_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 51,
"y": 72
},
"college_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 68,
"y": 72
},
"dentist_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 85,
"y": 72
},
"doctor_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 102,
"y": 72
},
"dog_park_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 119,
"y": 72
},
"drinking_water_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 0,
"y": 89
},
"embassy_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 17,
"y": 89
},
"entrance_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 34,
"y": 89
},
"fast_food_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 51,
"y": 89
},
"ferry_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 68,
"y": 89
},
"fire_station_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 85,
"y": 89
},
"fuel_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 102,
"y": 89
},
"garden_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 119,
"y": 89
},
"golf_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 0,
"y": 106
},
"grocery_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 17,
"y": 106
},
"harbor_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 34,
"y": 106
},
"heliport_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 51,
"y": 106
},
"hospital_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 68,
"y": 106
},
"ice_cream_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 85,
"y": 106
},
"information_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 102,
"y": 106
},
"laundry_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 119,
"y": 106
},
"library_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 0,
"y": 123
},
"lodging_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 17,
"y": 123
},
"marker_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 34,
"y": 123
},
"monument_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 51,
"y": 123
},
"motorway_1": {
"height": 18,
"pixelRatio": 1,
"width": 18,
"x": 0,
"y": 0
},
"motorway_2": {
"height": 18,
"pixelRatio": 1,
"width": 25,
"x": 0,
"y": 18
},
"motorway_3": {
"height": 18,
"pixelRatio": 1,
"width": 32,
"x": 18,
"y": 0
},
"motorway_4": {
"height": 18,
"pixelRatio": 1,
"width": 39,
"x": 25,
"y": 18
},
"motorway_5": {
"height": 18,
"pixelRatio": 1,
"width": 45,
"x": 0,
"y": 36
},
"motorway_6": {
"height": 18,
"pixelRatio": 1,
"width": 50,
"x": 0,
"y": 54
},
"mountain_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 68,
"y": 123
},
"museum_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 85,
"y": 123
},
"music_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 102,
"y": 123
},
"park_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 119,
"y": 123
},
"pharmacy_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 136,
"y": 72
},
"picnic_site_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 153,
"y": 72
},
"place_of_worship_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 170,
"y": 72
},
"playground_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 187,
"y": 72
},
"police_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 204,
"y": 72
},
"post_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 221,
"y": 72
},
"prison_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 238,
"y": 72
},
"rail_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 255,
"y": 72
},
"rail_light_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 136,
"y": 89
},
"rail_metro_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 153,
"y": 89
},
"religious_christian_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 170,
"y": 89
},
"religious_jewish_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 187,
"y": 89
},
"religious_muslim_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 204,
"y": 89
},
"restaurant_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 221,
"y": 89
},
"rocket_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 238,
"y": 89
},
"school_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 255,
"y": 89
},
"shop_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 136,
"y": 106
},
"stadium_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 153,
"y": 106
},
"star_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 170,
"y": 106
},
"suitcase_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 187,
"y": 106
},
"swimming_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 204,
"y": 106
},
"theatre_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 221,
"y": 106
},
"toilet_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 238,
"y": 106
},
"town_hall_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 255,
"y": 106
},
"triangle_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 136,
"y": 123
},
"triangle_stroked_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 153,
"y": 123
},
"veterinary_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 170,
"y": 123
},
"volcano_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 187,
"y": 123
},
"wave": {
"height": 8,
"pixelRatio": 1,
"width": 16,
"x": 272,
"y": 72
},
"zoo_11": {
"height": 17,
"pixelRatio": 1,
"width": 17,
"x": 204,
"y": 123
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,611 @@
{
"airfield_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 100,
"y": 0
},
"airport_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 90,
"y": 72
},
"alcohol_shop_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 100,
"y": 108
},
"amusement_park_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 134,
"y": 0
},
"aquarium_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 168,
"y": 0
},
"art_gallery_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 202,
"y": 0
},
"attraction_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 236,
"y": 0
},
"bakery_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 128,
"y": 36
},
"bank_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 162,
"y": 36
},
"bar_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 196,
"y": 36
},
"beer_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 230,
"y": 36
},
"bicycle_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 124,
"y": 72
},
"bicycle_share_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 158,
"y": 72
},
"bus_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 192,
"y": 72
},
"cafe_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 226,
"y": 72
},
"campsite_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 134,
"y": 108
},
"car_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 168,
"y": 108
},
"castle_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 202,
"y": 108
},
"cemetery_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 236,
"y": 108
},
"cinema_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 0,
"y": 144
},
"circle_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 34,
"y": 144
},
"circle_stroked_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 68,
"y": 144
},
"clothing_store_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 102,
"y": 144
},
"college_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 136,
"y": 144
},
"dentist_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 170,
"y": 144
},
"doctor_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 204,
"y": 144
},
"dog_park_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 238,
"y": 144
},
"drinking_water_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 0,
"y": 178
},
"embassy_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 34,
"y": 178
},
"entrance_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 68,
"y": 178
},
"fast_food_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 102,
"y": 178
},
"ferry_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 136,
"y": 178
},
"fire_station_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 170,
"y": 178
},
"fuel_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 204,
"y": 178
},
"garden_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 238,
"y": 178
},
"golf_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 0,
"y": 212
},
"grocery_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 34,
"y": 212
},
"harbor_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 68,
"y": 212
},
"heliport_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 102,
"y": 212
},
"hospital_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 136,
"y": 212
},
"ice_cream_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 170,
"y": 212
},
"information_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 204,
"y": 212
},
"laundry_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 238,
"y": 212
},
"library_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 0,
"y": 246
},
"lodging_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 34,
"y": 246
},
"marker_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 68,
"y": 246
},
"monument_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 102,
"y": 246
},
"motorway_1": {
"height": 36,
"pixelRatio": 2,
"width": 36,
"x": 0,
"y": 0
},
"motorway_2": {
"height": 36,
"pixelRatio": 2,
"width": 50,
"x": 0,
"y": 36
},
"motorway_3": {
"height": 36,
"pixelRatio": 2,
"width": 64,
"x": 36,
"y": 0
},
"motorway_4": {
"height": 36,
"pixelRatio": 2,
"width": 78,
"x": 50,
"y": 36
},
"motorway_5": {
"height": 36,
"pixelRatio": 2,
"width": 90,
"x": 0,
"y": 72
},
"motorway_6": {
"height": 36,
"pixelRatio": 2,
"width": 100,
"x": 0,
"y": 108
},
"mountain_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 136,
"y": 246
},
"museum_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 170,
"y": 246
},
"music_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 204,
"y": 246
},
"park_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 238,
"y": 246
},
"pharmacy_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 272,
"y": 144
},
"picnic_site_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 306,
"y": 144
},
"place_of_worship_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 340,
"y": 144
},
"playground_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 374,
"y": 144
},
"police_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 408,
"y": 144
},
"post_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 442,
"y": 144
},
"prison_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 476,
"y": 144
},
"rail_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 510,
"y": 144
},
"rail_light_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 272,
"y": 178
},
"rail_metro_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 306,
"y": 178
},
"religious_christian_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 340,
"y": 178
},
"religious_jewish_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 374,
"y": 178
},
"religious_muslim_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 408,
"y": 178
},
"restaurant_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 442,
"y": 178
},
"rocket_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 476,
"y": 178
},
"school_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 510,
"y": 178
},
"shop_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 272,
"y": 212
},
"stadium_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 306,
"y": 212
},
"star_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 340,
"y": 212
},
"suitcase_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 374,
"y": 212
},
"swimming_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 408,
"y": 212
},
"theatre_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 442,
"y": 212
},
"toilet_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 476,
"y": 212
},
"town_hall_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 510,
"y": 212
},
"triangle_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 272,
"y": 246
},
"triangle_stroked_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 306,
"y": 246
},
"veterinary_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 340,
"y": 246
},
"volcano_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 374,
"y": 246
},
"wave": {
"height": 16,
"pixelRatio": 2,
"width": 32,
"x": 544,
"y": 144
},
"zoo_11": {
"height": 34,
"pixelRatio": 2,
"width": 34,
"x": 408,
"y": 246
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

File diff suppressed because it is too large Load Diff

11
docker-compose.yml Normal file
View File

@@ -0,0 +1,11 @@
services:
tile-server:
image: maptiler/tileserver-gl:latest
container_name: tile-server
env_file:
- .env
volumes:
- ${DATA_DIR}:/data/
ports:
- ${PORT}:8080
command: ["--file", "${MBTILES_FILE}"]

96
init.sh Executable file
View File

@@ -0,0 +1,96 @@
#!/bin/bash
if ! command -v jq &> /dev/null; then
echo "jq is not installed. Installing..."
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
sudo apt update && sudo apt install -y jq || sudo yum install -y jq
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew install jq
else
echo "Unsupported OS. Please install jq manually."
exit 1
fi
fi
CURRENT_PATH=$(pwd)
DATA_PATH=${CURRENT_PATH}/data
echo "Current DATA_PATH: ($DATA_PATH)"
read -p "Enter a new data path or press Enter to use the default: " USER_PATH
DATA_PATH=${USER_PATH:-$DATA_PATH}
echo "Using path: ($DATA_PATH)"
sed -i "s|^DATA_DIR=.*|DATA_DIR=${DATA_PATH}|" .env
DEFAULT_PORT=$(cat .env | awk -F'=' '/^PORT=/ {print $2}')
read -p "Enter a new port or press Enter to use the current: ${DEFAULT_PORT} " USER_PORT
DEFAULT_PORT=${USER_PORT:-$DEFAULT_PORT}
echo "Using Port: ($DEFAULT_PORT)"
sed -i "s|^PORT=.*|PORT=${DEFAULT_PORT}|" .env
echo -e "\nDownloading mbtiles json"
wget https://cloud.silklaasboer.nl/s/oy9YTccKp9Lqfpy/download/osm-2020-02-10-v3.11_europe_netherlands.mbtiles
mv osm-2020-02-10-v3.11_europe_netherlands.mbtiles $DATA_PATH
FILES=($(find . -type f -name "*.mbtiles"))
if [ ${#FILES[@]} -eq 0 ]; then
echo "No .mbtiles files found!"
exit 1
fi
FILENAMES=()
for file in "${FILES[@]}"; do
FILENAMES+=("$(basename "$file")")
done
echo "Select an MBTiles file:"
for i in "${!FILENAMES[@]}"; do
echo "$((i+1))) ${FILENAMES[$i]}"
done
read -p "Enter the number of your choice: " SELECTION
if ! [[ "$SELECTION" =~ ^[0-9]+$ ]] || [ "$SELECTION" -lt 1 ] || [ "$SELECTION" -gt "${#FILENAMES[@]}" ]; then
echo "Invalid selection!"
exit 1
fi
MBTILES_FILE="${FILENAMES[$((SELECTION-1))]}"
sed -i "s|^MBTILES_FILE=.*|MBTILES_FILE=${MBTILES_FILE}|" .env
echo "Updated .env with MBTILES_FILE=${MBTILES_FILE}"
CONFIG_FILE="data/config.json"
if [ ! -f "$CONFIG_FILE" ]; then
echo "Error: config.json not found!"
exit 1
fi
STYLES_PATH=$(jq -r '.options.paths.styles' "$CONFIG_FILE")
STYLE_FILES=($(jq -r '.styles[].style' "$CONFIG_FILE"))
FONTS_PATH=$(jq -r '.options.paths.fonts' "$CONFIG_FILE")
MISSING_FILES=()
for file in "${STYLE_FILES[@]}"; do
ABSOLUTE_PATH="$DATA_PATH/$STYLES_PATH/$file"
if [ ! -f "$ABSOLUTE_PATH" ]; then
MISSING_FILES+=("$ABSOLUTE_PATH")
fi
done
if [ ${#MISSING_FILES[@]} -gt 0 ]; then
echo -e "\nMissing style files:"
for file in "${MISSING_FILES[@]}"; do
echo " - $file"
done
exit 1
else
echo "All style files are present."
fi
echo -e "\n Downloading fonts"
wget https://github.com/maptiler/tileserver-gl/releases/download/v1.3.0/test_data.zip
unzip test_data.zip
rm -rf test_data.zip
rm -rf styles
rm -f zurich_switzerland.mbtiles
rm -f config.json
mv fonts $DATA_PATH
echo "Starting container"
sudo docker compose up -d tile-server