baldav/tools/brouter-web/config.js
4aiman be7ee76a4c tools/brouter-web: preserve mirror customization (config + dark toggle + default overlays)
Static brouter-web on the Keenetic mirror pointed at the PC RouteServer.
config.js (host/layers/centre), baldav-custom.{css,js} (day/night toggle that
inverts only the tile layer + dark sidebar, one-time default POI overlays),
and a README with the deploy steps. Kept in-repo so the mirror is reproducible.
2026-09-09 13:50:42 +03:00

133 lines
4.7 KiB
JavaScript

(function () {
var hostname = window.location.hostname;
var origin = window.location.protocol + '//' + hostname + (window.location.port ? ':' + window.location.port : '');
BR.conf = {};
// Switch for intermodal routing demo
BR.conf.transit = false;
// or as query parameter (index.html?transit=true#zoom=...)
// (uses search/query (?) not hash (#) params, as config only executed once at load)
// TODO not included in permalink (better replace permalink with hash plugin)
//var params = new URLSearchParams(window.location.search.slice(1));
//BR.conf.transit = params.has('transit') && (params.get('transit') === 'true');
if (hostname.endsWith('brouter.de')) {
// online service (brouter.de) configuration
BR.conf.host = origin;
BR.conf.profilesUrl = origin + '/brouter/profiles2/';
} else {
// desktop configuration
BR.conf.host = (hostname === '192.168.1.1') ? 'http://192.168.1.18:17777' : 'http://' + hostname + ':17777';
// Pre-loading selected profile disabled locally. Needs brouter-web to run on a
// local web server with the profiles in a subdirectory or allowing file access
// in the Browser (security!), see
// https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally
BR.conf.profilesUrl = origin + '/brouter/profiles2/';
//BR.conf.profilesUrl = 'file://YOUR_PATH_TO/profiles2/';
}
BR.conf.privacyPolicyUrl = '/privacypolicy.html';
// Set the initial position and zoom level of the map
BR.conf.initialMapLocation = [47.41, 40.11];
BR.conf.initialMapZoom = 12;
BR.conf.profiles = [
'trekking',
'shortest',
];
// Map old, renamed legacy profile to new name (from hash of shared or bookmarked URLs)
BR.conf.profilesRename = {
'hiking-beta': 'hiking-mountain',
};
// Removes default base layers when 'true'. Useful for only having custom layers (see below).
BR.conf.clearBaseLayers = true;
// Add custom tile layers
// URL template see http://leafletjs.com/reference.html#tilelayer
// Multiple entries separated by comma (,)
BR.conf.baseLayers = {
// Clean, no-key layers first (CARTO now watermarks without an API key):
'Public transport (ÖPNV)': 'https://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png',
'Topo (OpenTopoMap)': 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png',
'Satellite (Esri)': 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
'OpenStreetMap': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
// Dark, but need a free API key (watermarked until keyed):
'Dark (CARTO — needs key)': 'https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',
};
// Base layer to show on start, as position number in the layer switcher, starting from 0, default is first
BR.conf.defaultBaseLayerIndex = 0;
// Initial route line transparency (0-1, overridden by stored slider setting)
BR.conf.defaultOpacity = 0.67;
// Minimum transparency slider value on load, values between 0 and 1 (0=invisible).
// 0 = no minimum, use stored setting; 1 = always reset to full visibility on load
BR.conf.minOpacity = 0.3;
BR.conf.routingStyles = {
trailer: {
weight: 5,
dashArray: [10, 10],
opacity: 0.6,
color: 'magenta',
},
track: {
weight: 5,
color: 'magenta',
opacity: BR.conf.defaultOpacity,
},
trackCasing: {
weight: 8,
color: 'white',
// assumed to be same as track, see setOpacity
opacity: BR.conf.defaultOpacity,
},
nodata: {
color: 'darkred',
},
beeline: {
weight: 5,
dashArray: [1, 10],
color: 'magenta',
opacity: BR.conf.defaultOpacity,
},
beelineTrailer: {
weight: 5,
dashArray: [1, 10],
opacity: 0.6,
color: 'magenta',
},
};
BR.conf.markerColors = {
// awesome-markers colors (by color picker)
poi: '#436978',
start: '#72b026',
via: '#38aadd',
stop: '#d63e2a',
};
// transit (intermodal routing) demo config
if (BR.conf.transit) {
BR.conf.profiles = [
'trekking',
'shortest',
];
}
// regex needs to be in sync with server, see ServerHandler.getTrackName()
BR.conf.tracknameAllowedChars = 'a-zA-Z0-9 \\._\\-';
BR.conf.overpassBaseUrl = 'https://overpass.kumi.systems/api/interpreter';
// File size limit in kb for loading tracks
BR.conf.trackSizeLimit = 1024 * 10;
})();