Add worldwide monolingual layer as default when language matches (#205)

This commit is contained in:
Norbert Renner 2019-06-14 18:04:05 +02:00
parent 5d0131e7f8
commit 9ea36c6f19
2 changed files with 36 additions and 1 deletions

View file

@ -9,6 +9,7 @@ BR.LayersConfig = L.Class.extend({
this._addLeafletProvidersLayers();
this._customizeLayers();
this.loadDefaultLayers();
this._addLanguageDefaultLayer();
},
loadDefaultLayers: function() {
@ -80,6 +81,34 @@ BR.LayersConfig = L.Class.extend({
BR.layerIndex['1017'].geometry = BR.confLayers.osmapaPl;
},
_addLanguageDefaultLayer: function() {
// language code -> layer id
var languageLayersMap = {};
var i;
for (i = 0; i < BR.confLayers.languageDefaultLayers.length; i++) {
var id = BR.confLayers.languageDefaultLayers[i];
var layer = BR.layerIndex[id];
if (layer) {
var layerLanguage = layer.properties['language_code'];
if (layerLanguage) {
languageLayersMap[layerLanguage] = id;
}
}
}
// iterate language code hierarchy, e.g ["de-DE", "de", "en"] (includes `i18next.options.fallbackLng`)
for (i = 0; i < i18next.languages.length; i++) {
var language = i18next.languages[i];
var layerId = languageLayersMap[language];
if (layerId) {
this.defaultBaseLayers.unshift(layerId);
break;
}
}
},
isDefaultLayer: function(id, overlay) {
var result = false;
if (overlay) {

View file

@ -2,12 +2,18 @@ BR.confLayers = {};
BR.confLayers.defaultBaseLayers = [
'standard',
'osm-mapnik-german_style',
'OpenTopoMap',
'Stamen.Terrain',
'Esri.WorldImagery'
];
// worldwide monolingual layers to add as default when browser language matches
BR.confLayers.languageDefaultLayers = [
'osm-mapnik-german_style',
'osmfr',
'1021' // sputnik.ru
];
BR.confLayers.defaultOverlays = [
'HikeBike.HillShading',
'Waymarked_Trails-Cycling',