Initial setup (without mbtiles example)

This commit is contained in:
Sil Klaasboer
2025-02-10 21:27:28 +01:00
parent a2109cd008
commit 7ef42315f5
10 changed files with 7981 additions and 0 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

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}"]

91
init.sh Executable file
View File

@@ -0,0 +1,91 @@
#!/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
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