Merge branch 'master' into 68-sl-formatting
This commit is contained in:
commit
1330317f1d
112 changed files with 3368 additions and 741 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
LICENSE
|
LICENSE
|
||||||
|
Dockerfile
|
||||||
dist/
|
dist/
|
||||||
*.zip
|
*.zip
|
||||||
yarn.lock
|
yarn.lock
|
||||||
|
|
@ -10,8 +11,7 @@ yarn.lock
|
||||||
layers/
|
layers/
|
||||||
locales/*.json
|
locales/*.json
|
||||||
resources/boundaries/
|
resources/boundaries/
|
||||||
*.sh
|
resources/standalone/*.sh
|
||||||
profiles2/
|
profiles2/
|
||||||
Dockerfile
|
|
||||||
tests/**/*.json
|
tests/**/*.json
|
||||||
tests/**/*.gpx
|
tests/**/*.gpx
|
||||||
|
|
|
||||||
25
CHANGELOG.md
25
CHANGELOG.md
|
|
@ -1,5 +1,30 @@
|
||||||
# BRouter-Web Changelog
|
# BRouter-Web Changelog
|
||||||
|
|
||||||
|
## 0.16.0 (2021-03-30)
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
|
||||||
|
- Locations (POIs) layers powered by Overpass API available in optional layers (under "More") and as custom query in "Custom layers" - by [@stesie](https://github.com/stesie) ([#106](https://github.com/nrenner/brouter-web/issues/106), [#384](https://github.com/nrenner/brouter-web/pull/384))
|
||||||
|
- Message informs about new versions since last visit, "What's new?" button in "About" - by [@bagage](https://github.com/bagage) ([#372](https://github.com/nrenner/brouter-web/pull/372))
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
- Confirm "Delete Route" with Enter key (after opening "Clear" dialog with Backspace key) - by [@mjaschen](https://github.com/mjaschen) ([#385](https://github.com/nrenner/brouter-web/issues/385))
|
||||||
|
- Improve mobile responsivity (full screen dialogs and more) - by [@bagage](https://github.com/bagage) ([#296](https://github.com/nrenner/brouter-web/issues/296))
|
||||||
|
- Gray out unselectable layers below minimum zoom - by [@bagage](https://github.com/bagage) ([#381](https://github.com/nrenner/brouter-web/pull/381))
|
||||||
|
- Add message if no elevation data is available - by [@bagage](https://github.com/bagage) ([#365](https://github.com/nrenner/brouter-web/issues/365))
|
||||||
|
- Size limit for loading a track increased to 10 MiB ([dd34064](https://github.com/nrenner/brouter-web/commit/dd34064e8c09f1bc6b11e2e14e1bb83d41a61ed9))
|
||||||
|
- Update France Go area to 10km - by [@bagage](https://github.com/bagage) ([1c13587](https://github.com/nrenner/brouter-web/commit/1c135879746f670b1a854fcbe55ab5dabacfa0a9))
|
||||||
|
|
||||||
|
### Bugfixes
|
||||||
|
|
||||||
|
- Flickering search field on Firefox @ Android - by [@mjaschen](https://github.com/mjaschen) ([#393](https://github.com/nrenner/brouter-web/issues/393))
|
||||||
|
- Custom layers table width and type translations added - by [@bagage](https://github.com/bagage) ([#379](https://github.com/nrenner/brouter-web/pull/379))
|
||||||
|
|
||||||
|
### Local installation / development
|
||||||
|
|
||||||
|
- New config entries `overpassBaseUrl` and `trackSizeLimit` ([config.template.js](https://github.com/nrenner/brouter-web/blob/a2717ac10298f5e9689b420a0af0eb310eababd3/config.template.js#L131-L134))
|
||||||
|
|
||||||
## 0.15.1 (2021-01-25)
|
## 0.15.1 (2021-01-25)
|
||||||
|
|
||||||
### Improvements [de, fr]
|
### Improvements [de, fr]
|
||||||
|
|
|
||||||
|
|
@ -134,3 +134,9 @@ Copyright (c) 2018 Norbert Renner and [contributors](https://github.com/nrenner/
|
||||||
Copyright (c) 2015, Mapbox All rights reserved; [BSD-2-Clause License](https://github.com/mapbox/tokml/blob/master/LICENSE.md)
|
Copyright (c) 2015, Mapbox All rights reserved; [BSD-2-Clause License](https://github.com/mapbox/tokml/blob/master/LICENSE.md)
|
||||||
- [Jest](https://github.com/facebook/jest)
|
- [Jest](https://github.com/facebook/jest)
|
||||||
Copyright (c) Facebook, Inc. and its affiliates; [MIT License](https://github.com/facebook/jest/blob/master/LICENSE)
|
Copyright (c) Facebook, Inc. and its affiliates; [MIT License](https://github.com/facebook/jest/blob/master/LICENSE)
|
||||||
|
- [overpass-layer](https://github.com/plepe/overpass-layer)
|
||||||
|
Copyright (c) 2020 Stephan Bösch-Plepelits; [MIT License](https://github.com/plepe/overpass-layer/blob/master/LICENSE)
|
||||||
|
- [maki](https://github.com/mapbox/maki)
|
||||||
|
[CC0-1.0 License](https://github.com/mapbox/maki/blob/master/LICENSE.txt)
|
||||||
|
- [temaki](https://github.com/ideditor/temaki)
|
||||||
|
[CC0-1.0 License](https://github.com/ideditor/temaki/blob/main/LICENSE.md)
|
||||||
|
|
|
||||||
5
babel.config.js
Normal file
5
babel.config.js
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
module.exports = {
|
||||||
|
presets: [['@babel/preset-env', {}]],
|
||||||
|
sourceType: 'script',
|
||||||
|
exclude: [/node_modules\/(?!overpass-layer\/).*/],
|
||||||
|
};
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"presets": [["@babel/preset-env", {}]],
|
|
||||||
"sourceType": "script",
|
|
||||||
"exclude": ["node_modules/**"]
|
|
||||||
}
|
|
||||||
|
|
@ -127,4 +127,9 @@
|
||||||
|
|
||||||
// regex needs to be in sync with server, see ServerHandler.getTrackName()
|
// regex needs to be in sync with server, see ServerHandler.getTrackName()
|
||||||
BR.conf.tracknameAllowedChars = 'a-zA-Z0-9 \\._\\-';
|
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;
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
195
css/style.css
195
css/style.css
|
|
@ -45,6 +45,37 @@ table.dataTable {
|
||||||
flex: auto;
|
flex: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* reduce title font size in overpass popups */
|
||||||
|
.leaflet-popup-content h1 {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overpass-tags th {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overpass-layer-icon .sign > * {
|
||||||
|
position: absolute;
|
||||||
|
top: -34px;
|
||||||
|
margin: auto;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overpass-layer-icon .icon-white {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overpass-layer-icon .icon-invert {
|
||||||
|
-webkit-filter: invert(1);
|
||||||
|
filter: invert(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.jstree-themeicon-custom {
|
||||||
|
background-size: 11px !important;
|
||||||
|
width: 15px !important;
|
||||||
|
}
|
||||||
|
|
||||||
/* wrap toolbar controls */
|
/* wrap toolbar controls */
|
||||||
.leaflet-top.leaflet-left {
|
.leaflet-top.leaflet-left {
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|
@ -215,11 +246,14 @@ input#trackname:focus:invalid {
|
||||||
/* map click/drag selects text in controls in Firefox because of display flex */
|
/* map click/drag selects text in controls in Firefox because of display flex */
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
}
|
}
|
||||||
.leaflet-control-container,
|
.leaflet-control-container {
|
||||||
#message .alert {
|
|
||||||
-moz-user-select: text;
|
-moz-user-select: text;
|
||||||
}
|
}
|
||||||
#message {
|
#notification_jar .alert {
|
||||||
|
-moz-user-select: text;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
#notification_jar {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
margin: 10px 46px; /* 10 + 26 + 10 */
|
margin: 10px 46px; /* 10 + 26 + 10 */
|
||||||
z-index: 3001;
|
z-index: 3001;
|
||||||
|
|
@ -242,10 +276,6 @@ input#trackname:focus:invalid {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
#profile_buttons {
|
|
||||||
padding-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* track messages (data tab) */
|
/* track messages (data tab) */
|
||||||
#tab_data,
|
#tab_data,
|
||||||
.CodeMirror {
|
.CodeMirror {
|
||||||
|
|
@ -438,6 +468,19 @@ button.btn {
|
||||||
margin: -6px 0 6px 20px;
|
margin: -6px 0 6px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* "What's new?" (Change Log) */
|
||||||
|
#whatsnew h2 {
|
||||||
|
margin: 2rem 0;
|
||||||
|
border-bottom: 1px solid #dee2e6;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
font-size: 1.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#whatsnew h3 {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* DataTables
|
* DataTables
|
||||||
*/
|
*/
|
||||||
|
|
@ -783,3 +826,141 @@ table.dataTable.display tbody tr:hover.selected {
|
||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Gray out non selectable layers (zoom out of scope, etc.) */
|
||||||
|
.leaflet-control-layers-selector[disabled] ~ span {
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* make modals fullscreen on small devices (code from bootstrap 5) */
|
||||||
|
.modal-fullscreen {
|
||||||
|
width: 100vw;
|
||||||
|
max-width: none;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen .modal-content {
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen .modal-header {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen .modal-body {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.modal-fullscreen .modal-footer {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 575.98px) {
|
||||||
|
.modal-fullscreen-sm-down {
|
||||||
|
width: 100vw;
|
||||||
|
max-width: none;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-sm-down .modal-content {
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-sm-down .modal-header {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-sm-down .modal-body {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-sm-down .modal-footer {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 767.98px) {
|
||||||
|
.modal-fullscreen-md-down {
|
||||||
|
width: 100vw;
|
||||||
|
max-width: none;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-md-down .modal-content {
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-md-down .modal-header {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-md-down .modal-body {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-md-down .modal-footer {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 991.98px) {
|
||||||
|
.modal-fullscreen-lg-down {
|
||||||
|
width: 100vw;
|
||||||
|
max-width: none;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-lg-down .modal-content {
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-lg-down .modal-header {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-lg-down .modal-body {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-lg-down .modal-footer {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 1199.98px) {
|
||||||
|
.modal-fullscreen-xl-down {
|
||||||
|
width: 100vw;
|
||||||
|
max-width: none;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xl-down .modal-content {
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xl-down .modal-header {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xl-down .modal-body {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xl-down .modal-footer {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 1399.98px) {
|
||||||
|
.modal-fullscreen-xxl-down {
|
||||||
|
width: 100vw;
|
||||||
|
max-width: none;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xxl-down .modal-content {
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xxl-down .modal-header {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xxl-down .modal-body {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.modal-fullscreen-xxl-down .modal-footer {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
14
gulpfile.js
14
gulpfile.js
|
|
@ -81,6 +81,7 @@ var paths = {
|
||||||
.concat('css/*.css'),
|
.concat('css/*.css'),
|
||||||
images: mainNpmFiles().filter((f) => RegExp('.*.+(png|gif|svg)', 'i').test(f)),
|
images: mainNpmFiles().filter((f) => RegExp('.*.+(png|gif|svg)', 'i').test(f)),
|
||||||
fonts: mainNpmFiles().filter((f) => RegExp('font-awesome/fonts/.*', 'i').test(f)),
|
fonts: mainNpmFiles().filter((f) => RegExp('font-awesome/fonts/.*', 'i').test(f)),
|
||||||
|
changelog: 'CHANGELOG.md',
|
||||||
locales: 'locales/*.json',
|
locales: 'locales/*.json',
|
||||||
layers: 'layers/**/*.geojson',
|
layers: 'layers/**/*.geojson',
|
||||||
layersDestName: 'layers.js',
|
layersDestName: 'layers.js',
|
||||||
|
|
@ -189,7 +190,8 @@ gulp.task('boundaries', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('changelog', function (cb) {
|
gulp.task('changelog', function (cb) {
|
||||||
var content = 'BR.changelog = `' + marked(fs.readFileSync('./CHANGELOG.md', 'utf-8')) + '`';
|
var content = 'BR.changelog = `' + marked(fs.readFileSync(paths.changelog, 'utf-8')) + '`';
|
||||||
|
content = content.replace(/<h1.*<\/h1>/i, '');
|
||||||
fs.writeFile(paths.dest + '/changelog.js', content, cb);
|
fs.writeFile(paths.dest + '/changelog.js', content, cb);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -207,6 +209,7 @@ gulp.task('watch', function () {
|
||||||
remember.forget('scripts', event.path);
|
remember.forget('scripts', event.path);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
gulp.watch(paths.changelog, gulp.series('changelog', 'reload'));
|
||||||
gulp.watch(paths.locales, gulp.series('locales', 'reload'));
|
gulp.watch(paths.locales, gulp.series('locales', 'reload'));
|
||||||
gulp.watch(paths.styles, gulp.series('styles', 'reload'));
|
gulp.watch(paths.styles, gulp.series('styles', 'reload'));
|
||||||
gulp.watch(paths.layersConfig, gulp.series('layers_config', 'reload'));
|
gulp.watch(paths.layersConfig, gulp.series('layers_config', 'reload'));
|
||||||
|
|
@ -283,13 +286,16 @@ gulp.task('bump:json', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('bump:html', function () {
|
gulp.task('bump:html', function () {
|
||||||
|
const version = nextVersion || pkg.version;
|
||||||
return gulp
|
return gulp
|
||||||
.src('./index.html')
|
.src('./index.html')
|
||||||
.pipe(replace(/<sup class="version">(.*)<\/sup>/, '<sup class="version">' + pkg.version + '</sup>'))
|
.pipe(replace(/<sup class="version">(.*)<\/sup>/, '<sup class="version">' + version + '</sup>'))
|
||||||
.pipe(replace(/BR.version = '(.*?)';/, "BR.version = '" + pkg.version + "';"))
|
.pipe(replace(/BR.version = '(.*?)';/, "BR.version = '" + version + "';"))
|
||||||
.pipe(gulp.dest('.'));
|
.pipe(gulp.dest('.'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('bump', gulp.series('bump:json', 'bump:html'));
|
||||||
|
|
||||||
gulp.task('release:commit', function () {
|
gulp.task('release:commit', function () {
|
||||||
return gulp.src(['./index.html', './package.json']).pipe(git.commit('release: ' + nextVersion));
|
return gulp.src(['./index.html', './package.json']).pipe(git.commit('release: ' + nextVersion));
|
||||||
});
|
});
|
||||||
|
|
@ -468,7 +474,7 @@ gulp.task(
|
||||||
'release',
|
'release',
|
||||||
gulp.series(
|
gulp.series(
|
||||||
'release:init',
|
'release:init',
|
||||||
'bump:json',
|
'bump',
|
||||||
'release:commit',
|
'release:commit',
|
||||||
'release:tag',
|
'release:tag',
|
||||||
'release:push',
|
'release:push',
|
||||||
|
|
|
||||||
370
index.html
370
index.html
|
|
@ -11,6 +11,7 @@
|
||||||
<link rel="stylesheet" href="dist/brouter-web.css" />
|
<link rel="stylesheet" href="dist/brouter-web.css" />
|
||||||
<!-- endinject -->
|
<!-- endinject -->
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="flexcolumn">
|
<body class="flexcolumn">
|
||||||
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
||||||
<button
|
<button
|
||||||
|
|
@ -25,7 +26,7 @@
|
||||||
<span class="fa fa-bars"></span>
|
<span class="fa fa-bars"></span>
|
||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand order-md-last" href="#" data-toggle="modal" data-target="#about"
|
<a class="navbar-brand order-md-last" href="#" data-toggle="modal" data-target="#about"
|
||||||
>BRouter-Web <sup class="version">0.15.1</sup></a
|
>BRouter-Web <sup class="version">0.16.0</sup></a
|
||||||
>
|
>
|
||||||
<div class="collapse navbar-collapse" id="collapsingNavbar">
|
<div class="collapse navbar-collapse" id="collapsingNavbar">
|
||||||
<div class="navbar-nav">
|
<div class="navbar-nav">
|
||||||
|
|
@ -70,7 +71,6 @@
|
||||||
<div class="nav-item dropdown">
|
<div class="nav-item dropdown">
|
||||||
<a
|
<a
|
||||||
class="nav-link dropdown-toggle"
|
class="nav-link dropdown-toggle"
|
||||||
href=""
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
href="#"
|
href="#"
|
||||||
role="button"
|
role="button"
|
||||||
|
|
@ -81,8 +81,10 @@
|
||||||
data-i18n-options='{
|
data-i18n-options='{
|
||||||
"tracksAction": "$t(navbar.load.tracks)",
|
"tracksAction": "$t(navbar.load.tracks)",
|
||||||
"tracksKey": "O",
|
"tracksKey": "O",
|
||||||
|
"trackAsRouteAction": "$t(trackasroute.title)",
|
||||||
|
"trackAsRouteKey": "$t(keyboard.shift)+O",
|
||||||
"nogosAction": "$t(navbar.load.nogos)",
|
"nogosAction": "$t(navbar.load.nogos)",
|
||||||
"nogosKey": "$t(keyboard.shift)+O"
|
"nogosKey": "$t(keyboard.shift)+N"
|
||||||
}'
|
}'
|
||||||
title="Load route"
|
title="Load route"
|
||||||
>
|
>
|
||||||
|
|
@ -100,7 +102,7 @@
|
||||||
class="dropdown-item"
|
class="dropdown-item"
|
||||||
data-i18n="trackasroute.title"
|
data-i18n="trackasroute.title"
|
||||||
data-toggle="modal"
|
data-toggle="modal"
|
||||||
data-target="#loadedittrackdlg"
|
data-target="#loadedittrack"
|
||||||
href="#"
|
href="#"
|
||||||
id="navbarLoadEditTracks"
|
id="navbarLoadEditTracks"
|
||||||
>Track as Route</a
|
>Track as Route</a
|
||||||
|
|
@ -140,7 +142,7 @@
|
||||||
aria-labelledby="Credits window"
|
aria-labelledby="Credits window"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog modal-fullscreen-md-down" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" data-i18n="credits.title">Credits</h4>
|
<h4 class="modal-title" data-i18n="credits.title">Credits</h4>
|
||||||
|
|
@ -171,7 +173,11 @@
|
||||||
<dd data-i18n="[html]credits.boundaries">
|
<dd data-i18n="[html]credits.boundaries">
|
||||||
Administrative Boundaries:
|
Administrative Boundaries:
|
||||||
<a href="https://osm-boundaries.com" target="_blank">OSM-Boundaries</a>,
|
<a href="https://osm-boundaries.com" target="_blank">OSM-Boundaries</a>,
|
||||||
<a href="https://overpass-api.de/" target="_blank">Overpass API</a>
|
<a href="https://overpass-api.de/" class="overpass-url" target="_blank">Overpass API</a>
|
||||||
|
</dd>
|
||||||
|
<dd data-i18n="[html]credits.pois">
|
||||||
|
Locations (POIs):
|
||||||
|
<a href="https://overpass-api.de/" class="overpass-url" target="_blank">Overpass API</a>
|
||||||
</dd>
|
</dd>
|
||||||
<dt data-i18n="credits.elevation-data">Elevation data</dt>
|
<dt data-i18n="credits.elevation-data">Elevation data</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
@ -181,6 +187,11 @@
|
||||||
<h5 data-i18n="credits.map-tiles">Map tiles</h5>
|
<h5 data-i18n="credits.map-tiles">Map tiles</h5>
|
||||||
<dl id="credits-maps"></dl>
|
<dl id="credits-maps"></dl>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-i18n="modal.close" data-dismiss="modal">
|
||||||
|
Close
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -194,7 +205,7 @@
|
||||||
aria-labelledby="Layers window"
|
aria-labelledby="Layers window"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-lg modal-fullscreen-md-down" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" data-i18n="layers.customize">Customize layers</h4>
|
<h4 class="modal-title" data-i18n="layers.customize">Customize layers</h4>
|
||||||
|
|
@ -203,24 +214,26 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<input
|
<div class="form-group">
|
||||||
class="form-control"
|
<label for="layer_name" data-i18n="layers.custom-layer-name-label">Custom layer name</label>
|
||||||
type="text"
|
<input class="form-control" type="text" id="layer_name" spellcheck="true" wrap="off" />
|
||||||
id="layer_name"
|
<p class="help-block" data-i18n="layers.custom-layer-name-helptext">ex: OpenStreetMap</p>
|
||||||
spellcheck="true"
|
</div>
|
||||||
wrap="off"
|
|
||||||
data-i18n="[placeholder]layers.placeholder-layer-name"
|
<div class="form-group">
|
||||||
placeholder="Custom layer name. (ex: OpenStreetMap)"
|
<label for="layer_name" data-i18n="layers.custom-layer-url-label"
|
||||||
/>
|
>Custom layer URL/Query</label
|
||||||
<input
|
>
|
||||||
class="form-control"
|
<input class="form-control" type="text" id="layer_url" spellcheck="false" wrap="off" />
|
||||||
type="text"
|
<p class="help-block">
|
||||||
id="layer_url"
|
<span data-i18n="layers.custom-layer-url-helptext-normal"
|
||||||
spellcheck="false"
|
>URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png</span
|
||||||
wrap="off"
|
><br />
|
||||||
data-i18n="[placeholder]layers.placeholder-layer-url"
|
<span data-i18n="layers.custom-layer-url-helptext-overpass"
|
||||||
placeholder="Custom layer URL. (ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)"
|
>Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];</span
|
||||||
/>
|
>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|
@ -238,6 +251,14 @@
|
||||||
>
|
>
|
||||||
Add overlay
|
Add overlay
|
||||||
</button>
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
id="custom_layers_add_overpass"
|
||||||
|
class="btn btn-success"
|
||||||
|
data-i18n="layers.add-overpass"
|
||||||
|
>
|
||||||
|
Add overpass query
|
||||||
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
id="custom_layers_remove"
|
id="custom_layers_remove"
|
||||||
|
|
@ -261,7 +282,7 @@
|
||||||
aria-labelledby="About window"
|
aria-labelledby="About window"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog modal-fullscreen-md-down" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" data-i18n="about.title">About</h4>
|
<h4 class="modal-title" data-i18n="about.title">About</h4>
|
||||||
|
|
@ -341,7 +362,7 @@
|
||||||
on the client.
|
on the client.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer mt-4">
|
<div class="modal-footer">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-secondary"
|
class="btn btn-secondary"
|
||||||
|
|
@ -368,7 +389,7 @@
|
||||||
aria-labelledby="What's new window"
|
aria-labelledby="What's new window"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-lg modal-fullscreen-md-down" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" data-i18n="whatsnew.title">What's new?</h4>
|
<h4 class="modal-title" data-i18n="whatsnew.title">What's new?</h4>
|
||||||
|
|
@ -379,7 +400,7 @@
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<!-- will be filled automatically -->
|
<!-- will be filled automatically -->
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer mt-4">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-primary" data-i18n="modal.close" data-dismiss="modal">
|
<button type="button" class="btn btn-primary" data-i18n="modal.close" data-dismiss="modal">
|
||||||
Close
|
Close
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -388,83 +409,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Load nogos modal window -->
|
|
||||||
<div
|
|
||||||
class="modal fade"
|
|
||||||
id="loadNogos"
|
|
||||||
tabindex="-1"
|
|
||||||
role="dialog"
|
|
||||||
aria-labelledby="Load nogos window"
|
|
||||||
aria-hidden="true"
|
|
||||||
>
|
|
||||||
<div class="modal-dialog" role="document">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h4 class="modal-title" data-i18n="loadNogos.title">Load no-go areas</h4>
|
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
||||||
<span aria-hidden="true">×</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<p id="nogoError" class="invalid-feedback" style="display: none"></p>
|
|
||||||
<form>
|
|
||||||
<fieldset>
|
|
||||||
<legend data-i18n="loadNogos.source">Source</legend>
|
|
||||||
<p>
|
|
||||||
<input type="text" id="nogoJSON" hidden />
|
|
||||||
<label for="nogoURL" data-i18n="loadNogos.url">URL: </label>
|
|
||||||
<input type="text" name="nogoURL" id="nogoURL" /><br />
|
|
||||||
or<br />
|
|
||||||
<label for="nogoFile" data-i18n="loadNogos.file">File (.geojson): </label>
|
|
||||||
<input type="file" accept=".geojson" name="nogoFile" id="nogoFile" />
|
|
||||||
</p>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<legend data-i18n="loadNogos.defaultProperties">Default properties</legend>
|
|
||||||
<p>
|
|
||||||
<label for="nogoWeight" data-i18n="loadNogos.nogoWeight"
|
|
||||||
>No-go weight (-1 means impassable):
|
|
||||||
</label>
|
|
||||||
<input type="number" name="nogoWeight" id="nogoWeight" value="-1" min="-1" />
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<label for="nogoRadius" data-i18n="loadNogos.nogoRadius"
|
|
||||||
>No-go radius for points (in meters):
|
|
||||||
</label>
|
|
||||||
<input type="number" name="nogoRadius" id="nogoRadius" value="20" min="0" />
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<label for="nogoBuffer" data-i18n="loadNogos.nogoBuffer"
|
|
||||||
>Buffer no-go areas (in meters):
|
|
||||||
</label>
|
|
||||||
<input type="number" name="nogoBuffer" id="nogoBuffer" value="0" min="0" />
|
|
||||||
</p>
|
|
||||||
</fieldset>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
class="btn btn-secondary"
|
|
||||||
data-i18n="[value]modal.close"
|
|
||||||
data-dismiss="modal"
|
|
||||||
>
|
|
||||||
Close
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
class="btn btn-primary"
|
|
||||||
data-i18n="[value]loadNogos.load"
|
|
||||||
id="submitNogos"
|
|
||||||
>
|
|
||||||
Load
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Export modal window -->
|
<!-- Export modal window -->
|
||||||
<div
|
<div
|
||||||
class="modal fade"
|
class="modal fade"
|
||||||
|
|
@ -474,7 +418,7 @@
|
||||||
aria-labelledby="Export route window"
|
aria-labelledby="Export route window"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog modal-fullscreen-md-down" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" data-i18n="export.title">Export route</h4>
|
<h4 class="modal-title" data-i18n="export.title">Export route</h4>
|
||||||
|
|
@ -483,7 +427,7 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form name="export">
|
<form name="export" id="exportForm">
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-form-label col-sm-2" data-i18n="export.trackname">Name</label>
|
<label class="col-form-label col-sm-2" data-i18n="export.trackname">Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
|
|
@ -565,26 +509,22 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button
|
<button type="button" class="btn btn-secondary" data-i18n="modal.close" data-dismiss="modal">
|
||||||
type="button"
|
|
||||||
class="btn btn-secondary"
|
|
||||||
data-i18n="modal.close"
|
|
||||||
data-dismiss="modal"
|
|
||||||
>
|
|
||||||
Close
|
Close
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
data-i18n="export.title"
|
data-i18n="export.title"
|
||||||
|
form="exportForm"
|
||||||
id="submitExport"
|
id="submitExport"
|
||||||
>
|
>
|
||||||
Export route
|
Export route
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -592,13 +532,13 @@
|
||||||
<!-- Track to Route modal window -->
|
<!-- Track to Route modal window -->
|
||||||
<div
|
<div
|
||||||
class="modal fade"
|
class="modal fade"
|
||||||
id="loadedittrackdlg"
|
id="loadedittrack"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
role="dialog"
|
role="dialog"
|
||||||
aria-labelledby="Load Track as route"
|
aria-labelledby="Load Track as route"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog modal-lg modal-fullscreen-md-down" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title" data-i18n="trackasroute.title">Load Track as Route</h4>
|
<h4 class="modal-title" data-i18n="trackasroute.title">Load Track as Route</h4>
|
||||||
|
|
@ -609,11 +549,15 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form name="loadedittrackForm" id="loadedittrackForm">
|
<form name="loadedittrackForm" id="loadedittrackForm">
|
||||||
<div class="form-group row mt-4">
|
<div class="form-group row">
|
||||||
<label class="col-sm-3" for="loadedittrackFile" data-i18n="trackasroute.file"
|
<label
|
||||||
|
class="col-form-label col-sm-3"
|
||||||
|
for="loadedittrackFile"
|
||||||
|
data-i18n="trackasroute.file"
|
||||||
>Trackfile</label
|
>Trackfile</label
|
||||||
>
|
>
|
||||||
<div class="custom-control custom-file col-sm-8">
|
<div class="col-sm-9">
|
||||||
|
<div class="custom-control custom-file">
|
||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
accept=".gpx,.kml,.geojson,*.*"
|
accept=".gpx,.kml,.geojson,*.*"
|
||||||
|
|
@ -624,17 +568,23 @@
|
||||||
<label
|
<label
|
||||||
for="loadedittrackFile"
|
for="loadedittrackFile"
|
||||||
class="custom-file-label"
|
class="custom-file-label"
|
||||||
|
data-i18n="[data-browse]trackasroute.browse"
|
||||||
style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis"
|
style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis"
|
||||||
>
|
>
|
||||||
</label
|
</label
|
||||||
><br />
|
><br />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group row mt-4">
|
<div class="form-group row">
|
||||||
<label class="col-sm-3" for="cb_showtracklayer" data-i18n="trackasroute.tracklayer"
|
<label
|
||||||
|
class="col-form-label col-sm-3"
|
||||||
|
for="cb_showtracklayer"
|
||||||
|
data-i18n="trackasroute.tracklayer"
|
||||||
>Track Layer</label
|
>Track Layer</label
|
||||||
>
|
>
|
||||||
|
<div class="col-sm-9">
|
||||||
<div class="custom-control custom-switch">
|
<div class="custom-control custom-switch">
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
|
|
@ -650,11 +600,16 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group row mt-4">
|
<div class="form-group row">
|
||||||
<label class="col-sm-3" for="cb_showpois" data-i18n="trackasroute.showpois"
|
<label
|
||||||
|
class="col-form-label col-sm-3"
|
||||||
|
for="cb_showpois"
|
||||||
|
data-i18n="trackasroute.showpois"
|
||||||
>POI's</label
|
>POI's</label
|
||||||
>
|
>
|
||||||
|
<div class="col-sm-9">
|
||||||
<div class="custom-control custom-switch">
|
<div class="custom-control custom-switch">
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
|
|
@ -670,6 +625,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="accordion" id="manual_accordion">
|
<div class="accordion" id="manual_accordion">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
@ -693,11 +649,12 @@
|
||||||
for="simplify_tolerance"
|
for="simplify_tolerance"
|
||||||
class="col-sm-3"
|
class="col-sm-3"
|
||||||
data-i18n="trackasroute.fuzziness"
|
data-i18n="trackasroute.fuzziness"
|
||||||
>fuzziness</label
|
>Fuzziness</label
|
||||||
>
|
>
|
||||||
|
<div class="col-sm-9">
|
||||||
<input
|
<input
|
||||||
type="range"
|
type="range"
|
||||||
class="custom-range col-sm-8"
|
class="custom-range"
|
||||||
id="simplify_tolerance"
|
id="simplify_tolerance"
|
||||||
min="-500"
|
min="-500"
|
||||||
max="500"
|
max="500"
|
||||||
|
|
@ -707,6 +664,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
id="msg_busy"
|
id="msg_busy"
|
||||||
|
|
@ -715,26 +673,142 @@
|
||||||
>
|
>
|
||||||
Please wait!
|
Please wait!
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer mt-4">
|
</form>
|
||||||
<button
|
</div>
|
||||||
type="button"
|
<div class="modal-footer">
|
||||||
class="btn btn-secondary"
|
<button type="button" class="btn btn-secondary" data-i18n="modal.close" data-dismiss="modal">
|
||||||
data-i18n="modal.close"
|
|
||||||
data-dismiss="modal"
|
|
||||||
>
|
|
||||||
Close
|
Close
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="submit"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
|
form="loadedittrackForm"
|
||||||
data-i18n="trackasroute.title"
|
data-i18n="trackasroute.title"
|
||||||
id="submitLoadEditTrack"
|
id="submitLoadEditTrack"
|
||||||
>
|
>
|
||||||
Import Track
|
Import Track
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Load nogos modal window -->
|
||||||
|
<div
|
||||||
|
class="modal fade"
|
||||||
|
id="loadNogos"
|
||||||
|
tabindex="-1"
|
||||||
|
role="dialog"
|
||||||
|
aria-labelledby="Load nogos window"
|
||||||
|
aria-hidden="true"
|
||||||
|
>
|
||||||
|
<div class="modal-dialog modal-lg modal-fullscreen-md-down" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" data-i18n="loadNogos.title">Load no-go areas</h4>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p id="nogoError" class="invalid-feedback" style="display: none"></p>
|
||||||
|
<form name="loadNogosForm" id="loadNogosForm">
|
||||||
|
<fieldset>
|
||||||
|
<legend data-i18n="loadNogos.source">Source</legend>
|
||||||
|
<div>
|
||||||
|
<input type="text" id="nogoJSON" hidden />
|
||||||
|
<div class="form-group row">
|
||||||
|
<label for="nogoURL" class="col-form-label col-sm-3" data-i18n="loadNogos.url"
|
||||||
|
>URL</label
|
||||||
|
>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="text" name="nogoURL" id="nogoURL" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p data-i18n="modal.or">or</p>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-form-label col-sm-3" for="nogoFile" data-i18n="loadNogos.file"
|
||||||
|
>File (.geojson)</label
|
||||||
|
>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<div class="custom-control custom-file">
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
accept=".geojson"
|
||||||
|
name="nogoFile"
|
||||||
|
id="nogoFile"
|
||||||
|
class="custom-file-input"
|
||||||
|
/>
|
||||||
|
<label
|
||||||
|
for="nogoFile"
|
||||||
|
class="custom-file-label"
|
||||||
|
data-i18n="[data-browse]trackasroute.browse"
|
||||||
|
style="
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend data-i18n="loadNogos.defaultProperties">Default properties</legend>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label
|
||||||
|
class="col-form-label col-sm-8"
|
||||||
|
for="nogoWeight"
|
||||||
|
data-i18n="loadNogos.nogoWeight"
|
||||||
|
>No-go weight (-1 means impassable):
|
||||||
|
</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input type="number" name="nogoWeight" id="nogoWeight" value="-1" min="-1" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label
|
||||||
|
class="col-form-label col-sm-8"
|
||||||
|
for="nogoRadius"
|
||||||
|
data-i18n="loadNogos.nogoRadius"
|
||||||
|
>No-go radius for points (in meters):
|
||||||
|
</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input type="number" name="nogoRadius" id="nogoRadius" value="20" min="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group row">
|
||||||
|
<label
|
||||||
|
class="col-form-label col-sm-8"
|
||||||
|
for="nogoBuffer"
|
||||||
|
data-i18n="loadNogos.nogoBuffer"
|
||||||
|
>Buffer no-go areas (in meters):
|
||||||
|
</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input type="number" name="nogoBuffer" id="nogoBuffer" value="0" min="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-i18n="modal.close" data-dismiss="modal">
|
||||||
|
Close
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
class="btn btn-primary"
|
||||||
|
form="loadNogosForm"
|
||||||
|
data-i18n="loadNogos.load"
|
||||||
|
id="submitNogos"
|
||||||
|
>
|
||||||
|
Load
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -763,7 +837,7 @@
|
||||||
class="fa"
|
class="fa"
|
||||||
width="1em"
|
width="1em"
|
||||||
height="1em"
|
height="1em"
|
||||||
viewBox="0 0 24 24"
|
viewbox="0 0 24 24"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="currentColor"
|
stroke="currentColor"
|
||||||
stroke-width="2.2"
|
stroke-width="2.2"
|
||||||
|
|
@ -837,7 +911,11 @@
|
||||||
|
|
||||||
<div class="leaflet-sidebar-flex-row flexgrow">
|
<div class="leaflet-sidebar-flex-row flexgrow">
|
||||||
<div id="map" class="leaflet-sidebar-map">
|
<div id="map" class="leaflet-sidebar-map">
|
||||||
|
<div id="notification_jar">
|
||||||
<div id="message"></div>
|
<div id="message"></div>
|
||||||
|
<div id="whats_new_message"></div>
|
||||||
|
<div id="overpass_loading_indicator"></div>
|
||||||
|
</div>
|
||||||
<div id="preview" hidden data-i18n="map.preview">Preview</div>
|
<div id="preview" hidden data-i18n="map.preview">Preview</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -846,7 +924,8 @@
|
||||||
<div class="leaflet-sidebar-pane" id="tab_layers_control">
|
<div class="leaflet-sidebar-pane" id="tab_layers_control">
|
||||||
<h1 class="leaflet-sidebar-header">
|
<h1 class="leaflet-sidebar-header">
|
||||||
<span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span
|
<span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span
|
||||||
><span class="leaflet-sidebar-expand"><i class="fa fa-expand"></i></span
|
><span class="d-none d-md-block leaflet-sidebar-expand"
|
||||||
|
><i class="fa fa-expand"></i></span
|
||||||
><span data-i18n="sidebar.layers.title">Layers</span>
|
><span data-i18n="sidebar.layers.title">Layers</span>
|
||||||
</h1>
|
</h1>
|
||||||
<div id="layers-control-wrapper"></div>
|
<div id="layers-control-wrapper"></div>
|
||||||
|
|
@ -910,7 +989,8 @@
|
||||||
<div class="leaflet-sidebar-pane" id="tab_profile">
|
<div class="leaflet-sidebar-pane" id="tab_profile">
|
||||||
<h1 class="leaflet-sidebar-header">
|
<h1 class="leaflet-sidebar-header">
|
||||||
<span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span
|
<span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span
|
||||||
><span class="leaflet-sidebar-expand"><i class="fa fa-expand"></i></span
|
><span class="d-none d-md-block leaflet-sidebar-expand"
|
||||||
|
><i class="fa fa-expand"></i></span
|
||||||
><span data-i18n="sidebar.customize-profile.title">Customize profile</span>
|
><span data-i18n="sidebar.customize-profile.title">Customize profile</span>
|
||||||
</h1>
|
</h1>
|
||||||
<form class="flexcolumn flexgrow">
|
<form class="flexcolumn flexgrow">
|
||||||
|
|
@ -951,7 +1031,7 @@
|
||||||
aria-labelledby="params-tab"
|
aria-labelledby="params-tab"
|
||||||
>
|
>
|
||||||
<div id="profile_params"></div>
|
<div id="profile_params"></div>
|
||||||
<div class="form-group" id="profile_buttons">
|
<div class="form-group pt-1">
|
||||||
<button id="save" type="button" class="btn btn-primary btn-sm">
|
<button id="save" type="button" class="btn btn-primary btn-sm">
|
||||||
<span class="fa fa-cloud-upload"></span>
|
<span class="fa fa-cloud-upload"></span>
|
||||||
<span data-i18n="sidebar.profile.apply">Apply</span>
|
<span data-i18n="sidebar.profile.apply">Apply</span>
|
||||||
|
|
@ -973,7 +1053,7 @@
|
||||||
placeholder="Write your custom profile here."
|
placeholder="Write your custom profile here."
|
||||||
></textarea>
|
></textarea>
|
||||||
<div id="profile_message"></div>
|
<div id="profile_message"></div>
|
||||||
<div class="form-group" id="profile_buttons">
|
<div class="form-group pt-1">
|
||||||
<button id="upload" type="button" class="btn btn-primary btn-sm">
|
<button id="upload" type="button" class="btn btn-primary btn-sm">
|
||||||
<span class="fa fa-cloud-upload"></span>
|
<span class="fa fa-cloud-upload"></span>
|
||||||
<span data-i18n="sidebar.profile.apply">Apply</span>
|
<span data-i18n="sidebar.profile.apply">Apply</span>
|
||||||
|
|
@ -998,7 +1078,9 @@
|
||||||
<div class="leaflet-sidebar-pane" id="tab_data">
|
<div class="leaflet-sidebar-pane" id="tab_data">
|
||||||
<h1 class="leaflet-sidebar-header">
|
<h1 class="leaflet-sidebar-header">
|
||||||
<span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span>
|
<span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span>
|
||||||
<span class="leaflet-sidebar-expand"><i class="fa fa-expand"></i></span>
|
<span class="d-none d-md-block leaflet-sidebar-expand"
|
||||||
|
><i class="fa fa-expand"></i
|
||||||
|
></span>
|
||||||
<span
|
<span
|
||||||
id="data-sync-map"
|
id="data-sync-map"
|
||||||
class="sync-map active"
|
class="sync-map active"
|
||||||
|
|
@ -1015,7 +1097,9 @@
|
||||||
<h1 class="leaflet-sidebar-header">
|
<h1 class="leaflet-sidebar-header">
|
||||||
<span data-i18n="sidebar.itinerary.title">Itinerary</span
|
<span data-i18n="sidebar.itinerary.title">Itinerary</span
|
||||||
><span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span
|
><span class="leaflet-sidebar-close"><i class="fa fa-caret-right"></i></span
|
||||||
><span class="leaflet-sidebar-expand"><i class="fa fa-expand"></i></span>
|
><span class="d-none d-md-block leaflet-sidebar-expand"
|
||||||
|
><i class="fa fa-expand"></i
|
||||||
|
></span>
|
||||||
</h1>
|
</h1>
|
||||||
<div id="itinerary" class="flexcolumn flexgrow"></div>
|
<div id="itinerary" class="flexcolumn flexgrow"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -1143,7 +1227,7 @@
|
||||||
<script>
|
<script>
|
||||||
// global package prefix for BRouter web application
|
// global package prefix for BRouter web application
|
||||||
BR = {};
|
BR = {};
|
||||||
BR.version = '0.15.1';
|
BR.version = '0.16.0';
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
'\r\n###\r\n### BRouter-Web\r\n###\r\n### Please note that the routing API used here is not public!\r\n###\r\n'
|
'\r\n###\r\n### BRouter-Web\r\n###\r\n### Please note that the routing API used here is not public!\r\n###\r\n'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
BR.LayersConfig = L.Class.extend({
|
BR.LayersConfig = L.Class.extend({
|
||||||
|
overpassFrontend: new OverpassFrontend(BR.conf.overpassBaseUrl || '//overpass-api.de/api/interpreter'),
|
||||||
defaultBaseLayers: BR.confLayers.defaultBaseLayers,
|
defaultBaseLayers: BR.confLayers.defaultBaseLayers,
|
||||||
defaultOverlays: BR.confLayers.defaultOverlays,
|
defaultOverlays: BR.confLayers.defaultOverlays,
|
||||||
legacyNameToIdMap: BR.confLayers.legacyNameToIdMap,
|
legacyNameToIdMap: BR.confLayers.legacyNameToIdMap,
|
||||||
|
|
@ -7,6 +8,8 @@ BR.LayersConfig = L.Class.extend({
|
||||||
|
|
||||||
initialize: function (map) {
|
initialize: function (map) {
|
||||||
this._map = map;
|
this._map = map;
|
||||||
|
this._overpassLoadingIndicator = new BR.Message('overpass_loading_indicator', { alert: false });
|
||||||
|
this._overpassActiveRequestCount = 0;
|
||||||
|
|
||||||
this._addLeafletProvidersLayers();
|
this._addLeafletProvidersLayers();
|
||||||
this._customizeLayers();
|
this._customizeLayers();
|
||||||
|
|
@ -169,6 +172,70 @@ BR.LayersConfig = L.Class.extend({
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_showOverpassLoadingIndicator: function () {
|
||||||
|
this._overpassActiveRequestCount++;
|
||||||
|
this._overpassLoadingIndicator.showLoading(i18next.t('layers.overpass-loading-indicator'));
|
||||||
|
},
|
||||||
|
|
||||||
|
_hideOverpassLoadingIndicator: function () {
|
||||||
|
if (--this._overpassActiveRequestCount === 0) {
|
||||||
|
this._overpassLoadingIndicator.hide();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getOverpassIconUrl: function (icon) {
|
||||||
|
const iconPrefix = /^(maki|temaki|fas)-/;
|
||||||
|
let iconUrl = null;
|
||||||
|
|
||||||
|
if (icon && iconPrefix.test(icon)) {
|
||||||
|
const iconName = icon.replace(iconPrefix, '');
|
||||||
|
const postfix = icon.startsWith('maki-') ? '-11' : '';
|
||||||
|
iconUrl = `dist/images/${iconName}${postfix}.svg`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return iconUrl;
|
||||||
|
},
|
||||||
|
|
||||||
|
createOverpassLayer: function (query, icon) {
|
||||||
|
let markerSign = '<i class="fa fa-search icon-white" style="width: 25px;"></i>';
|
||||||
|
|
||||||
|
const iconUrl = this.getOverpassIconUrl(icon);
|
||||||
|
if (iconUrl) {
|
||||||
|
markerSign = `<img class="icon-invert" src="${iconUrl}" width="11" />`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Object.assign(
|
||||||
|
new OverpassLayer({
|
||||||
|
overpassFrontend: this.overpassFrontend,
|
||||||
|
query: query,
|
||||||
|
minZoom: 12,
|
||||||
|
feature: {
|
||||||
|
title: '{{ tags.name }}',
|
||||||
|
body:
|
||||||
|
'<table class="overpass-tags">{% for k, v in tags %}{% if k[:5] != "addr:" %}<tr><th>{{ k }}</th><td>{% if k matches "/email/" %}<a href="mailto:{{ v }}">{{ v }}</a>{% elseif v matches "/^http/" %}<a href="{{ v }}">{{ v }}</a>{% elseif v matches "/^www/" %}<a href="http://{{ v }}">{{ v }}</a>{% else %}{{ v }}{% endif %}</td></tr>{% endif %}{% endfor %}</table>',
|
||||||
|
markerSymbol:
|
||||||
|
'<svg width="25px" height="41px" anchorX="12" anchorY="41" viewBox="0 0 32 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M16,1 C7.7146,1 1,7.65636364 1,15.8648485 C1,24.0760606 16,51 16,51 C16,51 31,24.0760606 31,15.8648485 C31,7.65636364 24.2815,1 16,1 L16,1 Z" fill="#436978"></path></svg>',
|
||||||
|
markerSign,
|
||||||
|
style: function (overpassObject) {
|
||||||
|
return {
|
||||||
|
// nodeFeature: 'Marker' isn't currently working well, hence use transparent circle color for nodes
|
||||||
|
color:
|
||||||
|
overpassObject.type === 'node'
|
||||||
|
? '#00000000'
|
||||||
|
: this.defaultBaseLayers?.[0] === 'cyclosm'
|
||||||
|
? 'darkorange'
|
||||||
|
: '#3388ff',
|
||||||
|
};
|
||||||
|
}.bind(this),
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
onLoadStart: this._showOverpassLoadingIndicator.bind(this),
|
||||||
|
onLoadEnd: this._hideOverpassLoadingIndicator.bind(this),
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
createLayer: function (layerData) {
|
createLayer: function (layerData) {
|
||||||
var props = layerData.properties;
|
var props = layerData.properties;
|
||||||
var url = props.url;
|
var url = props.url;
|
||||||
|
|
@ -251,6 +318,8 @@ BR.LayersConfig = L.Class.extend({
|
||||||
if (props.subdomains) {
|
if (props.subdomains) {
|
||||||
layer.subdomains = props.subdomains;
|
layer.subdomains = props.subdomains;
|
||||||
}
|
}
|
||||||
|
} else if (props.dataSource === 'OverpassAPI') {
|
||||||
|
layer = this.createOverpassLayer(props.query, props.icon);
|
||||||
} else {
|
} else {
|
||||||
// JOSM
|
// JOSM
|
||||||
var josmUrl = url;
|
var josmUrl = url;
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,10 @@ BR.Map = {
|
||||||
|
|
||||||
$('#credits').on('show.bs.modal', function (event) {
|
$('#credits').on('show.bs.modal', function (event) {
|
||||||
BR.Map._renderLayerCredits(layersControl._layers);
|
BR.Map._renderLayerCredits(layersControl._layers);
|
||||||
|
const overpassUrl = new URL(BR.conf.overpassBaseUrl || 'https://overpass-api.de').origin;
|
||||||
|
for (const link of document.getElementsByClassName('overpass-url')) {
|
||||||
|
link.href = overpassUrl;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
new L.Control.PermalinkAttribution().addTo(map);
|
new L.Control.PermalinkAttribution().addTo(map);
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,30 @@
|
||||||
BR.WhatsNew = {
|
BR.WhatsNew = {
|
||||||
|
newOnly: undefined,
|
||||||
|
|
||||||
init: function () {
|
init: function () {
|
||||||
var self = this;
|
var self = this;
|
||||||
self.prepare(self.hasNewVersions());
|
self.dismissableMessage = new BR.Message('whats_new_message', {
|
||||||
$('#whatsnew').on('hidden.bs.modal', function () {
|
onClosed: function () {
|
||||||
|
document.getElementsByClassName('version')[0].classList.remove('version-new');
|
||||||
|
if (BR.Util.localStorageAvailable()) {
|
||||||
localStorage.setItem('changelogVersion', self.getLatestVersion());
|
localStorage.setItem('changelogVersion', self.getLatestVersion());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
$('#whatsnew').on('shown.bs.modal', function () {
|
||||||
|
self.dismissableMessage.hide();
|
||||||
|
});
|
||||||
|
$('#whatsnew').on('hidden.bs.modal', function () {
|
||||||
// next time popup is open, by default we will see everything
|
// next time popup is open, by default we will see everything
|
||||||
self.prepare(false);
|
self.prepare(false);
|
||||||
});
|
});
|
||||||
$('#whatsnew').on('shown.bs.modal', function () {
|
if (!self.getCurrentVersion() && BR.Util.localStorageAvailable()) {
|
||||||
BR.message.hide();
|
localStorage.setItem('changelogVersion', self.getLatestVersion());
|
||||||
document.getElementsByClassName('version')[0].classList.remove('version-new');
|
}
|
||||||
});
|
self.prepare(self.hasNewVersions());
|
||||||
|
|
||||||
if (self.hasNewVersions()) {
|
if (self.hasNewVersions()) {
|
||||||
BR.message.showInfo(i18next.t('whatsnew.new-version'));
|
self.dismissableMessage.showInfo(i18next.t('whatsnew.new-version'));
|
||||||
document.getElementsByClassName('version')[0].classList.add('version-new');
|
document.getElementsByClassName('version')[0].classList.add('version-new');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -21,21 +33,28 @@ BR.WhatsNew = {
|
||||||
return BR.changelog.match('<h2 id="(.*)">')[1];
|
return BR.changelog.match('<h2 id="(.*)">')[1];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getCurrentVersion: function () {
|
||||||
|
if (!BR.Util.localStorageAvailable()) return null;
|
||||||
|
|
||||||
|
return localStorage.getItem('changelogVersion');
|
||||||
|
},
|
||||||
|
|
||||||
hasNewVersions: function () {
|
hasNewVersions: function () {
|
||||||
if (!BR.Util.localStorageAvailable()) return false;
|
return this.getCurrentVersion() && this.getCurrentVersion() !== this.getLatestVersion();
|
||||||
|
|
||||||
var currentVersion = localStorage.getItem('changelogVersion');
|
|
||||||
|
|
||||||
return !currentVersion || currentVersion < this.getLatestVersion();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
prepare: function (newOnly) {
|
prepare: function (newOnly) {
|
||||||
var currentVersion = localStorage.getItem('changelogVersion');
|
if (newOnly === this.newOnly) {
|
||||||
|
// do not rebuild modal content unnecessarily
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.newOnly = newOnly;
|
||||||
var container = document.querySelector('#whatsnew .modal-body');
|
var container = document.querySelector('#whatsnew .modal-body');
|
||||||
var cl = BR.changelog;
|
var cl = BR.changelog;
|
||||||
if (newOnly && currentVersion) {
|
if (newOnly && this.getCurrentVersion()) {
|
||||||
var head = '<h2 id="' + currentVersion + '">';
|
var head = '<h2 id="' + this.getCurrentVersion() + '">';
|
||||||
cl = cl.substring(0, cl.indexOf(head));
|
var idx = cl.indexOf(head);
|
||||||
|
if (idx >= 0) cl = cl.substring(0, idx);
|
||||||
}
|
}
|
||||||
container.innerHTML = cl;
|
container.innerHTML = cl;
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,10 @@ BR.Export = L.Class.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_selectTrackname: function () {
|
||||||
|
trackname.setSelectionRange(0, trackname.value.lastIndexOf(BR.Browser.download ? ' (' : ' - '));
|
||||||
|
},
|
||||||
|
|
||||||
_generateTrackname: function () {
|
_generateTrackname: function () {
|
||||||
var trackname = this.trackname;
|
var trackname = this.trackname;
|
||||||
this._getCityAtPosition(
|
this._getCityAtPosition(
|
||||||
|
|
@ -180,6 +184,8 @@ BR.Export = L.Class.extend({
|
||||||
trackname.value = trackname.value.replace(/[>)]/g, '').replace(/ \(/g, ' - ');
|
trackname.value = trackname.value.replace(/[>)]/g, '').replace(/ \(/g, ' - ');
|
||||||
this._validationMessage();
|
this._validationMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._selectTrackname();
|
||||||
}, this)
|
}, this)
|
||||||
);
|
);
|
||||||
}, this)
|
}, this)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ BR.Layers = L.Class.extend({
|
||||||
if (BR.Util.localStorageAvailable()) {
|
if (BR.Util.localStorageAvailable()) {
|
||||||
var layers = JSON.parse(localStorage.getItem('map/customLayers'));
|
var layers = JSON.parse(localStorage.getItem('map/customLayers'));
|
||||||
for (a in layers) {
|
for (a in layers) {
|
||||||
this._addLayer(a, layers[a].layer, layers[a].isOverlay);
|
this._addLayer(a, layers[a].layer, layers[a].isOverlay, layers[a].dataSource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -13,6 +13,13 @@ BR.Layers = L.Class.extend({
|
||||||
_loadTable: function () {
|
_loadTable: function () {
|
||||||
var layersData = [];
|
var layersData = [];
|
||||||
for (layer in this._customLayers) {
|
for (layer in this._customLayers) {
|
||||||
|
if (this._customLayers[layer].dataSource === 'OverpassAPI') {
|
||||||
|
layersData.push([
|
||||||
|
layer,
|
||||||
|
this._customLayers[layer].layer.options.query,
|
||||||
|
i18next.t('sidebar.layers.table.type_overpass_query'),
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
var isOverlay = this._customLayers[layer].isOverlay;
|
var isOverlay = this._customLayers[layer].isOverlay;
|
||||||
layersData.push([
|
layersData.push([
|
||||||
layer,
|
layer,
|
||||||
|
|
@ -22,6 +29,7 @@ BR.Layers = L.Class.extend({
|
||||||
: i18next.t('sidebar.layers.table.type_layer'),
|
: i18next.t('sidebar.layers.table.type_layer'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (this._layersTable != null) {
|
if (this._layersTable != null) {
|
||||||
this._layersTable.destroy();
|
this._layersTable.destroy();
|
||||||
}
|
}
|
||||||
|
|
@ -51,6 +59,7 @@ BR.Layers = L.Class.extend({
|
||||||
|
|
||||||
L.DomUtil.get('custom_layers_add_base').onclick = L.bind(this._addBaseLayer, this);
|
L.DomUtil.get('custom_layers_add_base').onclick = L.bind(this._addBaseLayer, this);
|
||||||
L.DomUtil.get('custom_layers_add_overlay').onclick = L.bind(this._addOverlay, this);
|
L.DomUtil.get('custom_layers_add_overlay').onclick = L.bind(this._addOverlay, this);
|
||||||
|
L.DomUtil.get('custom_layers_add_overpass').onclick = L.bind(this._addOverpassQuery, this);
|
||||||
L.DomUtil.get('custom_layers_remove').onclick = L.bind(this._remove, this);
|
L.DomUtil.get('custom_layers_remove').onclick = L.bind(this._remove, this);
|
||||||
|
|
||||||
this._loadLayers();
|
this._loadLayers();
|
||||||
|
|
@ -83,10 +92,10 @@ BR.Layers = L.Class.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_addFromInput: function (isOverlay) {
|
_addFromInput: function (isOverlay, dataSource) {
|
||||||
var layer_name = L.DomUtil.get('layer_name').value;
|
var layer_name = L.DomUtil.get('layer_name').value;
|
||||||
var layer_url = L.DomUtil.get('layer_url').value;
|
var layer_url = L.DomUtil.get('layer_url').value;
|
||||||
if (layer_name.length > 0 && layer_url.length > 0) this._addLayer(layer_name, layer_url, isOverlay);
|
if (layer_name.length > 0 && layer_url.length > 0) this._addLayer(layer_name, layer_url, isOverlay, dataSource);
|
||||||
},
|
},
|
||||||
|
|
||||||
_addBaseLayer: function (evt) {
|
_addBaseLayer: function (evt) {
|
||||||
|
|
@ -95,18 +104,28 @@ BR.Layers = L.Class.extend({
|
||||||
_addOverlay: function (evt) {
|
_addOverlay: function (evt) {
|
||||||
this._addFromInput(true);
|
this._addFromInput(true);
|
||||||
},
|
},
|
||||||
|
_addOverpassQuery: function (evt) {
|
||||||
|
this._addFromInput(true, 'OverpassAPI');
|
||||||
|
},
|
||||||
|
|
||||||
_addLayer: function (layerName, layerUrl, isOverlay) {
|
_addLayer: function (layerName, layerUrl, isOverlay, dataSource) {
|
||||||
if (layerName in this._layers) return;
|
if (layerName in this._layers) return;
|
||||||
|
|
||||||
if (layerName in this._customLayers) return;
|
if (layerName in this._customLayers) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var layer = L.tileLayer(layerUrl);
|
var layer;
|
||||||
|
|
||||||
|
if (dataSource === 'OverpassAPI') {
|
||||||
|
layer = this._layersControl.layersConfig.createOverpassLayer(layerUrl);
|
||||||
|
} else {
|
||||||
|
layer = L.tileLayer(layerUrl);
|
||||||
|
}
|
||||||
|
|
||||||
this._customLayers[layerName] = {
|
this._customLayers[layerName] = {
|
||||||
layer: layer,
|
layer: layer,
|
||||||
isOverlay: isOverlay,
|
isOverlay: isOverlay,
|
||||||
|
dataSource: dataSource,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isOverlay) {
|
if (isOverlay) {
|
||||||
|
|
@ -128,6 +147,18 @@ BR.Layers = L.Class.extend({
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
'map/customLayers',
|
'map/customLayers',
|
||||||
JSON.stringify(this._customLayers, function (k, v) {
|
JSON.stringify(this._customLayers, function (k, v) {
|
||||||
|
if (v === undefined) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (v.dataSource === 'OverpassAPI') {
|
||||||
|
return {
|
||||||
|
dataSource: 'OverpassAPI',
|
||||||
|
isOverlay: true,
|
||||||
|
layer: v.layer.options.query,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// dont write Leaflet.Layer in localStorage; simply keep the URL
|
// dont write Leaflet.Layer in localStorage; simply keep the URL
|
||||||
return v._url || v;
|
return v._url || v;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,7 @@ BR.LayersTab = BR.ControlLayers.extend({
|
||||||
core: {
|
core: {
|
||||||
multiple: false,
|
multiple: false,
|
||||||
themes: {
|
themes: {
|
||||||
icons: false,
|
icons: true,
|
||||||
dots: false,
|
dots: false,
|
||||||
},
|
},
|
||||||
data: treeData,
|
data: treeData,
|
||||||
|
|
@ -188,6 +188,7 @@ BR.LayersTab = BR.ControlLayers.extend({
|
||||||
function createRootNode(name) {
|
function createRootNode(name) {
|
||||||
var rootNode = {
|
var rootNode = {
|
||||||
text: i18next.t('sidebar.layers.category.' + name, name),
|
text: i18next.t('sidebar.layers.category.' + name, name),
|
||||||
|
icon: false,
|
||||||
state: {
|
state: {
|
||||||
disabled: true,
|
disabled: true,
|
||||||
},
|
},
|
||||||
|
|
@ -218,6 +219,7 @@ BR.LayersTab = BR.ControlLayers.extend({
|
||||||
childNode = {
|
childNode = {
|
||||||
id: id,
|
id: id,
|
||||||
text: getText(props, parent),
|
text: getText(props, parent),
|
||||||
|
icon: self.layersConfig.getOverpassIconUrl(props.icon) || false,
|
||||||
state: {
|
state: {
|
||||||
checked: self.layersConfig.isDefaultLayer(id, props.overlay),
|
checked: self.layersConfig.isDefaultLayer(id, props.overlay),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ BR.Message = L.Class.extend({
|
||||||
// true to manually attach click event to close button,
|
// true to manually attach click event to close button,
|
||||||
// Bootstrap data-api's auto-initialization doesn't work in Controls because of stopPropagation
|
// Bootstrap data-api's auto-initialization doesn't work in Controls because of stopPropagation
|
||||||
alert: false,
|
alert: false,
|
||||||
|
onClosed: null,
|
||||||
},
|
},
|
||||||
|
|
||||||
initialize: function (id, options) {
|
initialize: function (id, options) {
|
||||||
|
|
@ -18,12 +19,20 @@ BR.Message = L.Class.extend({
|
||||||
case 'error':
|
case 'error':
|
||||||
iconClass = 'fa-times-circle';
|
iconClass = 'fa-times-circle';
|
||||||
alertClass = 'alert-danger';
|
alertClass = 'alert-danger';
|
||||||
|
break;
|
||||||
case 'warning':
|
case 'warning':
|
||||||
iconClass = 'fa-exclamation-triangle';
|
iconClass = 'fa-exclamation-triangle';
|
||||||
alertClass = 'alert-warning';
|
alertClass = 'alert-warning';
|
||||||
|
break;
|
||||||
|
case 'loading':
|
||||||
|
iconClass = 'fa-spinner fa-pulse';
|
||||||
|
alertClass = 'alert-secondary';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
case 'info':
|
case 'info':
|
||||||
iconClass = 'fa-info-circle';
|
iconClass = 'fa-info-circle';
|
||||||
alertClass = 'alert-info';
|
alertClass = 'alert-info';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
L.DomEvent.disableClickPropagation(ele);
|
L.DomEvent.disableClickPropagation(ele);
|
||||||
|
|
@ -41,6 +50,10 @@ BR.Message = L.Class.extend({
|
||||||
msg +
|
msg +
|
||||||
'</div>';
|
'</div>';
|
||||||
|
|
||||||
|
if (this.options.onClosed) {
|
||||||
|
$('#' + this.id + ' .alert').on('closed.bs.alert', this.options.onClosed);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.options.alert) {
|
if (this.options.alert) {
|
||||||
$('#' + this.id + ' .alert').alert();
|
$('#' + this.id + ' .alert').alert();
|
||||||
}
|
}
|
||||||
|
|
@ -74,6 +87,10 @@ BR.Message = L.Class.extend({
|
||||||
showInfo: function (msg) {
|
showInfo: function (msg) {
|
||||||
this._show(msg, 'info');
|
this._show(msg, 'info');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
showLoading: function (msg) {
|
||||||
|
this._show(msg, 'loading');
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// static instance as global control
|
// static instance as global control
|
||||||
|
|
|
||||||
|
|
@ -153,6 +153,9 @@
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
value: ['route'],
|
value: ['route'],
|
||||||
|
onShown: function () {
|
||||||
|
$('button.bootbox-accept', $(this)).focus();
|
||||||
|
},
|
||||||
callback: function (result) {
|
callback: function (result) {
|
||||||
if (result !== null) {
|
if (result !== null) {
|
||||||
if (result.indexOf('route') !== -1) {
|
if (result.indexOf('route') !== -1) {
|
||||||
|
|
@ -454,6 +457,10 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
BR.WhatsNew.init();
|
BR.WhatsNew.init();
|
||||||
|
|
||||||
|
$('.modal').on('shown.bs.modal', function (e) {
|
||||||
|
$('input:visible:enabled:first', e.target).focus();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
i18next.on('languageChanged', function (detectedLanguage) {
|
i18next.on('languageChanged', function (detectedLanguage) {
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ BR.CircleGoArea = L.Control.extend({
|
||||||
options: {
|
options: {
|
||||||
countriesUrl: BR.conf.countriesUrl || 'dist/boundaries/countries.topo.json',
|
countriesUrl: BR.conf.countriesUrl || 'dist/boundaries/countries.topo.json',
|
||||||
statesUrl: BR.conf.statesUrl || 'dist/boundaries/germany-states.topo.json',
|
statesUrl: BR.conf.statesUrl || 'dist/boundaries/germany-states.topo.json',
|
||||||
overpassBaseUrl: BR.conf.overpassBaseUrl || 'https://overpass-api.de/api/interpreter?data=',
|
overpassDataUrl: (BR.conf.overpassBaseUrl || 'https://overpass-api.de/api/interpreter') + '?data=',
|
||||||
shortcut: {
|
shortcut: {
|
||||||
draw: {
|
draw: {
|
||||||
enable: 73, // char code for 'i'
|
enable: 73, // char code for 'i'
|
||||||
|
|
@ -137,7 +137,7 @@ BR.CircleGoArea = L.Control.extend({
|
||||||
query += '(area.a[admin_level="' + adminLevelFallback + '"];)->.p; relation(pivot.p); out geom;';
|
query += '(area.a[admin_level="' + adminLevelFallback + '"];)->.p; relation(pivot.p); out geom;';
|
||||||
}
|
}
|
||||||
|
|
||||||
var url = this.options.overpassBaseUrl + encodeURIComponent(query);
|
var url = this.options.overpassDataUrl + encodeURIComponent(query);
|
||||||
|
|
||||||
this.marker.setIcon(this.iconSpinner);
|
this.marker.setIcon(this.iconSpinner);
|
||||||
BR.Util.getJson(
|
BR.Util.getJson(
|
||||||
|
|
@ -281,7 +281,7 @@ BR.CircleGoArea = L.Control.extend({
|
||||||
this._applyStateRules(center);
|
this._applyStateRules(center);
|
||||||
}
|
}
|
||||||
} else if (name === 'Metropolitan France') {
|
} else if (name === 'Metropolitan France') {
|
||||||
this.radius = 20000;
|
this.radius = 10000;
|
||||||
this._setNogoCircle(center);
|
this._setNogoCircle(center);
|
||||||
} else {
|
} else {
|
||||||
console.error('unhandled country: ' + name);
|
console.error('unhandled country: ' + name);
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ BR.NogoAreas = L.Control.extend({
|
||||||
enable: 78, // char code for 'n'
|
enable: 78, // char code for 'n'
|
||||||
disable: 27, // char code for 'ESC'
|
disable: 27, // char code for 'ESC'
|
||||||
},
|
},
|
||||||
|
import: 78, // char code for 'n'; used in conjunction with 'shift'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -97,6 +98,8 @@ BR.NogoAreas = L.Control.extend({
|
||||||
|
|
||||||
L.DomEvent.addListener(document, 'keydown', this._keydownListener, this);
|
L.DomEvent.addListener(document, 'keydown', this._keydownListener, this);
|
||||||
|
|
||||||
|
L.DomUtil.get('nogoFile').onchange = L.bind(this.onFileChanged, this);
|
||||||
|
|
||||||
this.editTools.on(
|
this.editTools.on(
|
||||||
'editable:drawing:end',
|
'editable:drawing:end',
|
||||||
function (e) {
|
function (e) {
|
||||||
|
|
@ -147,6 +150,13 @@ BR.NogoAreas = L.Control.extend({
|
||||||
if (!BR.Util.keyboardShortcutsAllowed(e)) {
|
if (!BR.Util.keyboardShortcutsAllowed(e)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (true === e.shiftKey && e.keyCode === this.options.shortcut.import) {
|
||||||
|
$('#loadNogos').modal('show');
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (e.keyCode === this.options.shortcut.draw.disable && this.button.state() === BR.NogoAreas.STATE_CANCEL) {
|
if (e.keyCode === this.options.shortcut.draw.disable && this.button.state() === BR.NogoAreas.STATE_CANCEL) {
|
||||||
this.stopDrawing(this.button);
|
this.stopDrawing(this.button);
|
||||||
} else if (
|
} else if (
|
||||||
|
|
@ -162,6 +172,11 @@ BR.NogoAreas = L.Control.extend({
|
||||||
$('#nogoError').css('display', message ? 'block' : 'none');
|
$('#nogoError').css('display', message ? 'block' : 'none');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onFileChanged: function (e) {
|
||||||
|
if (!e.target.files[0]) return;
|
||||||
|
$(e.target).next('label').text(e.target.files[0].name);
|
||||||
|
},
|
||||||
|
|
||||||
uploadNogos: function () {
|
uploadNogos: function () {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,9 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
simplifyTolerance: -1,
|
simplifyTolerance: -1,
|
||||||
isTestMode: false,
|
isTestMode: false,
|
||||||
simplifyLastKnownGood: 0.001,
|
simplifyLastKnownGood: 0.001,
|
||||||
|
shortcut: {
|
||||||
|
open: 79, // char code for 'O'; used in conjunction with 'shift'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
setDialogDraggable: function (jqDlgHeader) {
|
setDialogDraggable: function (jqDlgHeader) {
|
||||||
|
|
@ -84,12 +87,14 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
(this._bounds = undefined), (this._trackPoints = []);
|
(this._bounds = undefined), (this._trackPoints = []);
|
||||||
this._currentGeoJSON = {};
|
this._currentGeoJSON = {};
|
||||||
this._options = {
|
this._options = {
|
||||||
ext: 'gpx',
|
|
||||||
showTrackLayer: true,
|
showTrackLayer: true,
|
||||||
showPointAsPoi: true,
|
showPointAsPoi: true,
|
||||||
simplifyTolerance: -1,
|
simplifyTolerance: -1,
|
||||||
isTestMode: false,
|
isTestMode: false,
|
||||||
simplifyLastKnownGood: 0.001,
|
simplifyLastKnownGood: 0.001,
|
||||||
|
shortcut: {
|
||||||
|
open: 79, // char code for 'O'; used in conjunction with 'shift'
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -156,13 +161,13 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
if (typeof isBusy === undefined) {
|
if (typeof isBusy === undefined) {
|
||||||
isBusy = false;
|
isBusy = false;
|
||||||
}
|
}
|
||||||
if (isBusy === true) $('#loadedittrackdlg #msg_busy').removeClass('invisible');
|
if (isBusy === true) $('#loadedittrack #msg_busy').removeClass('invisible');
|
||||||
else $('#loadedittrackdlg #msg_busy').addClass('invisible');
|
else $('#loadedittrack #msg_busy').addClass('invisible');
|
||||||
},
|
},
|
||||||
|
|
||||||
onManualCollapse: function (e) {
|
onManualCollapse: function (e) {
|
||||||
//workaround for starting with closed collapse
|
//workaround for starting with closed collapse
|
||||||
if ($('#loadedittrackdlg').is(':hidden')) return;
|
if ($('#loadedittrack').is(':hidden')) return;
|
||||||
this._options.isTestMode = $(e.target).hasClass('show');
|
this._options.isTestMode = $(e.target).hasClass('show');
|
||||||
|
|
||||||
if (this._options.isTestMode) {
|
if (this._options.isTestMode) {
|
||||||
|
|
@ -172,13 +177,13 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
},
|
},
|
||||||
|
|
||||||
onAdd: function (map) {
|
onAdd: function (map) {
|
||||||
$('#loadedittrackdlg').on(
|
$('#loadedittrack').on(
|
||||||
'hidden.bs.modal',
|
'hidden.bs.modal',
|
||||||
function (e) {
|
function (e) {
|
||||||
this.cleanup();
|
this.cleanup();
|
||||||
}.bind(this)
|
}.bind(this)
|
||||||
);
|
);
|
||||||
$('#loadedittrackdlg').on(
|
$('#loadedittrack').on(
|
||||||
'show.bs.modal',
|
'show.bs.modal',
|
||||||
function (e) {
|
function (e) {
|
||||||
$('#manual_collapse').collapse('hide');
|
$('#manual_collapse').collapse('hide');
|
||||||
|
|
@ -186,7 +191,8 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
}.bind(this)
|
}.bind(this)
|
||||||
);
|
);
|
||||||
|
|
||||||
L.DomUtil.get('submitLoadEditTrack').onclick = L.bind(function () {
|
L.DomUtil.get('submitLoadEditTrack').onclick = L.bind(function (e) {
|
||||||
|
e.preventDefault(); // prevent page reload on form submission
|
||||||
this._closeCanceled = false;
|
this._closeCanceled = false;
|
||||||
this.onBusyChanged(true);
|
this.onBusyChanged(true);
|
||||||
if (this._testLayer.getLayers().length > 0) {
|
if (this._testLayer.getLayers().length > 0) {
|
||||||
|
|
@ -195,7 +201,7 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
function () {
|
function () {
|
||||||
this.addRoutingPoints();
|
this.addRoutingPoints();
|
||||||
this.onBusyChanged(false);
|
this.onBusyChanged(false);
|
||||||
$('#loadedittrackdlg').modal('hide');
|
$('#loadedittrack').modal('hide');
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
@ -203,7 +209,7 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
setTimeout(
|
setTimeout(
|
||||||
function () {
|
function () {
|
||||||
this.convertTrackLocal();
|
this.convertTrackLocal();
|
||||||
$('#loadedittrackdlg').modal('hide');
|
$('#loadedittrack').modal('hide');
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
@ -214,7 +220,7 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
L.DomUtil.get('loadedittrackFile').onchange = L.bind(this.onFileChanged, this);
|
L.DomUtil.get('loadedittrackFile').onchange = L.bind(this.onFileChanged, this);
|
||||||
this.onFileChanged({ target: L.DomUtil.get('loadedittrackFile') });
|
this.onFileChanged({ target: L.DomUtil.get('loadedittrackFile') });
|
||||||
|
|
||||||
this.setDialogDraggable($('#loadedittrackdlg .modal-header'));
|
this.setDialogDraggable($('#loadedittrack .modal-header'));
|
||||||
|
|
||||||
$('#manual_collapse').collapse('hide');
|
$('#manual_collapse').collapse('hide');
|
||||||
$('#manual_collapse').on(
|
$('#manual_collapse').on(
|
||||||
|
|
@ -224,6 +230,8 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
}.bind(this)
|
}.bind(this)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
L.DomEvent.addListener(document, 'keydown', this.keydownListener, this);
|
||||||
|
|
||||||
// dummy, no own representation, delegating to EasyButton
|
// dummy, no own representation, delegating to EasyButton
|
||||||
var dummy = L.DomUtil.create('div');
|
var dummy = L.DomUtil.create('div');
|
||||||
dummy.hidden = true;
|
dummy.hidden = true;
|
||||||
|
|
@ -382,6 +390,16 @@ BR.routeLoader = function (map, layersControl, routing, pois) {
|
||||||
|
|
||||||
this.onBusyChanged(false);
|
this.onBusyChanged(false);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
keydownListener: function (e) {
|
||||||
|
if (
|
||||||
|
BR.Util.keyboardShortcutsAllowed(e) &&
|
||||||
|
e.keyCode === this._options.shortcut.open &&
|
||||||
|
true === e.shiftKey
|
||||||
|
) {
|
||||||
|
$('#navbarLoadEditTracks').click();
|
||||||
|
}
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
RouteLoader.include(L.Evented.prototype);
|
RouteLoader.include(L.Evented.prototype);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
BR.Search = L.Control.Geocoder.extend({
|
BR.Search = class extends L.Control.Geocoder {
|
||||||
options: {
|
constructor(options) {
|
||||||
|
super(
|
||||||
|
Object.assign(
|
||||||
|
{
|
||||||
geocoder: new L.Control.Geocoder.LatLng({
|
geocoder: new L.Control.Geocoder.LatLng({
|
||||||
next: new L.Control.Geocoder.Nominatim({
|
next: new L.Control.Geocoder.Nominatim({
|
||||||
serviceUrl: 'https://nominatim.openstreetmap.org/',
|
serviceUrl: 'https://nominatim.openstreetmap.org/',
|
||||||
|
|
@ -7,23 +10,20 @@ BR.Search = L.Control.Geocoder.extend({
|
||||||
sizeInMeters: 800,
|
sizeInMeters: 800,
|
||||||
}),
|
}),
|
||||||
position: 'topleft',
|
position: 'topleft',
|
||||||
|
expand: 'click',
|
||||||
shortcut: {
|
shortcut: {
|
||||||
search: 70, // char code for 'f'
|
search: 70, // char code for 'f'
|
||||||
},
|
},
|
||||||
},
|
|
||||||
|
|
||||||
initialize: function (options) {
|
|
||||||
L.Control.Geocoder.prototype.initialize.call(this, options);
|
|
||||||
L.setOptions(this, {
|
|
||||||
// i18next.t will only return 'undefined' if it is called in a static context
|
|
||||||
// (e.g. when added directly to "options:" above), so we have to call it here
|
|
||||||
placeholder: i18next.t('map.geocoder-placeholder'),
|
placeholder: i18next.t('map.geocoder-placeholder'),
|
||||||
});
|
},
|
||||||
|
options
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
L.DomEvent.addListener(document, 'keydown', this._keydownListener, this);
|
L.DomEvent.addListener(document, 'keydown', this._keydownListener, this);
|
||||||
},
|
}
|
||||||
|
|
||||||
markGeocode: function (result) {
|
markGeocode(result) {
|
||||||
this._map.fitBounds(result.geocode.bbox, {
|
this._map.fitBounds(result.geocode.bbox, {
|
||||||
maxZoom: 17,
|
maxZoom: 17,
|
||||||
});
|
});
|
||||||
|
|
@ -37,18 +37,18 @@ BR.Search = L.Control.Geocoder.extend({
|
||||||
}).addTo(this._map);
|
}).addTo(this._map);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
}
|
||||||
|
|
||||||
clear: function () {
|
clear() {
|
||||||
if (this._geocodeMarker) {
|
if (this._geocodeMarker) {
|
||||||
this._map.removeLayer(this._geocodeMarker);
|
this._map.removeLayer(this._geocodeMarker);
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
|
|
||||||
_keydownListener: function (e) {
|
_keydownListener(e) {
|
||||||
if (BR.Util.keyboardShortcutsAllowed(e) && e.keyCode === this.options.shortcut.search) {
|
if (BR.Util.keyboardShortcutsAllowed(e) && e.keyCode === this.options.shortcut.search) {
|
||||||
$('#map .leaflet-control-geocoder')[0].dispatchEvent(new MouseEvent('mousedown'));
|
$('#map .leaflet-control-geocoder')[0].dispatchEvent(new MouseEvent('click'));
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
});
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ BR.tracksLoader = function (map, layersControl, routing, pois) {
|
||||||
layerOptions: BR.Track.getGeoJsonOptions(layersControl),
|
layerOptions: BR.Track.getGeoJsonOptions(layersControl),
|
||||||
addToMap: false,
|
addToMap: false,
|
||||||
// File size limit in kb (default: 1024) ?
|
// File size limit in kb (default: 1024) ?
|
||||||
fileSizeLimit: 1024,
|
fileSizeLimit: BR.conf.trackSizeLimit || 1024 * 10,
|
||||||
shortcut: {
|
shortcut: {
|
||||||
open: 79, // char code for 'o'
|
open: 79, // char code for 'o'
|
||||||
},
|
},
|
||||||
|
|
@ -61,13 +61,13 @@ BR.tracksLoader = function (map, layersControl, routing, pois) {
|
||||||
},
|
},
|
||||||
|
|
||||||
_keydownListener: function (e) {
|
_keydownListener: function (e) {
|
||||||
if (BR.Util.keyboardShortcutsAllowed(e) && e.keyCode === this.options.shortcut.open) {
|
if (
|
||||||
if (e.shiftKey) {
|
BR.Util.keyboardShortcutsAllowed(e) &&
|
||||||
$('#loadNogos').modal('show');
|
e.keyCode === this.options.shortcut.open &&
|
||||||
} else {
|
false === e.shiftKey
|
||||||
|
) {
|
||||||
$('#navbarLoadTracks')[0].click();
|
$('#navbarLoadTracks')[0].click();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
var tracksLoaderControl = new TracksLoader();
|
var tracksLoaderControl = new TracksLoader();
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,11 @@
|
||||||
L.bind(function (obj, index, array) {
|
L.bind(function (obj, index, array) {
|
||||||
if (obj) {
|
if (obj) {
|
||||||
layersControl.activateLayer(obj);
|
layersControl.activateLayer(obj);
|
||||||
|
if (obj.layer instanceof OverpassLayer) {
|
||||||
|
// hack to select overlay (mark checked) in the layers control
|
||||||
|
// (OverpassLayer._layerAdd does not fire 'add' event)
|
||||||
|
layersControl._update();
|
||||||
|
}
|
||||||
if (obj && !obj.overlay) {
|
if (obj && !obj.overlay) {
|
||||||
added = true;
|
added = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,5 +83,88 @@ BR.confLayers.tree = {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
'overpass': {
|
||||||
|
'amenity': {
|
||||||
|
'financial': [
|
||||||
|
'atm',
|
||||||
|
'bank',
|
||||||
|
],
|
||||||
|
'others': [
|
||||||
|
'bench',
|
||||||
|
'kneipp_water_cure',
|
||||||
|
'public_bath',
|
||||||
|
'shelter',
|
||||||
|
'shower',
|
||||||
|
'telephone',
|
||||||
|
'toilets',
|
||||||
|
'water_point',
|
||||||
|
],
|
||||||
|
'sustenance': [
|
||||||
|
'bar',
|
||||||
|
'bbq',
|
||||||
|
'biergarten',
|
||||||
|
'cafe',
|
||||||
|
'drinking_water',
|
||||||
|
'fast_food',
|
||||||
|
'food_court',
|
||||||
|
'ice_cream',
|
||||||
|
'pub',
|
||||||
|
'restaurant',
|
||||||
|
],
|
||||||
|
'transportation': [
|
||||||
|
'bicycle_parking',
|
||||||
|
'bicycle_rental',
|
||||||
|
'bicycle_repair_station',
|
||||||
|
'boat_rental',
|
||||||
|
'boat_sharing',
|
||||||
|
'bus_station',
|
||||||
|
'car_rental',
|
||||||
|
'car_sharing',
|
||||||
|
'car_wash',
|
||||||
|
'charging_station',
|
||||||
|
'ferry_terminal',
|
||||||
|
'fuel',
|
||||||
|
'grit_bin',
|
||||||
|
'motorcycle_parking',
|
||||||
|
'parking_entrance',
|
||||||
|
'parking',
|
||||||
|
'parking_space',
|
||||||
|
'taxi',
|
||||||
|
'vehicle_inspection',
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'shop': {
|
||||||
|
'food': [
|
||||||
|
'bakery',
|
||||||
|
'beverages',
|
||||||
|
'butcher',
|
||||||
|
'cheese',
|
||||||
|
'coffee',
|
||||||
|
'convenience',
|
||||||
|
'greengrocer',
|
||||||
|
'health_food',
|
||||||
|
'ice_cream_shop',
|
||||||
|
'organic',
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'tourism': [
|
||||||
|
'apartment',
|
||||||
|
'artwork',
|
||||||
|
'attraction',
|
||||||
|
'camp_site',
|
||||||
|
'caravan_site',
|
||||||
|
'chalet',
|
||||||
|
'gallery',
|
||||||
|
'guest_house',
|
||||||
|
'hostel',
|
||||||
|
'hotel',
|
||||||
|
'information',
|
||||||
|
'motel',
|
||||||
|
'museum',
|
||||||
|
'picnic_site',
|
||||||
|
'viewpoint',
|
||||||
|
'wilderness_hut',
|
||||||
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
12
layers/overpass/amenity/financial/atm.geojson
Normal file
12
layers/overpass/amenity/financial/atm.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "ATM",
|
||||||
|
"id": "atm",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-bank",
|
||||||
|
"query": "(nwr[amenity=atm]; nwr[amenity=bank][atm][atm!=no];);"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/financial/bank.geojson
Normal file
12
layers/overpass/amenity/financial/bank.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bank",
|
||||||
|
"id": "bank",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-bank",
|
||||||
|
"query": "nwr[amenity=bank];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/bench.geojson
Normal file
12
layers/overpass/amenity/others/bench.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bench",
|
||||||
|
"id": "bench",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-bench",
|
||||||
|
"query": "nwr[amenity=bench];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/kneipp_water_cure.geojson
Normal file
12
layers/overpass/amenity/others/kneipp_water_cure.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Kneipp water cure",
|
||||||
|
"id": "kneipp_water_cure",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-hospital",
|
||||||
|
"query": "nwr[amenity=kneipp_water_cure];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/public_bath.geojson
Normal file
12
layers/overpass/amenity/others/public_bath.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Public bath",
|
||||||
|
"id": "public_bath",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-water",
|
||||||
|
"query": "nwr[amenity=public_bath];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/shelter.geojson
Normal file
12
layers/overpass/amenity/others/shelter.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Shelter",
|
||||||
|
"id": "shelter",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-shelter",
|
||||||
|
"query": "nwr[amenity=shelter];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/shower.geojson
Normal file
12
layers/overpass/amenity/others/shower.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Shower",
|
||||||
|
"id": "shower",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-shower",
|
||||||
|
"query": "nwr[amenity=shower];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/telephone.geojson
Normal file
12
layers/overpass/amenity/others/telephone.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Telephone",
|
||||||
|
"id": "telephone",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-phone-alt",
|
||||||
|
"query": "nwr[amenity=telephone];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/toilets.geojson
Normal file
12
layers/overpass/amenity/others/toilets.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Toilets",
|
||||||
|
"id": "toilets",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-toilet",
|
||||||
|
"query": "nwr[amenity=toilets];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/others/water_point.geojson
Normal file
12
layers/overpass/amenity/others/water_point.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Water point",
|
||||||
|
"id": "water_point",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-drinking-water",
|
||||||
|
"query": "nwr[amenity=water_point];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/bar.geojson
Normal file
12
layers/overpass/amenity/sustenance/bar.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bar",
|
||||||
|
"id": "bar",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-bar",
|
||||||
|
"query": "nwr[amenity=bar];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/bbq.geojson
Normal file
12
layers/overpass/amenity/sustenance/bbq.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "BBQ",
|
||||||
|
"id": "bbq",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-bbq",
|
||||||
|
"query": "nwr[amenity=bbq];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/biergarten.geojson
Normal file
12
layers/overpass/amenity/sustenance/biergarten.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Biergarten",
|
||||||
|
"id": "biergarten",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-beer",
|
||||||
|
"query": "nwr[amenity=biergarten];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/cafe.geojson
Normal file
12
layers/overpass/amenity/sustenance/cafe.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Cafe",
|
||||||
|
"id": "cafe",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-cafe",
|
||||||
|
"query": "nwr[amenity=cafe];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/drinking_water.geojson
Normal file
12
layers/overpass/amenity/sustenance/drinking_water.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Drinking water",
|
||||||
|
"id": "drinking_water",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-drinking-water",
|
||||||
|
"query": "nwr[amenity=drinking_water];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/fast_food.geojson
Normal file
12
layers/overpass/amenity/sustenance/fast_food.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Fast food",
|
||||||
|
"id": "fast_food",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-fast-food",
|
||||||
|
"query": "nwr[amenity=fast_food];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/food_court.geojson
Normal file
12
layers/overpass/amenity/sustenance/food_court.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Food court",
|
||||||
|
"id": "food_court",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-restaurant",
|
||||||
|
"query": "nwr[amenity=food_court];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/ice_cream.geojson
Normal file
12
layers/overpass/amenity/sustenance/ice_cream.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Ice cream",
|
||||||
|
"id": "ice_cream",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-ice-cream",
|
||||||
|
"query": "nwr[amenity=ice_cream];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/pub.geojson
Normal file
12
layers/overpass/amenity/sustenance/pub.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Pub",
|
||||||
|
"id": "pub",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-beer",
|
||||||
|
"query": "nwr[amenity=pub];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/sustenance/restaurant.geojson
Normal file
12
layers/overpass/amenity/sustenance/restaurant.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Restaurant",
|
||||||
|
"id": "restaurant",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-restaurant",
|
||||||
|
"query": "nwr[amenity=restaurant];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bicycle parking",
|
||||||
|
"id": "bicycle_parking",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-bicycle",
|
||||||
|
"query": "nwr[amenity=bicycle_parking];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bicycle rental",
|
||||||
|
"id": "bicycle_rental",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-bicycle_rental",
|
||||||
|
"query": "nwr[amenity=bicycle_rental];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bicycle repair station",
|
||||||
|
"id": "bicycle_repair_station",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-bicycle_repair",
|
||||||
|
"query": "nwr[amenity=bicycle_repair_station];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/boat_rental.geojson
Normal file
12
layers/overpass/amenity/transportation/boat_rental.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Boat rental",
|
||||||
|
"id": "boat_rental",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-boat_rental",
|
||||||
|
"query": "nwr[amenity=boat_rental];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
11
layers/overpass/amenity/transportation/boat_sharing.geojson
Normal file
11
layers/overpass/amenity/transportation/boat_sharing.geojson
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Boat sharing",
|
||||||
|
"id": "boat_sharing",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"query": "nwr[amenity=boat_sharing];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/bus_station.geojson
Normal file
12
layers/overpass/amenity/transportation/bus_station.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bus station",
|
||||||
|
"id": "bus_station",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-bus",
|
||||||
|
"query": "nwr[amenity=bus_station];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/car_rental.geojson
Normal file
12
layers/overpass/amenity/transportation/car_rental.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Car rental",
|
||||||
|
"id": "car_rental",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-car-rental",
|
||||||
|
"query": "nwr[amenity=car_rental];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/car_sharing.geojson
Normal file
12
layers/overpass/amenity/transportation/car_sharing.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Car sharing",
|
||||||
|
"id": "car_sharing",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-sign_and_car",
|
||||||
|
"query": "nwr[amenity=car_sharing];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/car_wash.geojson
Normal file
12
layers/overpass/amenity/transportation/car_wash.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Car wash",
|
||||||
|
"id": "car_wash",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-car_wash",
|
||||||
|
"query": "nwr[amenity=car_wash];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Charging station",
|
||||||
|
"id": "charging_station",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-charging-station",
|
||||||
|
"query": "nwr[amenity=charging_station];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Ferry terminal",
|
||||||
|
"id": "ferry_terminal",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-ferry",
|
||||||
|
"query": "nwr[amenity=ferry_terminal];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/fuel.geojson
Normal file
12
layers/overpass/amenity/transportation/fuel.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Fuel",
|
||||||
|
"id": "fuel",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-fuel",
|
||||||
|
"query": "nwr[amenity=fuel];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/grit_bin.geojson
Normal file
12
layers/overpass/amenity/transportation/grit_bin.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Grit bin",
|
||||||
|
"id": "grit_bin",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-box",
|
||||||
|
"query": "nwr[amenity=grit_bin];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Motorcycle parking",
|
||||||
|
"id": "motorcycle_parking",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-motorcycle",
|
||||||
|
"query": "nwr[amenity=motorcycle_parking];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/parking.geojson
Normal file
12
layers/overpass/amenity/transportation/parking.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Parking",
|
||||||
|
"id": "parking",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-car_parked",
|
||||||
|
"query": "nwr[amenity=parking];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Parking entrance",
|
||||||
|
"id": "parking_entrance",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-entrance-alt1",
|
||||||
|
"query": "nwr[amenity=parking_entrance];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/parking_space.geojson
Normal file
12
layers/overpass/amenity/transportation/parking_space.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Parking space",
|
||||||
|
"id": "parking_space",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-parking_space",
|
||||||
|
"query": "nwr[amenity=parking_space];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/amenity/transportation/taxi.geojson
Normal file
12
layers/overpass/amenity/transportation/taxi.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Taxi",
|
||||||
|
"id": "taxi",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-taxi",
|
||||||
|
"query": "nwr[amenity=taxi];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Vehicle inspection",
|
||||||
|
"id": "vehicle_inspection",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-car",
|
||||||
|
"query": "nwr[amenity=vehicle_inspection];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/bakery.geojson
Normal file
12
layers/overpass/shop/food/bakery.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Bakery",
|
||||||
|
"id": "bakery",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-bakery",
|
||||||
|
"query": "nwr[shop=bakery];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/beverages.geojson
Normal file
12
layers/overpass/shop/food/beverages.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Beverages",
|
||||||
|
"id": "beverages",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-bottles",
|
||||||
|
"query": "nwr[shop=beverages];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/butcher.geojson
Normal file
12
layers/overpass/shop/food/butcher.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Butcher",
|
||||||
|
"id": "butcher",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-cleaver",
|
||||||
|
"query": "nwr[shop=butcher];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/cheese.geojson
Normal file
12
layers/overpass/shop/food/cheese.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Cheese",
|
||||||
|
"id": "cheese",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-cheese",
|
||||||
|
"query": "nwr[shop=cheese];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/coffee.geojson
Normal file
12
layers/overpass/shop/food/coffee.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Coffee",
|
||||||
|
"id": "coffee",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-coffee",
|
||||||
|
"query": "nwr[shop=coffee];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/convenience.geojson
Normal file
12
layers/overpass/shop/food/convenience.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Convenience",
|
||||||
|
"id": "convenience",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-shopping-basket",
|
||||||
|
"query": "nwr[shop=convenience];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/greengrocer.geojson
Normal file
12
layers/overpass/shop/food/greengrocer.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Greengrocer",
|
||||||
|
"id": "greengrocer",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-carrot",
|
||||||
|
"query": "nwr[shop=greengrocer];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/health_food.geojson
Normal file
12
layers/overpass/shop/food/health_food.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Health food",
|
||||||
|
"id": "health_food",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-shop",
|
||||||
|
"query": "nwr[shop=health_food];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/ice_cream_shop.geojson
Normal file
12
layers/overpass/shop/food/ice_cream_shop.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Ice cream",
|
||||||
|
"id": "ice_cream_shop",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-ice-cream",
|
||||||
|
"query": "nwr[shop=ice_cream];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/shop/food/organic.geojson
Normal file
12
layers/overpass/shop/food/organic.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Organic",
|
||||||
|
"id": "organic",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-grocery",
|
||||||
|
"query": "nwr[shop~'supermarket|convenience'][organic][organic!=no];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/apartment.geojson
Normal file
12
layers/overpass/tourism/apartment.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Apartment",
|
||||||
|
"id": "apartment",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-lodging",
|
||||||
|
"query": "nwr[tourism=apartment];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/artwork.geojson
Normal file
12
layers/overpass/tourism/artwork.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Artwork",
|
||||||
|
"id": "artwork",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-art-gallery",
|
||||||
|
"query": "nwr[tourism=artwork];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/attraction.geojson
Normal file
12
layers/overpass/tourism/attraction.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Attraction",
|
||||||
|
"id": "attraction",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-star",
|
||||||
|
"query": "nwr[tourism=attraction];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/camp_site.geojson
Normal file
12
layers/overpass/tourism/camp_site.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Camp site",
|
||||||
|
"id": "camp_site",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-campsite",
|
||||||
|
"query": "nwr[tourism=camp_site];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/caravan_site.geojson
Normal file
12
layers/overpass/tourism/caravan_site.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Caravan site",
|
||||||
|
"id": "caravan_site",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-camper_trailer",
|
||||||
|
"query": "nwr[tourism=caravan_site];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/chalet.geojson
Normal file
12
layers/overpass/tourism/chalet.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Chalet",
|
||||||
|
"id": "chalet",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-cabin",
|
||||||
|
"query": "nwr[tourism=chalet];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/gallery.geojson
Normal file
12
layers/overpass/tourism/gallery.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Gallery",
|
||||||
|
"id": "gallery",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-art-gallery",
|
||||||
|
"query": "nwr[tourism=gallery];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/guest_house.geojson
Normal file
12
layers/overpass/tourism/guest_house.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Guest house",
|
||||||
|
"id": "guest_house",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-lodging",
|
||||||
|
"query": "nwr[tourism=guest_house];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/hostel.geojson
Normal file
12
layers/overpass/tourism/hostel.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Hostel",
|
||||||
|
"id": "hostel",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-bunk_beds",
|
||||||
|
"query": "nwr[tourism=hostel];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/hotel.geojson
Normal file
12
layers/overpass/tourism/hotel.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Hotel",
|
||||||
|
"id": "hotel",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "fas-concierge-bell",
|
||||||
|
"query": "nwr[tourism=hotel];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/information.geojson
Normal file
12
layers/overpass/tourism/information.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Information",
|
||||||
|
"id": "information",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-information",
|
||||||
|
"query": "nwr[tourism=information];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/motel.geojson
Normal file
12
layers/overpass/tourism/motel.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Motel",
|
||||||
|
"id": "motel",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-lodging",
|
||||||
|
"query": "nwr[tourism=motel];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/museum.geojson
Normal file
12
layers/overpass/tourism/museum.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Museum",
|
||||||
|
"id": "museum",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-museum",
|
||||||
|
"query": "nwr[tourism=museum];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/picnic_site.geojson
Normal file
12
layers/overpass/tourism/picnic_site.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Picnic site",
|
||||||
|
"id": "picnic_site",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "maki-picnic-site",
|
||||||
|
"query": "nwr[tourism=picnic_site];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/viewpoint.geojson
Normal file
12
layers/overpass/tourism/viewpoint.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Viewpoint",
|
||||||
|
"id": "viewpoint",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-spotting_scope",
|
||||||
|
"query": "nwr[tourism=viewpoint];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
12
layers/overpass/tourism/wilderness_hut.geojson
Normal file
12
layers/overpass/tourism/wilderness_hut.geojson
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"geometry": null,
|
||||||
|
"properties": {
|
||||||
|
"name": "Wilderness hut",
|
||||||
|
"id": "wilderness_hut",
|
||||||
|
"overlay": true,
|
||||||
|
"dataSource": "OverpassAPI",
|
||||||
|
"icon": "temaki-cabin",
|
||||||
|
"query": "nwr[tourism=wilderness_hut];"
|
||||||
|
},
|
||||||
|
"type": "Feature"
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Mostra més informació sobre BRouter-Web"
|
"tooltip": "Mostra més informació sobre BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Fronteres administratives: <a href=\"https://osm-boundaries.com\" target=\"_blank\">Fronteres-OSM</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">API d'Overpass</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Dades d'elevació",
|
"elevation-data": "Dades d'elevació",
|
||||||
|
|
@ -25,7 +25,8 @@
|
||||||
"map-tiles": "Tessel·les del mapa",
|
"map-tiles": "Tessel·les del mapa",
|
||||||
"nominatim": "Cerca per <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Cerca per <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >contribuïdors d'OpenStreetMap</a> sota <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >contribuïdors d'OpenStreetMap</a> sota <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
"title": "Credits"
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
|
"title": "Crèdits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
"format": "Format",
|
"format": "Format",
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "Factor de cost mitjà",
|
"mean-cost-factor": "Factor de cost mitjà",
|
||||||
"meter": "metres",
|
"meter": "metres",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "No elevation data available for this route.",
|
||||||
"plain-ascend": "Desnivell final",
|
"plain-ascend": "Desnivell final",
|
||||||
"stats-info": "Comenceu a dibuixar una ruta per obtenir les estadístiques",
|
"stats-info": "Comenceu a dibuixar una ruta per obtenir les estadístiques",
|
||||||
"total-energy": "Energia total",
|
"total-energy": "Energia total",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Afegeix una capa base",
|
"add-base": "Afegeix una capa base",
|
||||||
"add-overlay": "Afegeix superposició",
|
"add-overlay": "Afegeix superposició",
|
||||||
|
"add-overpass": "Add overpass query",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Custom layer name",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Custom layer URL/Query",
|
||||||
"customize": "Personalitza les capes",
|
"customize": "Personalitza les capes",
|
||||||
"opacity-slider": "Control lliscant de l'opacitat",
|
"opacity-slider": "Control lliscant de l'opacitat",
|
||||||
"placeholder-layer-name": "Nom de la capa personalitzada. (eg: OpenStreetMap)",
|
"overpass-loading-indicator": "Running Overpass API query ...",
|
||||||
"placeholder-layer-url": "URL de la capa personalitzada. (eg: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Elimina la selecció"
|
"remove-selection": "Elimina la selecció"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Propietats per defecte",
|
"defaultProperties": "Propietats per defecte",
|
||||||
"file": "Fitxer (.geojson):",
|
"file": "File (.geojson)",
|
||||||
"load": "Carrega",
|
"load": "Carrega",
|
||||||
"nogoBuffer": "Zona d'influència de les àrees omeses (en metres):",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "Radi de les àrees omeses per punts (en metres)",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "Pes de les àrees omeses (-1 vol dir inaccessible)",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Font",
|
"source": "Font",
|
||||||
"title": "Carrega les àrees omeses",
|
"title": "Carrega les àrees omeses",
|
||||||
"url": "URL: "
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "Contribuidors de l'OpenStreetMap",
|
"attribution-osm-long": "Contribuidors de l'OpenStreetMap",
|
||||||
|
|
@ -96,8 +103,8 @@
|
||||||
"delete-nogo-areas": "Esborra totes les àrees omeses",
|
"delete-nogo-areas": "Esborra totes les àrees omeses",
|
||||||
"delete-pois": "Esborra tots els punts d'interès",
|
"delete-pois": "Esborra tots els punts d'interès",
|
||||||
"delete-route": "Esborra la ruta",
|
"delete-route": "Esborra la ruta",
|
||||||
"draw-circlego-start": "Draw limited go-to zone",
|
"draw-circlego-start": "Dibuixa una zona de pas limitada",
|
||||||
"draw-circlego-stop": "Stop drawing limited go-to zone",
|
"draw-circlego-stop": "Para de dibuixar una zona de pas limitada",
|
||||||
"draw-poi-start": "Dibuixa punts d'interès",
|
"draw-poi-start": "Dibuixa punts d'interès",
|
||||||
"draw-poi-stop": "Para de dibuixar punts d'interès",
|
"draw-poi-stop": "Para de dibuixar punts d'interès",
|
||||||
"draw-route-start": "Dibuixa una ruta",
|
"draw-route-start": "Dibuixa una ruta",
|
||||||
|
|
@ -132,7 +139,7 @@
|
||||||
"edit": "Cliqueu per editar",
|
"edit": "Cliqueu per editar",
|
||||||
"help": "□ = mou / redimensiona, <span class=\"fa fa-trash-o\"></span> = esborra,<br>clique al cercle per deixar d'editar"
|
"help": "□ = mou / redimensiona, <span class=\"fa fa-trash-o\"></span> = esborra,<br>clique al cercle per deixar d'editar"
|
||||||
},
|
},
|
||||||
"not-applicable-here": "not applicable here",
|
"not-applicable-here": "no aplicable aquí",
|
||||||
"opacity-slider": "Especifica la transparència de la ruta i els marcadors",
|
"opacity-slider": "Especifica la transparència de la ruta i els marcadors",
|
||||||
"opacity-slider-shortcut": "{{action}}\n(Mantén premuda la tecla {{key}} per silenciar temporalment)",
|
"opacity-slider-shortcut": "{{action}}\n(Mantén premuda la tecla {{key}} per silenciar temporalment)",
|
||||||
"preview": "Previsualitza",
|
"preview": "Previsualitza",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Codificació del cost",
|
"route-quality-cost": "Codificació del cost",
|
||||||
"route-quality-incline": "Codificació de la inclinació",
|
"route-quality-incline": "Codificació de la inclinació",
|
||||||
"route-quality-shortcut": "{{action}} (tecla {{key}} per commutar)",
|
"route-quality-shortcut": "{{action}} (tecla {{key}} per commutar)",
|
||||||
|
"route-tooltip-segment": "Drag to create a new waypoint",
|
||||||
|
"route-tooltip-waypoint": "Waypoint. Drag to move; Click to remove.",
|
||||||
"strava-biking": "Mostra els segments de bici de Strava",
|
"strava-biking": "Mostra els segments de bici de Strava",
|
||||||
"strava-running": "Mostra els segments de córrer de Strava",
|
"strava-running": "Mostra els segments de córrer de Strava",
|
||||||
"strava-shortcut": "{{action}}\n(tecla {{key}} per commutar les capes, cliqueu per recarregar l'àrea actual)",
|
"strava-shortcut": "{{action}}\n(tecla {{key}} per commutar les capes, cliqueu per recarregar l'àrea actual)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Allunya"
|
"zoomOutTitle": "Allunya"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Tanca"
|
"close": "Tanca"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "Quant a",
|
"about": "Quant a",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Carrega les àrees omeses",
|
"nogos": "Carrega les àrees omeses",
|
||||||
"title": "Carrega",
|
"title": "Carrega",
|
||||||
"tooltip": "{{tracksAction}} (tecla {{tracksKey}})\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} (tecla {{tracksKey}})\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Carrega traces"
|
"tracks": "Carrega traces"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Europa",
|
"europe": "Europa",
|
||||||
"europe-monolingual": "Europa monolingüe",
|
"europe-monolingual": "Europa monolingüe",
|
||||||
"overlays": "Superposicions",
|
"overlays": "Superposicions",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Arreu del món",
|
"worldwide": "Arreu del món",
|
||||||
"worldwide-international": "Arreu del món internacional",
|
"worldwide-international": "Arreu del món internacional",
|
||||||
"worldwide-monolingual": "Arreu del món monolígüe"
|
"worldwide-monolingual": "Arreu del món monolígüe"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Afegeix o elimina capes opcionals",
|
"optional": "Afegeix o elimina capes opcionals",
|
||||||
"optional-layers": "Més",
|
"optional-layers": "Més",
|
||||||
"overlay-opacity": "Transparència de la superposició",
|
"overlay-opacity": "Transparència de la superposició",
|
||||||
|
"overlay-opacity_plural": "Overlays transparency",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Query",
|
||||||
"empty": "Encara no hi ha cap capa personalitzada configurada.",
|
"empty": "Encara no hi ha cap capa personalitzada configurada.",
|
||||||
"name": "Nom",
|
"name": "Nom",
|
||||||
"type": "Tipus"
|
"type": "Tipus",
|
||||||
|
"type_layer": "Layer",
|
||||||
|
"type_overlay": "Overlay",
|
||||||
|
"type_overpass_query": "Overpass Query"
|
||||||
},
|
},
|
||||||
"title": "Capes",
|
"title": "Capes",
|
||||||
"tooltip": "Seleccioneu capes"
|
"tooltip": "Seleccioneu capes"
|
||||||
|
|
@ -260,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "Client web de BRouter",
|
"title": "Client web de BRouter",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Browse",
|
||||||
"explainpoi": "(mostra les fites com a PDI)",
|
"explainpoi": "(mostra les fites com a PDI)",
|
||||||
"explaintracklayer": "(mostra traces com a capa separada)",
|
"explaintracklayer": "(mostra traces com a capa separada)",
|
||||||
"file": "Fitxer de traça",
|
"file": "Fitxer de traça",
|
||||||
"fuzziness": "grau d'aproximació",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Espereu si us plau.",
|
"pleasewait": "Espereu si us plau.",
|
||||||
"showpois": "PDI",
|
"showpois": "PDI",
|
||||||
"title": "Carrega una traça com a ruta",
|
"title": "Carrega una traça com a ruta",
|
||||||
|
|
@ -283,7 +297,7 @@
|
||||||
"upload-error": "Error de càrrega: {{error}}"
|
"upload-error": "Error de càrrega: {{error}}"
|
||||||
},
|
},
|
||||||
"whatsnew": {
|
"whatsnew": {
|
||||||
"new-version": "A new version was released since your last visit. Click <a href='.' data-toggle='modal' data-target='#whatsnew'>here</a> to see what's new!",
|
"new-version": "S'ha alliberat una versió nova des de l'última visita. Cliqueu <a href='.' data-toggle='modal' data-target='#whatsnew'>aquí</a> per veure les novetats!",
|
||||||
"title": "What's new?"
|
"title": "Què hi ha de nou?"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Mehr Informationen über BRouter-Web anzeigen"
|
"tooltip": "Mehr Informationen über BRouter-Web anzeigen"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Verwaltungsgrenzen: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Verwaltungsgrenzen: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Höhendaten",
|
"elevation-data": "Höhendaten",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Kartendarstellung",
|
"map-tiles": "Kartendarstellung",
|
||||||
"nominatim": "Suchen mit <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Suchen mit <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> unter <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> unter <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Orte (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"title": "Credits"
|
"title": "Credits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "durchschnittlicher Kostenfaktor",
|
"mean-cost-factor": "durchschnittlicher Kostenfaktor",
|
||||||
"meter": "Meter",
|
"meter": "Meter",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "Keine Höhendaten für diese Route verfügbar",
|
||||||
"plain-ascend": "einfach aufsteigend",
|
"plain-ascend": "einfach aufsteigend",
|
||||||
"stats-info": "Route zeichnen, um Statistiken zu sehen.",
|
"stats-info": "Route zeichnen, um Statistiken zu sehen.",
|
||||||
"total-energy": "Gesamtenergie",
|
"total-energy": "Gesamtenergie",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Basisebene hinzufügen",
|
"add-base": "Basisebene hinzufügen",
|
||||||
"add-overlay": "Overlay hinzufügen",
|
"add-overlay": "Overlay hinzufügen",
|
||||||
|
"add-overpass": "Overpass Abfrage hinzufügen",
|
||||||
|
"custom-layer-name-helptext": "Bsp: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Name der benutzerdefinierten Ebene",
|
||||||
|
"custom-layer-url-helptext-normal": "URL für normale Ebenen, z.B.: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Abfrage, z.B.: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "URL/Abfrage der benutzerdefinierten Ebene",
|
||||||
"customize": "Ebenen anpassen",
|
"customize": "Ebenen anpassen",
|
||||||
"opacity-slider": "Regler für Deckkraft",
|
"opacity-slider": "Regler für Deckkraft",
|
||||||
"placeholder-layer-name": "angepasster Ebenenname (Bsp: OpenStreetMap)",
|
"overpass-loading-indicator": "Overpass API Abfrage läuft ...",
|
||||||
"placeholder-layer-url": "angepasste Ebenen-URL (Bsp: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Auswahl entfernen"
|
"remove-selection": "Auswahl entfernen"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Standardeigenschaften",
|
"defaultProperties": "Standardeigenschaften",
|
||||||
"file": "Datei (.geojson):",
|
"file": "Datei (.geojson)",
|
||||||
"load": "Laden",
|
"load": "Laden",
|
||||||
"nogoBuffer": "Puffer um No-go-Areas (in Metern):",
|
"nogoBuffer": "Puffer um No-go-Areas (in Metern)",
|
||||||
"nogoRadius": "No-go Radius für Punkte (in Meter):",
|
"nogoRadius": "No-go Radius für Punkte (in Meter)",
|
||||||
"nogoWeight": "No-go Gewichtung (-1 bedeutet unpassierbar):",
|
"nogoWeight": "No-go Gewichtung (-1 bedeutet unpassierbar)",
|
||||||
"source": "Quelle",
|
"source": "Quelle",
|
||||||
"title": "No-go-Areas laden",
|
"title": "No-go-Areas laden",
|
||||||
"url": "URL:"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "OpenStreetMap-Mitwirkende",
|
"attribution-osm-long": "OpenStreetMap-Mitwirkende",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Kostencodierung",
|
"route-quality-cost": "Kostencodierung",
|
||||||
"route-quality-incline": "Steigungscodierung",
|
"route-quality-incline": "Steigungscodierung",
|
||||||
"route-quality-shortcut": "{{action}} ({{key}} Taste zum Ein-/Ausschalten)",
|
"route-quality-shortcut": "{{action}} ({{key}} Taste zum Ein-/Ausschalten)",
|
||||||
|
"route-tooltip-segment": "Ziehen, um einen neuen Wegpunkt anzulegen",
|
||||||
|
"route-tooltip-waypoint": "Wegpunkt. Zum Verschieben ziehen; zum Löschen klicken",
|
||||||
"strava-biking": "Zeige Strava Radfahrsegmente",
|
"strava-biking": "Zeige Strava Radfahrsegmente",
|
||||||
"strava-running": "Zeige Strava Läufersegmente",
|
"strava-running": "Zeige Strava Läufersegmente",
|
||||||
"strava-shortcut": "{{action}}\n({{key}} Taste um Ebene ein-/auszublenden, Klicken um aktuellen Ausschnitt neu zu laden)",
|
"strava-shortcut": "{{action}}\n({{key}} Taste um Ebene ein-/auszublenden, Klicken um aktuellen Ausschnitt neu zu laden)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Herauszoomen"
|
"zoomOutTitle": "Herauszoomen"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Schließen"
|
"close": "Schließen"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "Über",
|
"about": "Über",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,8 +172,8 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "No-go-Areas laden",
|
"nogos": "No-go-Areas laden",
|
||||||
"title": "Laden",
|
"title": "Laden",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} Taste)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} Taste)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Touren laden"
|
"tracks": "Track laden"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"car-eco": "Auto (effizient)",
|
"car-eco": "Auto (effizient)",
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Europa",
|
"europe": "Europa",
|
||||||
"europe-monolingual": "Europa einsprachig",
|
"europe-monolingual": "Europa einsprachig",
|
||||||
"overlays": "Überlagerungen",
|
"overlays": "Überlagerungen",
|
||||||
|
"overpass": "Orte (POIs)",
|
||||||
"worldwide": "Weltweit",
|
"worldwide": "Weltweit",
|
||||||
"worldwide-international": "Weltweit international",
|
"worldwide-international": "Weltweit international",
|
||||||
"worldwide-monolingual": "Weltweit einsprachig"
|
"worldwide-monolingual": "Weltweit einsprachig"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Optionale Ebenen hinzufügen oder entfernen",
|
"optional": "Optionale Ebenen hinzufügen oder entfernen",
|
||||||
"optional-layers": "Mehr",
|
"optional-layers": "Mehr",
|
||||||
"overlay-opacity": "Transparenz der Überlagerung",
|
"overlay-opacity": "Transparenz der Überlagerung",
|
||||||
|
"overlay-opacity_plural": "Transparenz der Überlagerung",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Abfrage",
|
||||||
"empty": "Noch keine benutzerdefinierte Ebene definiert.",
|
"empty": "Noch keine benutzerdefinierte Ebene definiert.",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"type": "Typ"
|
"type": "Typ",
|
||||||
|
"type_layer": "Ebene",
|
||||||
|
"type_overlay": "Überlagerung",
|
||||||
|
"type_overpass_query": "Overpass Abfrage"
|
||||||
},
|
},
|
||||||
"title": "Ebenen",
|
"title": "Ebenen",
|
||||||
"tooltip": "Ebenen auswählen"
|
"tooltip": "Ebenen auswählen"
|
||||||
|
|
@ -260,13 +273,14 @@
|
||||||
},
|
},
|
||||||
"title": "BRouter Web Client",
|
"title": "BRouter Web Client",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Durchsuchen",
|
||||||
"explainpoi": "(Wegpunkte als POIs anzeigen)",
|
"explainpoi": "(Wegpunkte als POIs anzeigen)",
|
||||||
"explaintracklayer": "(Tour als separate Ebene anzeigen)",
|
"explaintracklayer": "(Tour als separate Ebene anzeigen)",
|
||||||
"file": "Tourdatei",
|
"file": "Track-Datei",
|
||||||
"fuzziness": "Unschärfe",
|
"fuzziness": "Unschärfe",
|
||||||
"pleasewait": "Bitte warten!",
|
"pleasewait": "Bitte warten!",
|
||||||
"showpois": "POIs",
|
"showpois": "POIs",
|
||||||
"title": "Tour als Route laden",
|
"title": "Track als Route laden",
|
||||||
"tracklayer": "Tour-Ebene",
|
"tracklayer": "Tour-Ebene",
|
||||||
"tuning": "Justierung"
|
"tuning": "Justierung"
|
||||||
},
|
},
|
||||||
|
|
@ -279,11 +293,11 @@
|
||||||
"profile-error": "Profil-Fehler: keine oder leere Antwort vom Server",
|
"profile-error": "Profil-Fehler: keine oder leere Antwort vom Server",
|
||||||
"strava-error": "Fehler beim Laden der Strava Segmente: {{error}}",
|
"strava-error": "Fehler beim Laden der Strava Segmente: {{error}}",
|
||||||
"temporary-profile": "<strong>Note:</strong> Hochgeladene benutzerdefinierte Profile nur verübergehend auf dem Server zwischengespeichert. <br/>Bitte Bearbeitungen auf dem lokalen PC speichern.",
|
"temporary-profile": "<strong>Note:</strong> Hochgeladene benutzerdefinierte Profile nur verübergehend auf dem Server zwischengespeichert. <br/>Bitte Bearbeitungen auf dem lokalen PC speichern.",
|
||||||
"tracks-load-error": "Fehler beim Laden der Touren: {{error}}",
|
"tracks-load-error": "Fehler beim Laden von tracks: {{error}}",
|
||||||
"upload-error": "Fehler beim Hochladen: {{error}}"
|
"upload-error": "Fehler beim Hochladen: {{error}}"
|
||||||
},
|
},
|
||||||
"whatsnew": {
|
"whatsnew": {
|
||||||
"new-version": "A new version was released since your last visit. Click <a href='.' data-toggle='modal' data-target='#whatsnew'>here</a> to see what's new!",
|
"new-version": "Seit dem letzten Besuch wurde eine neue Version veröffentlicht. <a href='.' data-toggle='modal' data-target='#whatsnew'>Hier</a> klicken, um zu sehen, was neu ist!",
|
||||||
"title": "What's new?"
|
"title": "Was ist neu?"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Show more information about BRouter-Web"
|
"tooltip": "Show more information about BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Elevation data",
|
"elevation-data": "Elevation data",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Map tiles",
|
"map-tiles": "Map tiles",
|
||||||
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"title": "Credits"
|
"title": "Credits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -70,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Add base layer",
|
"add-base": "Add base layer",
|
||||||
"add-overlay": "Add overlay",
|
"add-overlay": "Add overlay",
|
||||||
|
"add-overpass": "Add overpass query",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Custom layer name",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Custom layer URL/Query",
|
||||||
"customize": "Customize layers",
|
"customize": "Customize layers",
|
||||||
"opacity-slider": "Opacity slider",
|
"opacity-slider": "Opacity slider",
|
||||||
"placeholder-layer-name": "Custom layer name. (ex: OpenStreetMap)",
|
"overpass-loading-indicator": "Running Overpass API query ...",
|
||||||
"placeholder-layer-url": "Custom layer URL. (ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Remove selection"
|
"remove-selection": "Remove selection"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Default properties",
|
"defaultProperties": "Default properties",
|
||||||
"file": "File (.geojson): ",
|
"file": "File (.geojson)",
|
||||||
"load": "Load",
|
"load": "Load",
|
||||||
"nogoBuffer": "Buffer no-go areas (in meters): ",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "No-go radius for points (in meters): ",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "No-go weight (-1 means impassable): ",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Source",
|
"source": "Source",
|
||||||
"title": "Load no-go areas",
|
"title": "Load no-go areas",
|
||||||
"url": "URL: "
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "OpenStreetMap contributors",
|
"attribution-osm-long": "OpenStreetMap contributors",
|
||||||
|
|
@ -152,7 +158,8 @@
|
||||||
"zoomOutTitle": "Zoom out"
|
"zoomOutTitle": "Zoom out"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Close"
|
"close": "Close",
|
||||||
|
"or": ""
|
||||||
},
|
},
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "About",
|
"about": "About",
|
||||||
|
|
@ -167,7 +174,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Load no-go areas",
|
"nogos": "Load no-go areas",
|
||||||
"title": "Load",
|
"title": "Load",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Load tracks"
|
"tracks": "Load tracks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -230,6 +237,7 @@
|
||||||
"europe": "Europe",
|
"europe": "Europe",
|
||||||
"europe-monolingual": "Europe monolingual",
|
"europe-monolingual": "Europe monolingual",
|
||||||
"overlays": "Overlays",
|
"overlays": "Overlays",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Worldwide",
|
"worldwide": "Worldwide",
|
||||||
"worldwide-international": "Worldwide international",
|
"worldwide-international": "Worldwide international",
|
||||||
"worldwide-monolingual": "Worldwide monolingual"
|
"worldwide-monolingual": "Worldwide monolingual"
|
||||||
|
|
@ -243,12 +251,13 @@
|
||||||
"overlay-opacity": "Overlay transparency",
|
"overlay-opacity": "Overlay transparency",
|
||||||
"overlay-opacity_plural": "Overlays transparency",
|
"overlay-opacity_plural": "Overlays transparency",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Query",
|
||||||
"empty": "No custom layer configured yet.",
|
"empty": "No custom layer configured yet.",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"type": "Type",
|
"type": "Type",
|
||||||
"type_layer": "Layer",
|
"type_layer": "Layer",
|
||||||
"type_overlay": "Overlay"
|
"type_overlay": "Overlay",
|
||||||
|
"type_overpass_query": "Overpass Query"
|
||||||
},
|
},
|
||||||
"title": "Layers",
|
"title": "Layers",
|
||||||
"tooltip": "Select layers"
|
"tooltip": "Select layers"
|
||||||
|
|
@ -266,10 +275,11 @@
|
||||||
},
|
},
|
||||||
"title": "BRouter web client",
|
"title": "BRouter web client",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Browse",
|
||||||
"explainpoi": "(show waypoints as POI's)",
|
"explainpoi": "(show waypoints as POI's)",
|
||||||
"explaintracklayer": "(show Track as separate Layer)",
|
"explaintracklayer": "(show Track as separate Layer)",
|
||||||
"file": "Trackfile",
|
"file": "Trackfile",
|
||||||
"fuzziness": "fuzziness",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Please wait!",
|
"pleasewait": "Please wait!",
|
||||||
"showpois": "POI's",
|
"showpois": "POI's",
|
||||||
"title": "Load Track as Route",
|
"title": "Load Track as Route",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Show more information about BRouter-Web"
|
"tooltip": "Show more information about BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Elevation data",
|
"elevation-data": "Elevation data",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Map tiles",
|
"map-tiles": "Map tiles",
|
||||||
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"title": "Credits"
|
"title": "Credits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "Mean cost factor",
|
"mean-cost-factor": "Mean cost factor",
|
||||||
"meter": "metroj",
|
"meter": "metroj",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "No elevation data available for this route.",
|
||||||
"plain-ascend": "Plain ascend",
|
"plain-ascend": "Plain ascend",
|
||||||
"stats-info": "Start drawing a route to get stats.",
|
"stats-info": "Start drawing a route to get stats.",
|
||||||
"total-energy": "Total Energy",
|
"total-energy": "Total Energy",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Add base layer",
|
"add-base": "Add base layer",
|
||||||
"add-overlay": "Add overlay",
|
"add-overlay": "Add overlay",
|
||||||
|
"add-overpass": "Add overpass query",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Custom layer name",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Custom layer URL/Query",
|
||||||
"customize": "Customize layers",
|
"customize": "Customize layers",
|
||||||
"opacity-slider": "Opacity slider",
|
"opacity-slider": "Opacity slider",
|
||||||
"placeholder-layer-name": "Custom layer name. (ex: OpenStreetMap)",
|
"overpass-loading-indicator": "Running Overpass API query ...",
|
||||||
"placeholder-layer-url": "Custom layer URL. (ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Remove selection"
|
"remove-selection": "Remove selection"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Default properties",
|
"defaultProperties": "Default properties",
|
||||||
"file": "File (.geojson): ",
|
"file": "File (.geojson)",
|
||||||
"load": "Load",
|
"load": "Load",
|
||||||
"nogoBuffer": "Buffer no-go areas (in meters): ",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "No-go radius for points (in meters): ",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "No-go weight (-1 means impassable): ",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Fonto",
|
"source": "Fonto",
|
||||||
"title": "Load no-go areas",
|
"title": "Load no-go areas",
|
||||||
"url": "URL: "
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "OpenStreetMap contributors",
|
"attribution-osm-long": "OpenStreetMap contributors",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Cost coding",
|
"route-quality-cost": "Cost coding",
|
||||||
"route-quality-incline": "Incline coding",
|
"route-quality-incline": "Incline coding",
|
||||||
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
||||||
|
"route-tooltip-segment": "Drag to create a new waypoint",
|
||||||
|
"route-tooltip-waypoint": "Waypoint. Drag to move; Click to remove.",
|
||||||
"strava-biking": "Show Strava biking segments",
|
"strava-biking": "Show Strava biking segments",
|
||||||
"strava-running": "Show Strava running segments",
|
"strava-running": "Show Strava running segments",
|
||||||
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Malgrandigi"
|
"zoomOutTitle": "Malgrandigi"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Fermi"
|
"close": "Fermi"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "Pri",
|
"about": "Pri",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Load no-go areas",
|
"nogos": "Load no-go areas",
|
||||||
"title": "Load",
|
"title": "Load",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Load tracks"
|
"tracks": "Load tracks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Eŭropo",
|
"europe": "Eŭropo",
|
||||||
"europe-monolingual": "Europe monolingual",
|
"europe-monolingual": "Europe monolingual",
|
||||||
"overlays": "Tegiloj",
|
"overlays": "Tegiloj",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Worldwide",
|
"worldwide": "Worldwide",
|
||||||
"worldwide-international": "Worldwide international",
|
"worldwide-international": "Worldwide international",
|
||||||
"worldwide-monolingual": "Worldwide monolingual"
|
"worldwide-monolingual": "Worldwide monolingual"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Add or remove optional layers",
|
"optional": "Add or remove optional layers",
|
||||||
"optional-layers": "Pli",
|
"optional-layers": "Pli",
|
||||||
"overlay-opacity": "Overlay transparency",
|
"overlay-opacity": "Overlay transparency",
|
||||||
|
"overlay-opacity_plural": "Overlays transparency",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Query",
|
||||||
"empty": "No custom layer configured yet.",
|
"empty": "No custom layer configured yet.",
|
||||||
"name": "Nomo",
|
"name": "Nomo",
|
||||||
"type": "Type"
|
"type": "Type",
|
||||||
|
"type_layer": "Layer",
|
||||||
|
"type_overlay": "Overlay",
|
||||||
|
"type_overpass_query": "Overpass Query"
|
||||||
},
|
},
|
||||||
"title": "Layers",
|
"title": "Layers",
|
||||||
"tooltip": "Select layers"
|
"tooltip": "Select layers"
|
||||||
|
|
@ -260,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "BRouter web client",
|
"title": "BRouter web client",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Browse",
|
||||||
"explainpoi": "(show waypoints as POI's)",
|
"explainpoi": "(show waypoints as POI's)",
|
||||||
"explaintracklayer": "(show Track as separate Layer)",
|
"explaintracklayer": "(show Track as separate Layer)",
|
||||||
"file": "Trackfile",
|
"file": "Trackfile",
|
||||||
"fuzziness": "fuzziness",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Please wait!",
|
"pleasewait": "Please wait!",
|
||||||
"showpois": "POI's",
|
"showpois": "POI's",
|
||||||
"title": "Load Track as Route",
|
"title": "Load Track as Route",
|
||||||
|
|
|
||||||
303
locales/es.json
Normal file
303
locales/es.json
Normal file
|
|
@ -0,0 +1,303 @@
|
||||||
|
{
|
||||||
|
"about": {
|
||||||
|
"bug-reports": "Informes de errores y solicitudes de funciones:",
|
||||||
|
"bug-reports-back": "servidor / backend, motor de enrutamiento, aplicación de Android, perfiles, sitio brouter.de",
|
||||||
|
"bug-reports-front": "cliente web / frontend.",
|
||||||
|
"chat": "Chatea con usuarios y desarrolladores",
|
||||||
|
"contact": "Contacto:",
|
||||||
|
"contact-language": "El idioma preferido es el inglés, ya que contamos con colaboradores y usuarios internacionales.",
|
||||||
|
"data": "Datos:",
|
||||||
|
"data-description": "Esta basado en <a href=\"https://www.openstreetmap.org\" target=\"_blank\">OpenStreetMap</a>. Por lo general se actualiza a diario, consulte las fechas <a href=\"https://brouter.de/brouter/segments4/\" target=\"_blank\">de los archivos</a>.",
|
||||||
|
"description": "Servicio en línea del motor de enrutamiento BRouter. Para la aplicación de Android sin conexión y más información, consulte <a href=\"https://brouter.de/\" target=\"_blank\">brouter.de</a>",
|
||||||
|
"details": "<i><a href=\"{{privacyPolicyUrl}}\" target=\"_blank\">Política de privacidad</a></i>, \n<i><a href=\"https://github.com/nrenner/brouter-web#credits-and-licenses\" target=\"_blank\">Creditos</a></i>,\n<i><a href=\"https://github.com/nrenner/brouter-web/blob/master/CHANGELOG.md\" target=\"_blank\">Registro de cambios</a></i> y\n<i><a href=\"https://github.com/nrenner/brouter-web#readme\" target=\"_blank\">más información</a></i> sobre el cliente.",
|
||||||
|
"support": "Discusiones / preguntas generales, soporte",
|
||||||
|
"title": "Acerca de",
|
||||||
|
"tooltip": "Mostrar más información sobre BRouter-Web"
|
||||||
|
},
|
||||||
|
"credits": {
|
||||||
|
"boundaries": "Límites administrativos: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
|
"brouter": "BRouter",
|
||||||
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
|
"elevation-data": "Datos de elevación",
|
||||||
|
"esri-license": "<a target=\"_blank\" href=\"http://goto.arcgisonline.com/maps/World_Imagery\">Imágenes del mundo</a> © <a target=\"_blank\" href=\"https://www.esri.com/\">Esri</a>, fuentes: Esri, DigitalGlobe, Earthstar Geographics, CNES/Airbus DS, GeoEye, USDA FSA, USGS, Getmapping, Aerogrid, IGN, IGP, and the GIS User Community",
|
||||||
|
"esri-tiles": "Imágenes Esri World",
|
||||||
|
"map-data": "Datos del mapa",
|
||||||
|
"map-tiles": "Teselas del mapa",
|
||||||
|
"nominatim": "Búsqueda por <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >Colaboradores de OpenStreetMap</a> bajo <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Ubicaciones (PDI): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
|
"title": "Créditos"
|
||||||
|
},
|
||||||
|
"export": {
|
||||||
|
"format": "Formato",
|
||||||
|
"format_csv": "CSV",
|
||||||
|
"format_geojson": "GeoJSON",
|
||||||
|
"format_gpx": "GPX",
|
||||||
|
"format_kml": "KML",
|
||||||
|
"include": "Incluir",
|
||||||
|
"include_waypoints": "Waypoints",
|
||||||
|
"route-from-to": "{{from}} -> {{to}} ({{distance}}km)",
|
||||||
|
"route-loop": "{{from}} ({{distance}}km)",
|
||||||
|
"title": "Exportar ruta",
|
||||||
|
"trackname": "Nombre"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"ascend": "Ascensión",
|
||||||
|
"cost": "Costo",
|
||||||
|
"distance": "Distancia",
|
||||||
|
"elevation-chart": "Alternar gráfico de elevación",
|
||||||
|
"energy-per-100km": "Energía por 100 km",
|
||||||
|
"hours": "horas",
|
||||||
|
"hours-abbrev": "h",
|
||||||
|
"kilometer": "kilómetros",
|
||||||
|
"kilometer-abbrev": "km",
|
||||||
|
"kilowatthour": "kilovatios hora",
|
||||||
|
"kilowatthour-abbrev": "kWh",
|
||||||
|
"mean-cost-factor": "Factor de costo medio",
|
||||||
|
"meter": "metros",
|
||||||
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "No hay datos de elevación disponibles para esta ruta.",
|
||||||
|
"plain-ascend": "Ascenso llano",
|
||||||
|
"stats-info": "Empiece a trazar una ruta para obtener estadísticas.",
|
||||||
|
"total-energy": "Energia total",
|
||||||
|
"travel-time": "Tiempo de viaje"
|
||||||
|
},
|
||||||
|
"keyboard": {
|
||||||
|
"backspace": "Retroceso",
|
||||||
|
"escape": "Escape",
|
||||||
|
"generic-shortcut": "{{action}} (tecla {{key}})",
|
||||||
|
"shift": "Mayús"
|
||||||
|
},
|
||||||
|
"layers": {
|
||||||
|
"add-base": "Añadir capa base",
|
||||||
|
"add-overlay": "Añadir superposición",
|
||||||
|
"add-overpass": "Agregar consulta de overpass",
|
||||||
|
"custom-layer-name-helptext": "por ejemplo: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Nombre de la capa personalizada",
|
||||||
|
"custom-layer-url-helptext-normal": "URL para capas normales, por ejemplo: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Consulta de Overpass, por ejemplo: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "URL / consulta de capa personalizada",
|
||||||
|
"customize": "Personalizar capas",
|
||||||
|
"opacity-slider": "Control deslizante de opacidad",
|
||||||
|
"overpass-loading-indicator": "Ejecutando la consulta de la API de Overpass ...",
|
||||||
|
"remove-selection": "Eliminar selección"
|
||||||
|
},
|
||||||
|
"loadNogos": {
|
||||||
|
"defaultProperties": "Propiedades por defecto",
|
||||||
|
"file": "Archivo (.geojson)",
|
||||||
|
"load": "Cargar",
|
||||||
|
"nogoBuffer": "Buffer de áreas prohibidas (en metros)",
|
||||||
|
"nogoRadius": "Radio de prohibición de puntos (en metros)",
|
||||||
|
"nogoWeight": "Peso de prohibición (-1 significa intransitable)",
|
||||||
|
"source": "Fuente",
|
||||||
|
"title": "Cargar áreas prohibidas",
|
||||||
|
"url": "URL"
|
||||||
|
},
|
||||||
|
"map": {
|
||||||
|
"attribution-osm-long": "Colaboradores de OpenStreetMap",
|
||||||
|
"attribution-osm-short": "OpenStreetMap",
|
||||||
|
"clear-route": "Borrar datos de ruta",
|
||||||
|
"copyright": "Copyright",
|
||||||
|
"cycling": "Ciclismo",
|
||||||
|
"delete-last-point": "Eliminar último punto",
|
||||||
|
"delete-nogo-areas": "Eliminar todas las áreas prohibidas",
|
||||||
|
"delete-pois": "Eliminar todos los puntos de interés",
|
||||||
|
"delete-route": "Eliminar ruta",
|
||||||
|
"draw-circlego-start": "Dibujar zona prohibida",
|
||||||
|
"draw-circlego-stop": "Dejar de dibujar una zona prohibida",
|
||||||
|
"draw-poi-start": "Dibujar puntos de interés",
|
||||||
|
"draw-poi-stop": "Deja de dibujar puntos de interés",
|
||||||
|
"draw-route-start": "Dibujar ruta",
|
||||||
|
"draw-route-stop": "Dejar de dibujar la ruta",
|
||||||
|
"enter-poi-name": "Ingrese el nombre del punto de interés",
|
||||||
|
"geocoder": "Buscar",
|
||||||
|
"geocoder-placeholder": "Buscar...",
|
||||||
|
"hikebike-hillshading": "Sombreado",
|
||||||
|
"hiking": "Senderismo",
|
||||||
|
"layer": {
|
||||||
|
"bing": "Bing Aerial",
|
||||||
|
"cycle": "OpenCycleMap (Thunderf.)",
|
||||||
|
"cycling": "Ciclismo (senderos marcados)",
|
||||||
|
"digitalglobe": "Imágenes recientes de DigitalGlobe",
|
||||||
|
"esri": "Imágenes de Esri World",
|
||||||
|
"hikebike-hillshading": "Sombreado de colinas (mapa de senderismo y bicicleta)",
|
||||||
|
"hiking": "Senderismo (senderos marcados)",
|
||||||
|
"osm": "OpenStreetMap",
|
||||||
|
"osmde": "OpenStreetMap.de",
|
||||||
|
"outdoors": "Al aire libre (Thunderforest)",
|
||||||
|
"route-quality": "Codificación de calidad de ruta",
|
||||||
|
"stamen-terrain": "Terreno (Stamen)",
|
||||||
|
"strava-segments": "Segmentos de Strava",
|
||||||
|
"topo": "OpenTopoMap"
|
||||||
|
},
|
||||||
|
"loading": "Cargando...",
|
||||||
|
"locate-me": "Muéstrame dónde estoy",
|
||||||
|
"nogo": {
|
||||||
|
"cancel": "Cancelar el dibujo del área prohibida",
|
||||||
|
"click-drag": "Haga clic y arrastre para dibujar un círculo.",
|
||||||
|
"draw": "Dibujar un área circular prohibida",
|
||||||
|
"edit": "Click para editar",
|
||||||
|
"help": "□ = mover / cambiar el tamaño, <span class=\"fa fa-trash-o\"></span>= eliminar, <br> haga clic en el círculo para salir de la edición"
|
||||||
|
},
|
||||||
|
"not-applicable-here": "no aplicable aquí",
|
||||||
|
"opacity-slider": "Establecer la transparencia del seguimiento de la ruta y los marcadores",
|
||||||
|
"opacity-slider-shortcut": "{{action}}\n(Mantenga presionada la tecla {{key}} para silenciar temporalmente)",
|
||||||
|
"preview": "Previsualizar",
|
||||||
|
"privacy": "Privacidad",
|
||||||
|
"reverse-route": "Ruta inversa",
|
||||||
|
"route-quality-altitude": "Codificación de altitud",
|
||||||
|
"route-quality-cost": "Codificación de costos",
|
||||||
|
"route-quality-incline": "Codificación de inclinación",
|
||||||
|
"route-quality-shortcut": "{{action}} (tecla {{key}} para alternar)",
|
||||||
|
"route-tooltip-segment": "Arrastre para crear un nuevo waypoint",
|
||||||
|
"route-tooltip-waypoint": "Waypoint. Arrastre para mover; Haga clic para eliminar.",
|
||||||
|
"strava-biking": "Mostrar segmentos de ciclismo de Strava",
|
||||||
|
"strava-running": "Mostrar segmentos de carrera de Strava",
|
||||||
|
"strava-shortcut": "{{action}}\n(tecla {{key}} para alternar la capa, haga clic para volver a cargar el área actual)",
|
||||||
|
"zoomInTitle": "Acercarse",
|
||||||
|
"zoomOutTitle": "Alejarse"
|
||||||
|
},
|
||||||
|
"modal": {
|
||||||
|
"close": "Cerrar"},
|
||||||
|
"navbar": {
|
||||||
|
"about": "Acerca de",
|
||||||
|
"alternative": {
|
||||||
|
"first": "1ª Alternativa",
|
||||||
|
"original": "Original",
|
||||||
|
"second": "2ª Alternativa",
|
||||||
|
"third": "3ª Alternativa"
|
||||||
|
},
|
||||||
|
"export": "Exportar",
|
||||||
|
"export-tooltip": "Exportar ruta",
|
||||||
|
"load": {
|
||||||
|
"nogos": "Cargar áreas prohibidas",
|
||||||
|
"title": "Cargar",
|
||||||
|
"tooltip": "{{tracksAction}} (tecla {{tracksKey}})\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
|
"tracks": "Cargar pistas"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"car-eco": "Automóvil (económico)",
|
||||||
|
"car-fast": "Automóvil (rápido)",
|
||||||
|
"car-test": "Automóvil (test)",
|
||||||
|
"custom": "Personalizado",
|
||||||
|
"fastbike": "Fastbike",
|
||||||
|
"fastbike-asia-pacific": "Fastbike (Asia Pacífico)",
|
||||||
|
"fastbike-lowtraffic": "Fastbike (poco tráfico)",
|
||||||
|
"hiking-beta": "Senderismo (beta)",
|
||||||
|
"moped": "Ciclomotor",
|
||||||
|
"rail": "Ferrocarril",
|
||||||
|
"river": "Fluvial",
|
||||||
|
"safety": "Segura",
|
||||||
|
"shortest": "Más corta",
|
||||||
|
"trekking": "Bicicleta de trekking",
|
||||||
|
"trekking-ignore-cr": "Bicicleta de trekking (ignorar rutas en bicicleta)",
|
||||||
|
"trekking-noferries": "Bicicleta de trekking (sin ferries)",
|
||||||
|
"trekking-nosteps": "Bicicleta de trekking (sin escalones)",
|
||||||
|
"trekking-steep": "Bicicleta de trekking (empinada)",
|
||||||
|
"vm-forum-liegerad-schnell": "Bicicleta reclinada (rápida)",
|
||||||
|
"vm-forum-velomobil-schnell": "Velomobile (rápido)"
|
||||||
|
},
|
||||||
|
"profile-tooltip": "\n(tecla {{key}} para cambiar)"
|
||||||
|
},
|
||||||
|
"sidebar": {
|
||||||
|
"analysis": {
|
||||||
|
"header": {
|
||||||
|
"highway": "Carretera",
|
||||||
|
"smoothness": "Suavidad",
|
||||||
|
"surface": "Superficie"
|
||||||
|
},
|
||||||
|
"table": {
|
||||||
|
"category": "Categoría",
|
||||||
|
"length": "Longitud",
|
||||||
|
"total_known": "Total conocido:",
|
||||||
|
"unknown": "Desconocido"
|
||||||
|
},
|
||||||
|
"title": "Análisis",
|
||||||
|
"tooltip": "Analizar ruta"
|
||||||
|
},
|
||||||
|
"customize-profile": {
|
||||||
|
"title": "Personalizar perfil",
|
||||||
|
"tooltip": "Personalizar perfil"
|
||||||
|
},
|
||||||
|
"data": {
|
||||||
|
"sync-map": "Sincronizar mapa",
|
||||||
|
"title": "Datos",
|
||||||
|
"tooltip": "Mostrar tabla de datos de ruta detallada"
|
||||||
|
},
|
||||||
|
"itinerary": {
|
||||||
|
"title": "Itinerario",
|
||||||
|
"tooltip": "Mostrar itinerario"
|
||||||
|
},
|
||||||
|
"layers": {
|
||||||
|
"category": {
|
||||||
|
"base-layers": "Capas base",
|
||||||
|
"country": "País",
|
||||||
|
"europe": "Europa",
|
||||||
|
"europe-monolingual": "Monolingüe Europa",
|
||||||
|
"overlays": "Superposiciones",
|
||||||
|
"overpass": "Ubicaciones (PDI)",
|
||||||
|
"worldwide": "Mundial",
|
||||||
|
"worldwide-international": "Internacional mundial",
|
||||||
|
"worldwide-monolingual": "Monolingüe mundial"
|
||||||
|
},
|
||||||
|
"collapse": "Desplegar todo",
|
||||||
|
"custom-layers": "Capas personalizadas",
|
||||||
|
"customize": "Añadir o eliminar capas personalizadas",
|
||||||
|
"expand": "Expandir todo",
|
||||||
|
"optional": "Añadir o eliminar capas opcionales",
|
||||||
|
"optional-layers": "Más",
|
||||||
|
"overlay-opacity": "Transparencia de superposición",
|
||||||
|
"overlay-opacity_plural": "Transparencia de superposiciones",
|
||||||
|
"table": {
|
||||||
|
"URL": "URL/Consulta",
|
||||||
|
"empty": "No hay una capa personalizada configurada todavía.",
|
||||||
|
"name": "Nombre",
|
||||||
|
"type": "Tipo",
|
||||||
|
"type_layer": "Capa",
|
||||||
|
"type_overlay": "Superposición",
|
||||||
|
"type_overpass_query": "Consulta de Overpass"
|
||||||
|
},
|
||||||
|
"title": "Capas",
|
||||||
|
"tooltip": "Seleccionar capas"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"apply": "Aplicar",
|
||||||
|
"clear": "Limpiar",
|
||||||
|
"help": "Ayuda",
|
||||||
|
"no_easy_configuration_warning": "No hay una configuración fácil disponible para este perfil.",
|
||||||
|
"options": "Opciones",
|
||||||
|
"placeholder": "Escriba su perfil personalizado aquí.",
|
||||||
|
"profile": "Perfil"
|
||||||
|
},
|
||||||
|
"tab-tooltip": "{{action}}\n(tecla {{toggleKey}} para alternar, {{switchKey}} para cambiar a la siguiente pestaña)"
|
||||||
|
},
|
||||||
|
"title": "Cliente web de BRoute",
|
||||||
|
"trackasroute": {
|
||||||
|
"browse": "Navegar",
|
||||||
|
"explainpoi": "(mostrar waypoints como PDI)",
|
||||||
|
"explaintracklayer": "(mostrar la pista como una capa separada)",
|
||||||
|
"file": "Trackfile",
|
||||||
|
"fuzziness": "Borrosidad",
|
||||||
|
"pleasewait": "Espere",
|
||||||
|
"showpois": "PDI",
|
||||||
|
"title": "Cargar pista como ruta",
|
||||||
|
"tracklayer": "Capa de pista",
|
||||||
|
"tuning": "Afinación"
|
||||||
|
},
|
||||||
|
"warning": {
|
||||||
|
"cannot-get-route": "Error al obtener la URL de ruta",
|
||||||
|
"invalid-route-from": "El marcador de inicio está demasiado lejos de una ruta.",
|
||||||
|
"invalid-route-to": "El marcador de destino está demasiado lejos de una ruta.",
|
||||||
|
"no-response": "sin respuesta del servidor",
|
||||||
|
"no-route-found": "Error: no se puede encontrar una ruta para los puntos dados. ¿Quizás intentando acercarlos a las carreteras?",
|
||||||
|
"profile-error": "Error de perfil: sin respuesta del servidor",
|
||||||
|
"strava-error": "Error al obtener segmentos de Strava: {{error}}",
|
||||||
|
"temporary-profile": "<strong>Nota:</strong> Los perfiles personalizados cargados solo se almacenan en caché temporalmente en el servidor.<br/> Guarde sus ediciones en su PC local.",
|
||||||
|
"tracks-load-error": "Error al cargar pistas: {{error}}",
|
||||||
|
"upload-error": "Error de carga: {{error}}"
|
||||||
|
},
|
||||||
|
"whatsnew": {
|
||||||
|
"new-version": "Se lanzó una nueva versión desde su última visita. Haga clic <a href='.' data-toggle='modal' data-target='#whatsnew'>aquí</a> para ver las novedades.",
|
||||||
|
"title": "Novedades"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Show more information about BRouter-Web"
|
"tooltip": "Show more information about BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Datos de elevación",
|
"elevation-data": "Datos de elevación",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Tiles del mapa",
|
"map-tiles": "Tiles del mapa",
|
||||||
"nominatim": "Búsqueda por <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Búsqueda por <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >Colaboradores de OpenStreetMap</a> bajo <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >Colaboradores de OpenStreetMap</a> bajo <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"title": "Credits"
|
"title": "Credits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "Factor de costo medio",
|
"mean-cost-factor": "Factor de costo medio",
|
||||||
"meter": "metros",
|
"meter": "metros",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "No elevation data available for this route.",
|
||||||
"plain-ascend": "Ascenso llano",
|
"plain-ascend": "Ascenso llano",
|
||||||
"stats-info": "Start drawing a route to get stats.",
|
"stats-info": "Start drawing a route to get stats.",
|
||||||
"total-energy": "Energia total",
|
"total-energy": "Energia total",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Añadir capa base",
|
"add-base": "Añadir capa base",
|
||||||
"add-overlay": "Añadir superposición",
|
"add-overlay": "Añadir superposición",
|
||||||
|
"add-overpass": "Add overpass query",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Custom layer name",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Custom layer URL/Query",
|
||||||
"customize": "Personalizar capas",
|
"customize": "Personalizar capas",
|
||||||
"opacity-slider": "Control deslizante de opacidad",
|
"opacity-slider": "Control deslizante de opacidad",
|
||||||
"placeholder-layer-name": "Nombre de capa personalizada. (ex: OpenStreetMap)",
|
"overpass-loading-indicator": "Running Overpass API query ...",
|
||||||
"placeholder-layer-url": "URL de capa personalizada. (ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Eliminar selección"
|
"remove-selection": "Eliminar selección"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Propiedades por defecto",
|
"defaultProperties": "Propiedades por defecto",
|
||||||
"file": "Archivo (.geojson): ",
|
"file": "File (.geojson)",
|
||||||
"load": "Cargar",
|
"load": "Cargar",
|
||||||
"nogoBuffer": "Buffer de zonas prohibidas (en metros):",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "Radio prohibido para puntos (en metros):",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "Peso prohibido (-1 significa intransitable):",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Fuente",
|
"source": "Fuente",
|
||||||
"title": "Cargar áreas prohibidas",
|
"title": "Cargar áreas prohibidas",
|
||||||
"url": "URL: "
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "Colaboradores de OpenStreetMap",
|
"attribution-osm-long": "Colaboradores de OpenStreetMap",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Codificación de costos",
|
"route-quality-cost": "Codificación de costos",
|
||||||
"route-quality-incline": "Codificación de inclinación",
|
"route-quality-incline": "Codificación de inclinación",
|
||||||
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
||||||
|
"route-tooltip-segment": "Drag to create a new waypoint",
|
||||||
|
"route-tooltip-waypoint": "Waypoint. Drag to move; Click to remove.",
|
||||||
"strava-biking": "Mostrar segmentos de ciclismo de Strava",
|
"strava-biking": "Mostrar segmentos de ciclismo de Strava",
|
||||||
"strava-running": "Mostrar segmentos de carrera de Strava",
|
"strava-running": "Mostrar segmentos de carrera de Strava",
|
||||||
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Alejarse"
|
"zoomOutTitle": "Alejarse"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Cerrar"
|
"close": "Cerrar"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "Acerca de",
|
"about": "Acerca de",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Load no-go areas",
|
"nogos": "Load no-go areas",
|
||||||
"title": "Cargar",
|
"title": "Cargar",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Load tracks"
|
"tracks": "Load tracks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Europa",
|
"europe": "Europa",
|
||||||
"europe-monolingual": "Monolingüe Europa",
|
"europe-monolingual": "Monolingüe Europa",
|
||||||
"overlays": "Superposiciones",
|
"overlays": "Superposiciones",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Mundial",
|
"worldwide": "Mundial",
|
||||||
"worldwide-international": "Internacional mundial",
|
"worldwide-international": "Internacional mundial",
|
||||||
"worldwide-monolingual": "Monolingüe mundial"
|
"worldwide-monolingual": "Monolingüe mundial"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Añadir o eliminar capas opcionales",
|
"optional": "Añadir o eliminar capas opcionales",
|
||||||
"optional-layers": "Más",
|
"optional-layers": "Más",
|
||||||
"overlay-opacity": "Transparencia de superposición",
|
"overlay-opacity": "Transparencia de superposición",
|
||||||
|
"overlay-opacity_plural": "Overlays transparency",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Query",
|
||||||
"empty": "No hay una capa personalizada configurada todavía.",
|
"empty": "No hay una capa personalizada configurada todavía.",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
"type": "Tipo"
|
"type": "Tipo",
|
||||||
|
"type_layer": "Layer",
|
||||||
|
"type_overlay": "Overlay",
|
||||||
|
"type_overpass_query": "Overpass Query"
|
||||||
},
|
},
|
||||||
"title": "Capas",
|
"title": "Capas",
|
||||||
"tooltip": "Select layers"
|
"tooltip": "Select layers"
|
||||||
|
|
@ -260,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "BRoute web cliente",
|
"title": "BRoute web cliente",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Browse",
|
||||||
"explainpoi": "(show waypoints as POI's)",
|
"explainpoi": "(show waypoints as POI's)",
|
||||||
"explaintracklayer": "(show Track as separate Layer)",
|
"explaintracklayer": "(show Track as separate Layer)",
|
||||||
"file": "Trackfile",
|
"file": "Trackfile",
|
||||||
"fuzziness": "fuzziness",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Please wait!",
|
"pleasewait": "Please wait!",
|
||||||
"showpois": "POI's",
|
"showpois": "POI's",
|
||||||
"title": "Load Track as Route",
|
"title": "Load Track as Route",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Show more information about BRouter-Web"
|
"tooltip": "Show more information about BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Elevation data",
|
"elevation-data": "Elevation data",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Map tiles",
|
"map-tiles": "Map tiles",
|
||||||
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"title": "Credits"
|
"title": "Credits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "Mean cost factor",
|
"mean-cost-factor": "Mean cost factor",
|
||||||
"meter": "meters",
|
"meter": "meters",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "No elevation data available for this route.",
|
||||||
"plain-ascend": "Plain ascend",
|
"plain-ascend": "Plain ascend",
|
||||||
"stats-info": "Start drawing a route to get stats.",
|
"stats-info": "Start drawing a route to get stats.",
|
||||||
"total-energy": "Total Energy",
|
"total-energy": "Total Energy",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Add base layer",
|
"add-base": "Add base layer",
|
||||||
"add-overlay": "Add overlay",
|
"add-overlay": "Add overlay",
|
||||||
|
"add-overpass": "Add overpass query",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Custom layer name",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Custom layer URL/Query",
|
||||||
"customize": "Customize layers",
|
"customize": "Customize layers",
|
||||||
"opacity-slider": "Opacity slider",
|
"opacity-slider": "Opacity slider",
|
||||||
"placeholder-layer-name": "Custom layer name. (ex: OpenStreetMap)",
|
"overpass-loading-indicator": "Running Overpass API query ...",
|
||||||
"placeholder-layer-url": "Custom layer URL. (ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Remove selection"
|
"remove-selection": "Remove selection"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Default properties",
|
"defaultProperties": "Default properties",
|
||||||
"file": "File (.geojson): ",
|
"file": "File (.geojson)",
|
||||||
"load": "Load",
|
"load": "Load",
|
||||||
"nogoBuffer": "Buffer no-go areas (in meters): ",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "No-go radius for points (in meters): ",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "No-go weight (-1 means impassable): ",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Source",
|
"source": "Source",
|
||||||
"title": "Load no-go areas",
|
"title": "Load no-go areas",
|
||||||
"url": "URL: "
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "OpenStreetMap contributors",
|
"attribution-osm-long": "OpenStreetMap contributors",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Cost coding",
|
"route-quality-cost": "Cost coding",
|
||||||
"route-quality-incline": "Incline coding",
|
"route-quality-incline": "Incline coding",
|
||||||
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
||||||
|
"route-tooltip-segment": "Drag to create a new waypoint",
|
||||||
|
"route-tooltip-waypoint": "Waypoint. Drag to move; Click to remove.",
|
||||||
"strava-biking": "Show Strava biking segments",
|
"strava-biking": "Show Strava biking segments",
|
||||||
"strava-running": "Show Strava running segments",
|
"strava-running": "Show Strava running segments",
|
||||||
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Zoom out"
|
"zoomOutTitle": "Zoom out"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Close"
|
"close": "Close"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "About",
|
"about": "About",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Load no-go areas",
|
"nogos": "Load no-go areas",
|
||||||
"title": "Load",
|
"title": "Load",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Load tracks"
|
"tracks": "Load tracks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Europe",
|
"europe": "Europe",
|
||||||
"europe-monolingual": "Europe monolingual",
|
"europe-monolingual": "Europe monolingual",
|
||||||
"overlays": "Overlays",
|
"overlays": "Overlays",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Worldwide",
|
"worldwide": "Worldwide",
|
||||||
"worldwide-international": "Worldwide international",
|
"worldwide-international": "Worldwide international",
|
||||||
"worldwide-monolingual": "Worldwide monolingual"
|
"worldwide-monolingual": "Worldwide monolingual"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Add or remove optional layers",
|
"optional": "Add or remove optional layers",
|
||||||
"optional-layers": "More",
|
"optional-layers": "More",
|
||||||
"overlay-opacity": "Overlay transparency",
|
"overlay-opacity": "Overlay transparency",
|
||||||
|
"overlay-opacity_plural": "Overlays transparency",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Query",
|
||||||
"empty": "No custom layer configured yet.",
|
"empty": "No custom layer configured yet.",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"type": "Type"
|
"type": "Type",
|
||||||
|
"type_layer": "Layer",
|
||||||
|
"type_overlay": "Overlay",
|
||||||
|
"type_overpass_query": "Overpass Query"
|
||||||
},
|
},
|
||||||
"title": "Layers",
|
"title": "Layers",
|
||||||
"tooltip": "Select layers"
|
"tooltip": "Select layers"
|
||||||
|
|
@ -260,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "BRouter web client",
|
"title": "BRouter web client",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Browse",
|
||||||
"explainpoi": "(show waypoints as POI's)",
|
"explainpoi": "(show waypoints as POI's)",
|
||||||
"explaintracklayer": "(show Track as separate Layer)",
|
"explaintracklayer": "(show Track as separate Layer)",
|
||||||
"file": "Trackfile",
|
"file": "Trackfile",
|
||||||
"fuzziness": "fuzziness",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Please wait!",
|
"pleasewait": "Please wait!",
|
||||||
"showpois": "POI's",
|
"showpois": "POI's",
|
||||||
"title": "Load Track as Route",
|
"title": "Load Track as Route",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Afficher plus d'informations à propos de BRouter-Web"
|
"tooltip": "Afficher plus d'informations à propos de BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "limites administratives: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "limites administratives: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Données d'élévation",
|
"elevation-data": "Données d'élévation",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Tuiles de carte",
|
"map-tiles": "Tuiles de carte",
|
||||||
"nominatim": "Recherche par <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Recherche par <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >contributeurs OpenStreetMap</a> sous <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >contributeurs OpenStreetMap</a> sous <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Lieux (PIs) : <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">API Overpass</a>",
|
||||||
"title": "Crédits"
|
"title": "Crédits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -55,8 +56,9 @@
|
||||||
"mean-cost-factor": "Facteur coût moyen",
|
"mean-cost-factor": "Facteur coût moyen",
|
||||||
"meter": "mètres",
|
"meter": "mètres",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "Aucune donnée d'élévation pour ce parcours.",
|
||||||
"plain-ascend": "faux plat",
|
"plain-ascend": "faux plat",
|
||||||
"stats-info": "Commencer un itinéraire pour voir ses stats.",
|
"stats-info": "Tracer un itinéraire pour voir ses stats.",
|
||||||
"total-energy": "Énergie totale",
|
"total-energy": "Énergie totale",
|
||||||
"travel-time": "Temps de trajet"
|
"travel-time": "Temps de trajet"
|
||||||
},
|
},
|
||||||
|
|
@ -68,23 +70,28 @@
|
||||||
},
|
},
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Ajouter un fond de carte ",
|
"add-base": "Ajouter un fond de carte ",
|
||||||
"add-overlay": "Ajouter un calque superposable",
|
"add-overlay": "Ajouter une surcouche",
|
||||||
|
"add-overpass": "Ajouter une requête overpass",
|
||||||
|
"custom-layer-name-helptext": "ex : OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Nom du calque",
|
||||||
|
"custom-layer-url-helptext-normal": "URL du calque, ex : https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Requête Overpass, ex : nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "URL ou requête du calque",
|
||||||
"customize": "Personnaliser les calques",
|
"customize": "Personnaliser les calques",
|
||||||
"opacity-slider": "Curseur d'opacité",
|
"opacity-slider": "Curseur d'opacité",
|
||||||
"placeholder-layer-name": "Nom du calque (p. ex. OpenStreetMap).",
|
"overpass-loading-indicator": "Exécution de la requête Overpass",
|
||||||
"placeholder-layer-url": "URL du calque (p. ex. https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png).",
|
|
||||||
"remove-selection": "Supprimer la sélection"
|
"remove-selection": "Supprimer la sélection"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Propriétés par défaut",
|
"defaultProperties": "Propriétés par défaut",
|
||||||
"file": "Fichier (.geojson)",
|
"file": "Fichier (.geojson)",
|
||||||
"load": "Charger",
|
"load": "Charger",
|
||||||
"nogoBuffer": "Tampon des zones interdites (en mètres) :",
|
"nogoBuffer": "Tampon des zones interdites (en mètres)",
|
||||||
"nogoRadius": "Rayon des zones interdites pour les points (en mètres) :",
|
"nogoRadius": "Rayon des zones interdites pour les points (en mètres)",
|
||||||
"nogoWeight": "Poids des zones interdites (-1 signifie infranchissable)",
|
"nogoWeight": "Poids des zones interdites (-1 signifie infranchissable)",
|
||||||
"source": "Source",
|
"source": "Source",
|
||||||
"title": "Charger les zones interdites",
|
"title": "Charger les zones interdites",
|
||||||
"url": "URL :"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "Contributeurs OpenStreetMap",
|
"attribution-osm-long": "Contributeurs OpenStreetMap",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Chiffrage du coût",
|
"route-quality-cost": "Chiffrage du coût",
|
||||||
"route-quality-incline": "Chiffrage d'inclinaison",
|
"route-quality-incline": "Chiffrage d'inclinaison",
|
||||||
"route-quality-shortcut": "{{action}} (touche {{key}} pour basculer)",
|
"route-quality-shortcut": "{{action}} (touche {{key}} pour basculer)",
|
||||||
|
"route-tooltip-segment": "Laisser appuyer et déplacer pour ajouter un nouveau point de passage",
|
||||||
|
"route-tooltip-waypoint": "Point de passage. Laisser appuyer pour déplacer ; cliquer pour supprimer.",
|
||||||
"strava-biking": "Afficher les segments Strava vélo",
|
"strava-biking": "Afficher les segments Strava vélo",
|
||||||
"strava-running": "Afficher les segments Strava à pied",
|
"strava-running": "Afficher les segments Strava à pied",
|
||||||
"strava-shortcut": "{{action}}\n(touche {{key}} pour basculer de calque, cliquer pour recharger la zone actuelle)",
|
"strava-shortcut": "{{action}}\n(touche {{key}} pour basculer de calque, cliquer pour recharger la zone actuelle)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Dézoomer"
|
"zoomOutTitle": "Dézoomer"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Fermer"
|
"close": "Fermer"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "À propos",
|
"about": "À propos",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Charger des zones interdites",
|
"nogos": "Charger des zones interdites",
|
||||||
"title": "Charger",
|
"title": "Charger",
|
||||||
"tooltip": "{{tracksAction}} (touche {{tracksKey}} )\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} (touche {{tracksKey}})\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Charger des traces"
|
"tracks": "Charger des traces"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -226,7 +234,8 @@
|
||||||
"country": "Pays",
|
"country": "Pays",
|
||||||
"europe": "Europe",
|
"europe": "Europe",
|
||||||
"europe-monolingual": "Europe monolingue",
|
"europe-monolingual": "Europe monolingue",
|
||||||
"overlays": "Calques superposables",
|
"overlays": "Surcouches",
|
||||||
|
"overpass": "Lieux (PIs)",
|
||||||
"worldwide": "Mondial",
|
"worldwide": "Mondial",
|
||||||
"worldwide-international": "Mondial international",
|
"worldwide-international": "Mondial international",
|
||||||
"worldwide-monolingual": "Mondial monolingue"
|
"worldwide-monolingual": "Mondial monolingue"
|
||||||
|
|
@ -240,10 +249,13 @@
|
||||||
"overlay-opacity": "Transparence de la surcouche",
|
"overlay-opacity": "Transparence de la surcouche",
|
||||||
"overlay-opacity_plural": "Transparence des surcouches",
|
"overlay-opacity_plural": "Transparence des surcouches",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Requête",
|
||||||
"empty": "Aucun calque personnel trouvé.",
|
"empty": "Aucun calque personnel trouvé.",
|
||||||
"name": "Nom",
|
"name": "Nom",
|
||||||
"type": "Type"
|
"type": "Type",
|
||||||
|
"type_layer": "Calque",
|
||||||
|
"type_overlay": "Surcouche",
|
||||||
|
"type_overpass_query": "Requête Overpass"
|
||||||
},
|
},
|
||||||
"title": "Calques",
|
"title": "Calques",
|
||||||
"tooltip": "Sélection des calques"
|
"tooltip": "Sélection des calques"
|
||||||
|
|
@ -261,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "Client web BRouter",
|
"title": "Client web BRouter",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Parcourir",
|
||||||
"explainpoi": "(afficher les points de passage comme des PIs)",
|
"explainpoi": "(afficher les points de passage comme des PIs)",
|
||||||
"explaintracklayer": "(afficher la piste comme un calque distinct)",
|
"explaintracklayer": "(afficher la piste comme un calque distinct)",
|
||||||
"file": "Fichier de piste",
|
"file": "Fichier de piste",
|
||||||
"fuzziness": "flou",
|
"fuzziness": "Lissage",
|
||||||
"pleasewait": "Merci de patienter !",
|
"pleasewait": "Merci de patienter !",
|
||||||
"showpois": "PIs",
|
"showpois": "PIs",
|
||||||
"title": "Charger la trace comme itinéraire",
|
"title": "Charger la trace comme itinéraire",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Show more information about BRouter-Web"
|
"tooltip": "Show more information about BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Elevation data",
|
"elevation-data": "Elevation data",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Map tiles",
|
"map-tiles": "Map tiles",
|
||||||
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Search by <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap contributors</a> under <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"title": "Credits"
|
"title": "Credits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "Mean cost factor",
|
"mean-cost-factor": "Mean cost factor",
|
||||||
"meter": "meters",
|
"meter": "meters",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "No elevation data available for this route.",
|
||||||
"plain-ascend": "Plain ascend",
|
"plain-ascend": "Plain ascend",
|
||||||
"stats-info": "Start drawing a route to get stats.",
|
"stats-info": "Start drawing a route to get stats.",
|
||||||
"total-energy": "Total Energy",
|
"total-energy": "Total Energy",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Add base layer",
|
"add-base": "Add base layer",
|
||||||
"add-overlay": "Add overlay",
|
"add-overlay": "Add overlay",
|
||||||
|
"add-overpass": "Add overpass query",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Custom layer name",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Custom layer URL/Query",
|
||||||
"customize": "Customize layers",
|
"customize": "Customize layers",
|
||||||
"opacity-slider": "Opacity slider",
|
"opacity-slider": "Opacity slider",
|
||||||
"placeholder-layer-name": "Custom layer name. (ex: OpenStreetMap)",
|
"overpass-loading-indicator": "Running Overpass API query ...",
|
||||||
"placeholder-layer-url": "Custom layer URL. (ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Remove selection"
|
"remove-selection": "Remove selection"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Default properties",
|
"defaultProperties": "Default properties",
|
||||||
"file": "File (.geojson): ",
|
"file": "File (.geojson)",
|
||||||
"load": "Load",
|
"load": "Load",
|
||||||
"nogoBuffer": "Buffer no-go areas (in meters): ",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "No-go radius for points (in meters): ",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "No-go weight (-1 means impassable): ",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Source",
|
"source": "Source",
|
||||||
"title": "Load no-go areas",
|
"title": "Load no-go areas",
|
||||||
"url": "URL: "
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "OpenStreetMap contributors",
|
"attribution-osm-long": "OpenStreetMap contributors",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Cost coding",
|
"route-quality-cost": "Cost coding",
|
||||||
"route-quality-incline": "Incline coding",
|
"route-quality-incline": "Incline coding",
|
||||||
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
||||||
|
"route-tooltip-segment": "Drag to create a new waypoint",
|
||||||
|
"route-tooltip-waypoint": "Waypoint. Drag to move; Click to remove.",
|
||||||
"strava-biking": "Show Strava biking segments",
|
"strava-biking": "Show Strava biking segments",
|
||||||
"strava-running": "Show Strava running segments",
|
"strava-running": "Show Strava running segments",
|
||||||
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Zoom out"
|
"zoomOutTitle": "Zoom out"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Close"
|
"close": "Close"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "About",
|
"about": "About",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Load no-go areas",
|
"nogos": "Load no-go areas",
|
||||||
"title": "Load",
|
"title": "Load",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Load tracks"
|
"tracks": "Load tracks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Europe",
|
"europe": "Europe",
|
||||||
"europe-monolingual": "Europe monolingual",
|
"europe-monolingual": "Europe monolingual",
|
||||||
"overlays": "Overlays",
|
"overlays": "Overlays",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Worldwide",
|
"worldwide": "Worldwide",
|
||||||
"worldwide-international": "Worldwide international",
|
"worldwide-international": "Worldwide international",
|
||||||
"worldwide-monolingual": "Worldwide monolingual"
|
"worldwide-monolingual": "Worldwide monolingual"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Add or remove optional layers",
|
"optional": "Add or remove optional layers",
|
||||||
"optional-layers": "More",
|
"optional-layers": "More",
|
||||||
"overlay-opacity": "Overlay transparency",
|
"overlay-opacity": "Overlay transparency",
|
||||||
|
"overlay-opacity_plural": "Overlays transparency",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/Query",
|
||||||
"empty": "No custom layer configured yet.",
|
"empty": "No custom layer configured yet.",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"type": "Type"
|
"type": "Type",
|
||||||
|
"type_layer": "Layer",
|
||||||
|
"type_overlay": "Overlay",
|
||||||
|
"type_overpass_query": "Overpass Query"
|
||||||
},
|
},
|
||||||
"title": "Layers",
|
"title": "Layers",
|
||||||
"tooltip": "Select layers"
|
"tooltip": "Select layers"
|
||||||
|
|
@ -260,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "BRouter web client",
|
"title": "BRouter web client",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Browse",
|
||||||
"explainpoi": "(show waypoints as POI's)",
|
"explainpoi": "(show waypoints as POI's)",
|
||||||
"explaintracklayer": "(show Track as separate Layer)",
|
"explaintracklayer": "(show Track as separate Layer)",
|
||||||
"file": "Trackfile",
|
"file": "Trackfile",
|
||||||
"fuzziness": "fuzziness",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Please wait!",
|
"pleasewait": "Please wait!",
|
||||||
"showpois": "POI's",
|
"showpois": "POI's",
|
||||||
"title": "Load Track as Route",
|
"title": "Load Track as Route",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "További információk megjelenítése a BRouter-Webről"
|
"tooltip": "További információk megjelenítése a BRouter-Webről"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Közigazgatási határok: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-határok</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Magassági adatok",
|
"elevation-data": "Magassági adatok",
|
||||||
|
|
@ -25,7 +25,8 @@
|
||||||
"map-tiles": "Map tiles",
|
"map-tiles": "Map tiles",
|
||||||
"nominatim": "Keresés: <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Keresés: <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap közreműködők</a>, <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a> licenc szerint",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap közreműködők</a>, <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a> licenc szerint",
|
||||||
"title": "Credits"
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
|
"title": "Alkotók"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
"format": "Formátum",
|
"format": "Formátum",
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "Közepes ráfordítástényező",
|
"mean-cost-factor": "Közepes ráfordítástényező",
|
||||||
"meter": "méter",
|
"meter": "méter",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "Ehhez az útvonalhoz nincsenek magassági adatok.",
|
||||||
"plain-ascend": "Végpontok közötti szintkülönbség",
|
"plain-ascend": "Végpontok közötti szintkülönbség",
|
||||||
"stats-info": "A statisztika megtekintéséhez kezdjen el egy útvonalat rajzolni.",
|
"stats-info": "A statisztika megtekintéséhez kezdjen el egy útvonalat rajzolni.",
|
||||||
"total-energy": "Teljes energiafelhasználás",
|
"total-energy": "Teljes energiafelhasználás",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Alapréteg hozzáadása",
|
"add-base": "Alapréteg hozzáadása",
|
||||||
"add-overlay": "Rátétréteg hozzáadása",
|
"add-overlay": "Rátétréteg hozzáadása",
|
||||||
|
"add-overpass": "Overpass-lekérdezés hozzáadása",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Egyéni réteg neve",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Egyéni réteg URL-je/lekérdezése",
|
||||||
"customize": "Rétegek személyre szabása",
|
"customize": "Rétegek személyre szabása",
|
||||||
"opacity-slider": "Átlátszósági csúszka",
|
"opacity-slider": "Átlátszósági csúszka",
|
||||||
"placeholder-layer-name": "Egyedi rétegnév (pl. OpenStreetMap)",
|
"overpass-loading-indicator": "Overpass API-lekérdezés futtatása…",
|
||||||
"placeholder-layer-url": "Egyedi réteg URL-je (pl. https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Kijelölés eltávolítása"
|
"remove-selection": "Kijelölés eltávolítása"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Alapértelmezett tulajdonságok",
|
"defaultProperties": "Alapértelmezett tulajdonságok",
|
||||||
"file": "Fájl (.geojson):",
|
"file": "Fájl (.geojson)",
|
||||||
"load": "Betöltés",
|
"load": "Betöltés",
|
||||||
"nogoBuffer": "Elkerülendő területek körüli távolság (méter)",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "Elkerülendő pontok körüli sugár (méter):",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "Elkerülendő területek súlyozása (-1 = áthatolhatatlan):",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Forrás",
|
"source": "Forrás",
|
||||||
"title": "Elkerülendő területek betöltése",
|
"title": "Elkerülendő területek betöltése",
|
||||||
"url": "URL:"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "OpenStreetMap közreműködők",
|
"attribution-osm-long": "OpenStreetMap közreműködők",
|
||||||
|
|
@ -96,8 +103,8 @@
|
||||||
"delete-nogo-areas": "Minden elkerülendő terület törlése",
|
"delete-nogo-areas": "Minden elkerülendő terület törlése",
|
||||||
"delete-pois": "Minden érdekes pont (POI) törlése",
|
"delete-pois": "Minden érdekes pont (POI) törlése",
|
||||||
"delete-route": "Útvonal törlése",
|
"delete-route": "Útvonal törlése",
|
||||||
"draw-circlego-start": "Draw limited go-to zone",
|
"draw-circlego-start": "Korlátozott elkerülendő terület rajzolása",
|
||||||
"draw-circlego-stop": "Stop drawing limited go-to zone",
|
"draw-circlego-stop": "Korlátozott elkerülendő terület rajzolásának megszakítása",
|
||||||
"draw-poi-start": "Érdekes pontok (POI-k) rajzolása",
|
"draw-poi-start": "Érdekes pontok (POI-k) rajzolása",
|
||||||
"draw-poi-stop": "Érdekes pontok rajzolásának megszakítása",
|
"draw-poi-stop": "Érdekes pontok rajzolásának megszakítása",
|
||||||
"draw-route-start": "Útvonal rajzolása",
|
"draw-route-start": "Útvonal rajzolása",
|
||||||
|
|
@ -132,7 +139,7 @@
|
||||||
"edit": "Szerkesztés kattintással",
|
"edit": "Szerkesztés kattintással",
|
||||||
"help": "□ = áthelyezés / átméretezés, <span class=\"fa fa-trash-o\"></span> = törlés,<br>a szerkesztés befejezéséhez kattintson a körre"
|
"help": "□ = áthelyezés / átméretezés, <span class=\"fa fa-trash-o\"></span> = törlés,<br>a szerkesztés befejezéséhez kattintson a körre"
|
||||||
},
|
},
|
||||||
"not-applicable-here": "not applicable here",
|
"not-applicable-here": "itt nem alkalmazható",
|
||||||
"opacity-slider": "Útvonal és jelölők átlátszóságának beállítása",
|
"opacity-slider": "Útvonal és jelölők átlátszóságának beállítása",
|
||||||
"opacity-slider-shortcut": "{{action}}\n(Időszakos elnémítás a {{key}} billentyűt lenyomva tartásával)",
|
"opacity-slider-shortcut": "{{action}}\n(Időszakos elnémítás a {{key}} billentyűt lenyomva tartásával)",
|
||||||
"preview": "Előnézet",
|
"preview": "Előnézet",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Ráfordítás kódolása",
|
"route-quality-cost": "Ráfordítás kódolása",
|
||||||
"route-quality-incline": "Lejtés kódolása",
|
"route-quality-incline": "Lejtés kódolása",
|
||||||
"route-quality-shortcut": "{{action}} (be-/kikapcsolás: {{key}} billentyű)",
|
"route-quality-shortcut": "{{action}} (be-/kikapcsolás: {{key}} billentyű)",
|
||||||
|
"route-tooltip-segment": "Húzza el új útpont létrehozásához",
|
||||||
|
"route-tooltip-waypoint": "Útpont: mozgatáshoz húzza el, eltávolításhoz kattintson rá.",
|
||||||
"strava-biking": "Strava motoros útvonalszakaszok megjelenítése",
|
"strava-biking": "Strava motoros útvonalszakaszok megjelenítése",
|
||||||
"strava-running": "Strava futó útvonalszakaszok megjelenítése",
|
"strava-running": "Strava futó útvonalszakaszok megjelenítése",
|
||||||
"strava-shortcut": "{{action}}\n({{key}} billentyű a réteg be-/kikapcsolásához, kattintás az adott terület újratöltéséhez)",
|
"strava-shortcut": "{{action}}\n({{key}} billentyű a réteg be-/kikapcsolásához, kattintás az adott terület újratöltéséhez)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Kicsinyítés"
|
"zoomOutTitle": "Kicsinyítés"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Bezárás"
|
"close": "Bezárás"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "Névjegy",
|
"about": "Névjegy",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Elkerülendő területek betöltése",
|
"nogos": "Elkerülendő területek betöltése",
|
||||||
"title": "Betöltés",
|
"title": "Betöltés",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} billentyű)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} billentyű)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Nyomvonalak betöltése"
|
"tracks": "Nyomvonalak betöltése"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Európa",
|
"europe": "Európa",
|
||||||
"europe-monolingual": "Európa (egynyelvű)",
|
"europe-monolingual": "Európa (egynyelvű)",
|
||||||
"overlays": "Rátétrétegek",
|
"overlays": "Rátétrétegek",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Világ",
|
"worldwide": "Világ",
|
||||||
"worldwide-international": "Világ (nemzetközi)",
|
"worldwide-international": "Világ (nemzetközi)",
|
||||||
"worldwide-monolingual": "Világ (egynyelvű)"
|
"worldwide-monolingual": "Világ (egynyelvű)"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Rétegek hozzáadása vagy eltávolítása",
|
"optional": "Rétegek hozzáadása vagy eltávolítása",
|
||||||
"optional-layers": "Több",
|
"optional-layers": "Több",
|
||||||
"overlay-opacity": "Rátétréteg átlászósága",
|
"overlay-opacity": "Rátétréteg átlászósága",
|
||||||
|
"overlay-opacity_plural": "Rátétrétegek átlátszósága",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "URL",
|
"URL": "URL/lekérdezés",
|
||||||
"empty": "Még nincs beállítva egyedi réteg",
|
"empty": "Még nincs beállítva egyedi réteg",
|
||||||
"name": "Név",
|
"name": "Név",
|
||||||
"type": "Típus"
|
"type": "Típus",
|
||||||
|
"type_layer": "Réteg",
|
||||||
|
"type_overlay": "Rátétréteg",
|
||||||
|
"type_overpass_query": "Overpass-lekérdezés"
|
||||||
},
|
},
|
||||||
"title": "Rétegek",
|
"title": "Rétegek",
|
||||||
"tooltip": "Rétegek kijelölése"
|
"tooltip": "Rétegek kijelölése"
|
||||||
|
|
@ -260,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "BRouter webkliens",
|
"title": "BRouter webkliens",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Böngészése",
|
||||||
"explainpoi": "(útpontok megjelenítése érdekes pontként [POI-ként])",
|
"explainpoi": "(útpontok megjelenítése érdekes pontként [POI-ként])",
|
||||||
"explaintracklayer": "(nyomvonal megjelenítés különálló rétegként)",
|
"explaintracklayer": "(nyomvonal megjelenítés különálló rétegként)",
|
||||||
"file": "Nyomvonalfájl",
|
"file": "Nyomvonalfájl",
|
||||||
"fuzziness": "homályosság",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Kérjük, várjon",
|
"pleasewait": "Kérjük, várjon",
|
||||||
"showpois": "Érdekes pontok (POI-k)",
|
"showpois": "Érdekes pontok (POI-k)",
|
||||||
"title": "Nyomvonal betöltése útvonalként",
|
"title": "Nyomvonal betöltése útvonalként",
|
||||||
|
|
@ -283,7 +297,7 @@
|
||||||
"upload-error": "Feltöltési hiba: {{error}}"
|
"upload-error": "Feltöltési hiba: {{error}}"
|
||||||
},
|
},
|
||||||
"whatsnew": {
|
"whatsnew": {
|
||||||
"new-version": "A new version was released since your last visit. Click <a href='.' data-toggle='modal' data-target='#whatsnew'>here</a> to see what's new!",
|
"new-version": "Legutóbbi látogatása óta megjelent egy új verzió. <a href='.' data-toggle='modal' data-target='#whatsnew'>Kattintson ide</a>, és nézze meg az újdonságokat!",
|
||||||
"title": "What's new?"
|
"title": "Újdonságok"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tooltip": "Show more information about BRouter-Web"
|
"tooltip": "Show more information about BRouter-Web"
|
||||||
},
|
},
|
||||||
"credits": {
|
"credits": {
|
||||||
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" target=\"_blank\">Overpass API</a>",
|
"boundaries": "Administrative Boundaries: <a href=\"https://osm-boundaries.com\" target=\"_blank\">OSM-Boundaries</a>, <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"brouter": "BRouter",
|
"brouter": "BRouter",
|
||||||
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
"brouter-license": "<a target=\"_blank\" href=\"https://brouter.de/brouter\">BRouter</a> © Arndt Brenschede",
|
||||||
"elevation-data": "Hæðargögn",
|
"elevation-data": "Hæðargögn",
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
"map-tiles": "Kortatíglar",
|
"map-tiles": "Kortatíglar",
|
||||||
"nominatim": "Leita eftir <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
"nominatim": "Leita eftir <a href=\"https://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\" data-i18n=\"credits.nominatim\">Nominatim</a>",
|
||||||
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap þátttakendur</a> með <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
"openstreetmap": "© <a target=\"_blank\" href=\"https://www.openstreetmap.org/copyright\" >OpenStreetMap þátttakendur</a> með <a target=\"_blank\" href=\"https://opendatacommons.org/licenses/odbl/\" >ODbL</a>",
|
||||||
|
"pois": "Locations (POIs): <a href=\"https://overpass-api.de/\" class=\"overpass-url\" target=\"_blank\">Overpass API</a>",
|
||||||
"title": "Credits"
|
"title": "Credits"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
|
|
@ -55,6 +56,7 @@
|
||||||
"mean-cost-factor": "Meðal-kostnaðarstuðull",
|
"mean-cost-factor": "Meðal-kostnaðarstuðull",
|
||||||
"meter": "metrar",
|
"meter": "metrar",
|
||||||
"meter-abbrev": "m",
|
"meter-abbrev": "m",
|
||||||
|
"no-elevation-data": "No elevation data available for this route.",
|
||||||
"plain-ascend": "Einföld hækkun (hæðarmunur)",
|
"plain-ascend": "Einföld hækkun (hæðarmunur)",
|
||||||
"stats-info": "Start drawing a route to get stats.",
|
"stats-info": "Start drawing a route to get stats.",
|
||||||
"total-energy": "Orka alls",
|
"total-energy": "Orka alls",
|
||||||
|
|
@ -69,22 +71,27 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"add-base": "Bæta við grunnlagi",
|
"add-base": "Bæta við grunnlagi",
|
||||||
"add-overlay": "Bæta við þekjulagi",
|
"add-overlay": "Bæta við þekjulagi",
|
||||||
|
"add-overpass": "Add overpass query",
|
||||||
|
"custom-layer-name-helptext": "ex: OpenStreetMap",
|
||||||
|
"custom-layer-name-label": "Custom layer name",
|
||||||
|
"custom-layer-url-helptext-normal": "URL for normal layers, ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||||
|
"custom-layer-url-helptext-overpass": "Overpass Query, ex: nwr[shop]['diet:vegan']['diet:vegan'!=no];",
|
||||||
|
"custom-layer-url-label": "Custom layer URL/Query",
|
||||||
"customize": "Sérsníða lög",
|
"customize": "Sérsníða lög",
|
||||||
"opacity-slider": "Ógegnsæissleði",
|
"opacity-slider": "Ógegnsæissleði",
|
||||||
"placeholder-layer-name": "Heiti sérsniðins lags. (t.d: OpenStreetMap)",
|
"overpass-loading-indicator": "Running Overpass API query ...",
|
||||||
"placeholder-layer-url": "URL-slóð sérsniðins lags. (t.d: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
|
|
||||||
"remove-selection": "Fjarlægja valið"
|
"remove-selection": "Fjarlægja valið"
|
||||||
},
|
},
|
||||||
"loadNogos": {
|
"loadNogos": {
|
||||||
"defaultProperties": "Sjálfgefnir eiginleikar",
|
"defaultProperties": "Sjálfgefnir eiginleikar",
|
||||||
"file": "Skrá (.geojson): ",
|
"file": "File (.geojson)",
|
||||||
"load": "Hlaða",
|
"load": "Hlaða",
|
||||||
"nogoBuffer": "Útjaðar bannsvæða (í metrum):",
|
"nogoBuffer": "Buffer no-go areas (in meters)",
|
||||||
"nogoRadius": "Radíus bannsvæða í kringum punkt (í metrum):",
|
"nogoRadius": "No-go radius for points (in meters)",
|
||||||
"nogoWeight": "Mikilvægi bannsvæðis (-1 þýðir ófært): ",
|
"nogoWeight": "No-go weight (-1 means impassable)",
|
||||||
"source": "Uppruni",
|
"source": "Uppruni",
|
||||||
"title": "Hlaða inn bannsvæðum",
|
"title": "Hlaða inn bannsvæðum",
|
||||||
"url": "Slóð:"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"map": {
|
"map": {
|
||||||
"attribution-osm-long": "OpenStreetMap þátttakendurnir",
|
"attribution-osm-long": "OpenStreetMap þátttakendurnir",
|
||||||
|
|
@ -142,6 +149,8 @@
|
||||||
"route-quality-cost": "Kóði fyrir kostnað",
|
"route-quality-cost": "Kóði fyrir kostnað",
|
||||||
"route-quality-incline": "Kóði fyrir halla",
|
"route-quality-incline": "Kóði fyrir halla",
|
||||||
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
"route-quality-shortcut": "{{action}} ({{key}} key to toggle)",
|
||||||
|
"route-tooltip-segment": "Drag to create a new waypoint",
|
||||||
|
"route-tooltip-waypoint": "Waypoint. Drag to move; Click to remove.",
|
||||||
"strava-biking": "Sýna Strava hjólabúta",
|
"strava-biking": "Sýna Strava hjólabúta",
|
||||||
"strava-running": "Sýna Strava hlaupabúta",
|
"strava-running": "Sýna Strava hlaupabúta",
|
||||||
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
"strava-shortcut": "{{action}}\n({{key}} key to toggle layer, click to reload for current area)",
|
||||||
|
|
@ -149,8 +158,7 @@
|
||||||
"zoomOutTitle": "Renna frá"
|
"zoomOutTitle": "Renna frá"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Loka"
|
"close": "Loka"},
|
||||||
},
|
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"about": "Um hugbúnaðinn",
|
"about": "Um hugbúnaðinn",
|
||||||
"alternative": {
|
"alternative": {
|
||||||
|
|
@ -164,7 +172,7 @@
|
||||||
"load": {
|
"load": {
|
||||||
"nogos": "Hlaða inn bannsvæðum",
|
"nogos": "Hlaða inn bannsvæðum",
|
||||||
"title": "Hlaða",
|
"title": "Hlaða",
|
||||||
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{nogosAction}} ({{nogosKey}})",
|
"tooltip": "{{tracksAction}} ({{tracksKey}} key)\n{{trackAsRouteAction}} ({{trackAsRouteKey}})\n{{nogosAction}} ({{nogosKey}})",
|
||||||
"tracks": "Load tracks"
|
"tracks": "Load tracks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
@ -227,6 +235,7 @@
|
||||||
"europe": "Evrópa",
|
"europe": "Evrópa",
|
||||||
"europe-monolingual": "Eitt tungumál í Evrópu",
|
"europe-monolingual": "Eitt tungumál í Evrópu",
|
||||||
"overlays": "Þekjulög (yfirlög)",
|
"overlays": "Þekjulög (yfirlög)",
|
||||||
|
"overpass": "Locations (POIs)",
|
||||||
"worldwide": "Á heimsvísu",
|
"worldwide": "Á heimsvísu",
|
||||||
"worldwide-international": "Alþjóðlegt á heimsvísu",
|
"worldwide-international": "Alþjóðlegt á heimsvísu",
|
||||||
"worldwide-monolingual": "Eitt tungumál á heimsvísu"
|
"worldwide-monolingual": "Eitt tungumál á heimsvísu"
|
||||||
|
|
@ -238,11 +247,15 @@
|
||||||
"optional": "Bæta við eða fjarlægja valkvæð lög",
|
"optional": "Bæta við eða fjarlægja valkvæð lög",
|
||||||
"optional-layers": "Meira",
|
"optional-layers": "Meira",
|
||||||
"overlay-opacity": "Gegnsæi þekjulags",
|
"overlay-opacity": "Gegnsæi þekjulags",
|
||||||
|
"overlay-opacity_plural": "Overlays transparency",
|
||||||
"table": {
|
"table": {
|
||||||
"URL": "Slóð",
|
"URL": "URL/Query",
|
||||||
"empty": "Ekkert sérsniðið lag ennþá uppsett.",
|
"empty": "Ekkert sérsniðið lag ennþá uppsett.",
|
||||||
"name": "Nafn",
|
"name": "Nafn",
|
||||||
"type": "Tegund"
|
"type": "Tegund",
|
||||||
|
"type_layer": "Layer",
|
||||||
|
"type_overlay": "Overlay",
|
||||||
|
"type_overpass_query": "Overpass Query"
|
||||||
},
|
},
|
||||||
"title": "Lög",
|
"title": "Lög",
|
||||||
"tooltip": "Select layers"
|
"tooltip": "Select layers"
|
||||||
|
|
@ -260,10 +273,11 @@
|
||||||
},
|
},
|
||||||
"title": "BRouter vefforrit",
|
"title": "BRouter vefforrit",
|
||||||
"trackasroute": {
|
"trackasroute": {
|
||||||
|
"browse": "Browse",
|
||||||
"explainpoi": "(show waypoints as POI's)",
|
"explainpoi": "(show waypoints as POI's)",
|
||||||
"explaintracklayer": "(show Track as separate Layer)",
|
"explaintracklayer": "(show Track as separate Layer)",
|
||||||
"file": "Trackfile",
|
"file": "Trackfile",
|
||||||
"fuzziness": "fuzziness",
|
"fuzziness": "Fuzziness",
|
||||||
"pleasewait": "Please wait!",
|
"pleasewait": "Please wait!",
|
||||||
"showpois": "POI's",
|
"showpois": "POI's",
|
||||||
"title": "Load Track as Route",
|
"title": "Load Track as Route",
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue