Build a hierarchical tree from JOSM layers
This commit is contained in:
parent
ddbbd00d1f
commit
8162cd9460
3 changed files with 86 additions and 23 deletions
|
|
@ -359,6 +359,7 @@
|
||||||
<script src="dist/url-search-params.js"></script>
|
<script src="dist/url-search-params.js"></script>
|
||||||
<script src="config.js"></script>
|
<script src="config.js"></script>
|
||||||
<script src="keys.js"></script>
|
<script src="keys.js"></script>
|
||||||
|
<script src="layers.js"></script>
|
||||||
|
|
||||||
<!-- "gulp inject" for debugging -->
|
<!-- "gulp inject" for debugging -->
|
||||||
<!-- inject:js -->
|
<!-- inject:js -->
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,89 @@ BR.LayersTab = L.Control.Layers.extend({
|
||||||
addTo: function (map) {
|
addTo: function (map) {
|
||||||
this._map = map;
|
this._map = map;
|
||||||
this.onAdd(map);
|
this.onAdd(map);
|
||||||
|
|
||||||
|
var layerIndex = BR.layerIndex;
|
||||||
|
|
||||||
|
var toJsTree = function(layerTree) {
|
||||||
|
var data = [];
|
||||||
|
|
||||||
|
function walkTree(inTree, outTree) {
|
||||||
|
if (Array.isArray(inTree)) {
|
||||||
|
for (var i = 0; i < inTree.length; i++) {
|
||||||
|
var layerId = inTree[i];
|
||||||
|
var childNode = {
|
||||||
|
'text' : layerIndex[layerId].properties.name
|
||||||
|
};
|
||||||
|
outTree.push(childNode);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (name in inTree) {
|
||||||
|
var value = inTree[name];
|
||||||
|
var children = [];
|
||||||
|
var rootNode = {
|
||||||
|
'text': name,
|
||||||
|
'state': {
|
||||||
|
'disabled': true
|
||||||
|
},
|
||||||
|
'children': children
|
||||||
|
};
|
||||||
|
outTree.push(rootNode);
|
||||||
|
|
||||||
|
walkTree(value, children);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
walkTree(structure, data);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
var structure = {
|
||||||
|
'Base layers': {
|
||||||
|
'World-wide international': [
|
||||||
|
'standard',
|
||||||
|
'OpenTopoMap',
|
||||||
|
'stamen-terrain-background',
|
||||||
|
'HDM_HOT',
|
||||||
|
'wikimedia-map',
|
||||||
|
'opencylemap'
|
||||||
|
],
|
||||||
|
'World-wide monolingual': [
|
||||||
|
'osm-mapnik-german_style',
|
||||||
|
'osmfr'
|
||||||
|
],
|
||||||
|
'Europe': [
|
||||||
|
],
|
||||||
|
'Country': [
|
||||||
|
'Freemap.sk-Car',
|
||||||
|
'Freemap.sk-Hiking',
|
||||||
|
'Freemap.sk-Cyclo',
|
||||||
|
'OpenStreetMap-turistautak',
|
||||||
|
'Israel_Hiking',
|
||||||
|
'Israel_MTB',
|
||||||
|
'osmbe',
|
||||||
|
'osmbe-fr',
|
||||||
|
'osmbe-nl',
|
||||||
|
'osmfr-basque',
|
||||||
|
'osmfr-breton',
|
||||||
|
'osmfr-occitan',
|
||||||
|
'mtbmap-no',
|
||||||
|
'osm-cambodia_laos_thailand_vietnam-bilingual'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'Overlays': {
|
||||||
|
'World-wide': [
|
||||||
|
'Waymarked_Trails-Hiking',
|
||||||
|
'Waymarked_Trails-Cycling',
|
||||||
|
'Waymarked_Trails-MTB'
|
||||||
|
],
|
||||||
|
'Country': [
|
||||||
|
'hu-hillshade'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var data = toJsTree(structure);
|
||||||
|
|
||||||
L.DomUtil.get('layers-control-wrapper').appendChild(this._form);
|
L.DomUtil.get('layers-control-wrapper').appendChild(this._form);
|
||||||
$('#optional-layers-tree')
|
$('#optional-layers-tree')
|
||||||
.on('select_node.jstree', function (e, data) {
|
.on('select_node.jstree', function (e, data) {
|
||||||
|
|
@ -27,29 +110,7 @@ BR.LayersTab = L.Control.Layers.extend({
|
||||||
'icons': false,
|
'icons': false,
|
||||||
dots : false
|
dots : false
|
||||||
},
|
},
|
||||||
'data' : [
|
'data' : data
|
||||||
{
|
|
||||||
text: 'Simple root node',
|
|
||||||
'state' : {
|
|
||||||
'disabled' : true
|
|
||||||
},
|
|
||||||
'children' : [
|
|
||||||
'Child 1'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'text' : 'Root node 2',
|
|
||||||
'state' : {
|
|
||||||
'opened' : true,
|
|
||||||
//'selected' : true
|
|
||||||
'disabled' : true
|
|
||||||
},
|
|
||||||
'children' : [
|
|
||||||
{ 'text' : 'Child 1' },
|
|
||||||
'Child 2'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return this;
|
return this;
|
||||||
|
|
|
||||||
1
layers.js
Symbolic link
1
layers.js
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/home/norbert/Dokumente/cms/gis/brouter/issues/145-thunderforest/layers/josm/layers.js
|
||||||
Loading…
Add table
Add a link
Reference in a new issue