mirror of
https://github.com/30hours/3lips.git
synced 2024-11-08 12:25:42 +00:00
Update config to add custom tile servers, map start loc
This commit is contained in:
parent
06cb65de15
commit
897cfdcdf7
3 changed files with 62 additions and 32 deletions
|
@ -20,6 +20,8 @@ try:
|
||||||
with open('config/config.yml', 'r') as file:
|
with open('config/config.yml', 'r') as file:
|
||||||
config = yaml.safe_load(file)
|
config = yaml.safe_load(file)
|
||||||
radar_data = config['radar']
|
radar_data = config['radar']
|
||||||
|
map_data = config['map']
|
||||||
|
config_data = config
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
print("Error: Configuration file not found.")
|
print("Error: Configuration file not found.")
|
||||||
except yaml.YAMLError as e:
|
except yaml.YAMLError as e:
|
||||||
|
@ -44,7 +46,7 @@ localisations = [
|
||||||
]
|
]
|
||||||
|
|
||||||
adsbs = [
|
adsbs = [
|
||||||
{"name": "adsb.30hours.dev", "url": "adsb.30hours.dev"},
|
{"name": map_data['tar1090'], "url": map_data['tar1090']},
|
||||||
{"name": "None", "url": ""}
|
{"name": "None", "url": ""}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -123,5 +125,10 @@ def serve_cesium_content(file):
|
||||||
print(f"Error fetching content from Apache server: {e}")
|
print(f"Error fetching content from Apache server: {e}")
|
||||||
return Response('Error fetching content from Apache server', status=500, content_type='text/plain')
|
return Response('Error fetching content from Apache server', status=500, content_type='text/plain')
|
||||||
|
|
||||||
|
# output config file
|
||||||
|
@app.route('/config')
|
||||||
|
def config():
|
||||||
|
return config_data
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run()
|
app.run()
|
||||||
|
|
|
@ -1,18 +1,50 @@
|
||||||
// default camera to Australia
|
// load config with dirty synchronous call
|
||||||
var extent = Cesium.Rectangle.fromDegrees(138.44, -35.19, 138.93, -34.51);
|
url = window.location.origin + '/config';
|
||||||
|
var config;
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open("GET", url, false);
|
||||||
|
xhr.send();
|
||||||
|
if (xhr.status === 200) {
|
||||||
|
config = JSON.parse(xhr.responseText);
|
||||||
|
} else {
|
||||||
|
console.error('Request failed with status:', xhr.status);
|
||||||
|
}
|
||||||
|
|
||||||
|
// fix tile server URL prefix
|
||||||
|
for (var key in config['map']['tile_server']) {
|
||||||
|
if (config['map']['tile_server'].hasOwnProperty(key)) {
|
||||||
|
var value = config['map']['tile_server'][key];
|
||||||
|
var prefix = is_localhost(value) ? 'http://' : 'https://';
|
||||||
|
config['map']['tile_server'][key] = prefix + value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// default camera view
|
||||||
|
var centerLatitude = config['map']['location']['latitude'];
|
||||||
|
var centerLongitude = config['map']['location']['longitude'];
|
||||||
|
var metersPerDegreeLongitude = 111320 * Math.cos(centerLatitude * Math.PI / 180);
|
||||||
|
var metersPerDegreeLatitude = 111132.954 - 559.822 * Math.cos(
|
||||||
|
2 * centerLongitude * Math.PI / 180) + 1.175 *
|
||||||
|
Math.cos(4 * centerLongitude * Math.PI / 180);
|
||||||
|
var widthDegrees = config['map']['center_width'] / metersPerDegreeLongitude;
|
||||||
|
var heightDegrees = config['map']['center_height'] / metersPerDegreeLatitude;
|
||||||
|
var west = centerLongitude - widthDegrees / 2;
|
||||||
|
var south = centerLatitude - heightDegrees / 2;
|
||||||
|
var east = centerLongitude + widthDegrees / 2;
|
||||||
|
var north = centerLatitude + heightDegrees / 2;
|
||||||
|
var extent = Cesium.Rectangle.fromDegrees(west, south, east, north);
|
||||||
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = extent;
|
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = extent;
|
||||||
Cesium.Camera.DEFAULT_VIEW_FACTOR = 0;
|
Cesium.Camera.DEFAULT_VIEW_FACTOR = 0;
|
||||||
|
|
||||||
var imageryProviders = [];
|
var imageryProviders = [];
|
||||||
|
|
||||||
imageryProviders.push(new Cesium.ProviderViewModel({
|
imageryProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "ESRI Adelaide",
|
name: "ESRI",
|
||||||
iconUrl: './icon/esri.jpg',
|
iconUrl: './icon/esri.jpg',
|
||||||
tooltip: 'ESRI Adelaide Tiles',
|
tooltip: 'ESRI Tiles',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return new Cesium.UrlTemplateImageryProvider({
|
return new Cesium.UrlTemplateImageryProvider({
|
||||||
url: 'https://tile.datr.dev/data/esri-adelaide/{z}/{x}/{y}.jpg',
|
url: config['map']['tile_server']['esri'] + '{z}/{x}/{y}.jpg',
|
||||||
credit: 'Esri, Maxar, Earthstar Geographics, USDA FSA, USGS, Aerogrid, IGN, IGP, and the GIS User Community',
|
credit: 'Esri, Maxar, Earthstar Geographics, USDA FSA, USGS, Aerogrid, IGN, IGP, and the GIS User Community',
|
||||||
maximumLevel: 20,
|
maximumLevel: 20,
|
||||||
});
|
});
|
||||||
|
@ -23,10 +55,9 @@ imageryProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "MapBox Streets v11",
|
name: "MapBox Streets v11",
|
||||||
iconUrl: './icon/mapBoxStreets.png',
|
iconUrl: './icon/mapBoxStreets.png',
|
||||||
tooltip: 'MapBox Streets v11 Tiles',
|
tooltip: 'MapBox Streets v11 Tiles',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return new Cesium.UrlTemplateImageryProvider({
|
return new Cesium.UrlTemplateImageryProvider({
|
||||||
url: 'https://tile.datr.dev/data/mapbox-streets-v11/{z}/{x}/{y}.png',
|
url: config['map']['tile_server']['mapbox_streets'] + '{z}/{x}/{y}.png',
|
||||||
credit: '© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a></strong>',
|
credit: '© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a></strong>',
|
||||||
maximumLevel: 16,
|
maximumLevel: 16,
|
||||||
});
|
});
|
||||||
|
@ -37,38 +68,22 @@ imageryProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "MapBox Dark v10",
|
name: "MapBox Dark v10",
|
||||||
iconUrl: './icon/mapBoxDark.png',
|
iconUrl: './icon/mapBoxDark.png',
|
||||||
tooltip: 'MapBox Dark v10 Tiles',
|
tooltip: 'MapBox Dark v10 Tiles',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return new Cesium.UrlTemplateImageryProvider({
|
return new Cesium.UrlTemplateImageryProvider({
|
||||||
url: 'https://tile.datr.dev/data/mapbox-dark-v10/{z}/{x}/{y}.png',
|
url: config['map']['tile_server']['mapbox_dark'] + '{z}/{x}/{y}.png',
|
||||||
credit: '© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a></strong>',
|
credit: '© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a></strong>',
|
||||||
maximumLevel: 16,
|
maximumLevel: 16,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
imageryProviders.push(new Cesium.ProviderViewModel({
|
|
||||||
name: "ESRI",
|
|
||||||
iconUrl: './icon/esri.jpg',
|
|
||||||
tooltip: 'ESRI Tiles',
|
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
|
||||||
return new Cesium.UrlTemplateImageryProvider({
|
|
||||||
url: 'https://tile.datr.dev/data/esri/{z}/{x}/{y}.jpg',
|
|
||||||
credit: 'Esri, Maxar, Earthstar Geographics, USDA FSA, USGS, Aerogrid, IGN, IGP, and the GIS User Community',
|
|
||||||
maximumLevel: 16,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
|
|
||||||
imageryProviders.push(new Cesium.ProviderViewModel({
|
imageryProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "OpenTopoMap",
|
name: "OpenTopoMap",
|
||||||
iconUrl: './icon/opentopomap.png',
|
iconUrl: './icon/opentopomap.png',
|
||||||
tooltip: 'OpenTopoMap Tiles',
|
tooltip: 'OpenTopoMap Tiles',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return new Cesium.UrlTemplateImageryProvider({
|
return new Cesium.UrlTemplateImageryProvider({
|
||||||
url: 'https://tile.datr.dev/data/opentopomap/{z}/{x}/{y}.png',
|
url: config['map']['tile_server']['opentopomap'] + '{z}/{x}/{y}.png',
|
||||||
credit: '<code>Kartendaten: © <a href="https://openstreetmap.org/copyright">OpenStreetMap</a>-Mitwirkende, SRTM | Kartendarstellung: © <a href="http://opentopomap.org">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)</code>',
|
credit: '<code>Kartendaten: © <a href="https://openstreetmap.org/copyright">OpenStreetMap</a>-Mitwirkende, SRTM | Kartendarstellung: © <a href="http://opentopomap.org">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)</code>',
|
||||||
maximumLevel: 8,
|
maximumLevel: 8,
|
||||||
});
|
});
|
||||||
|
@ -81,7 +96,6 @@ terrainProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "WGS84 Ellipsoid",
|
name: "WGS84 Ellipsoid",
|
||||||
iconUrl: './icon/opentopomap.png',
|
iconUrl: './icon/opentopomap.png',
|
||||||
tooltip: 'WGS84 Ellipsoid Terrain',
|
tooltip: 'WGS84 Ellipsoid Terrain',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return new Cesium.EllipsoidTerrainProvider({
|
return new Cesium.EllipsoidTerrainProvider({
|
||||||
});
|
});
|
||||||
|
@ -92,7 +106,6 @@ terrainProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "30m Adelaide",
|
name: "30m Adelaide",
|
||||||
iconUrl: './icon/opentopomap.png',
|
iconUrl: './icon/opentopomap.png',
|
||||||
tooltip: '30m Adelaide Terrain',
|
tooltip: '30m Adelaide Terrain',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return Cesium.CesiumTerrainProvider.fromUrl(
|
return Cesium.CesiumTerrainProvider.fromUrl(
|
||||||
'https://terrain.datr.dev/data/30m_adelaide/'
|
'https://terrain.datr.dev/data/30m_adelaide/'
|
||||||
|
@ -104,7 +117,6 @@ terrainProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "90m Australia",
|
name: "90m Australia",
|
||||||
iconUrl: './icon/opentopomap.png',
|
iconUrl: './icon/opentopomap.png',
|
||||||
tooltip: '90m Australia Terrain',
|
tooltip: '90m Australia Terrain',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return Cesium.CesiumTerrainProvider.fromUrl(
|
return Cesium.CesiumTerrainProvider.fromUrl(
|
||||||
'https://terrain.datr.dev/data/90m_australia/'
|
'https://terrain.datr.dev/data/90m_australia/'
|
||||||
|
@ -116,7 +128,6 @@ terrainProviders.push(new Cesium.ProviderViewModel({
|
||||||
name: "90m South Australia",
|
name: "90m South Australia",
|
||||||
iconUrl: './icon/opentopomap.png',
|
iconUrl: './icon/opentopomap.png',
|
||||||
tooltip: '90m South Australia Terrain',
|
tooltip: '90m South Australia Terrain',
|
||||||
category: 'Offline',
|
|
||||||
creationFunction: function() {
|
creationFunction: function() {
|
||||||
return Cesium.CesiumTerrainProvider.fromUrl(
|
return Cesium.CesiumTerrainProvider.fromUrl(
|
||||||
'https://terrain.datr.dev/data/90m_south_australia/'
|
'https://terrain.datr.dev/data/90m_south_australia/'
|
||||||
|
|
|
@ -8,7 +8,6 @@ radar:
|
||||||
|
|
||||||
associate:
|
associate:
|
||||||
adsb:
|
adsb:
|
||||||
tar1090: 'adsb.30hours.dev'
|
|
||||||
tDelete: 5
|
tDelete: 5
|
||||||
|
|
||||||
localisation:
|
localisation:
|
||||||
|
@ -21,6 +20,19 @@ localisation:
|
||||||
threshold: 500
|
threshold: 500
|
||||||
nDisplay: 50
|
nDisplay: 50
|
||||||
|
|
||||||
|
map:
|
||||||
|
location:
|
||||||
|
latitude: -34.9286
|
||||||
|
longitude: 138.5999
|
||||||
|
center_width: 50000
|
||||||
|
center_height: 40000
|
||||||
|
tile_server:
|
||||||
|
esri: tile.datr.dev/data/esri-adelaide/
|
||||||
|
mapbox_streets: tile.datr.dev/data/mapbox-streets-v11/
|
||||||
|
mapbox_dark: tile.datr.dev/data/mapbox-dark-v10/
|
||||||
|
opentopomap: tile.datr.dev/data/opentopomap/
|
||||||
|
tar1090: adsb.30hours.dev
|
||||||
|
|
||||||
3lips:
|
3lips:
|
||||||
save: true
|
save: true
|
||||||
tDelete: 60
|
tDelete: 60
|
Loading…
Reference in a new issue