GL-Karte: Ortsnamen-Labels (Glyphs self-hosted) + ScaleControl raus (lag unter der Status-Pill)
- main.py: /fonts-Mount (Glyph-PBFs aus data/tiles/fonts), Open Sans Regular self-hosted - map-gl-style.js: glyphs-URL + Label-Layer (Ortsnamen/Straßen/Gewässer, name:de) - map.js _initMapGL: ScaleControl entfernt (überdeckte die Zoom/Wetter/Zecken-Pill) Ortsnamen für Orientierung (René), auch bei kleinem Zoom.
This commit is contained in:
parent
4d0cd0f460
commit
9c959dd632
8 changed files with 54 additions and 17 deletions
|
|
@ -3,7 +3,7 @@
|
|||
Router, State-Management, Navigation, Initialisierung.
|
||||
============================================================ */
|
||||
|
||||
const APP_VER = '1186'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VER = '1187'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
|
||||
window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator)
|
||||
window.APP_VERSION = APP_VERSION;
|
||||
|
|
|
|||
|
|
@ -13,20 +13,25 @@
|
|||
bg: '#f4f1ec', land: '#dce8c8', park: '#c8e6b0', water: '#a0c8f0',
|
||||
road: '#ffffff', roadCasing: '#d9cfc2', building: '#e6ddcf',
|
||||
buildingLine: '#d4cabb', boundary: '#b08ac0',
|
||||
label: '#33312e', roadLabel: '#6b6357', waterLabel: '#4a78a8', labelHalo: 'rgba(255,255,255,0.9)',
|
||||
},
|
||||
dark: {
|
||||
bg: '#1a1d21', land: '#222820', park: '#27331f', water: '#16242e',
|
||||
road: '#3a4046', roadCasing: '#23282d', building: '#262b30',
|
||||
buildingLine: '#31373d', boundary: '#7d5a8c',
|
||||
label: '#d6d9dd', roadLabel: '#9aa0a6', waterLabel: '#6fa0cc', labelHalo: 'rgba(0,0,0,0.8)',
|
||||
},
|
||||
};
|
||||
|
||||
var FONT = ['Open Sans Regular'];
|
||||
|
||||
// Liefert ein MapLibre-Style-JSON (Version 8) ohne glyphs/sprite.
|
||||
function build(opts) {
|
||||
opts = opts || {};
|
||||
var t = THEMES[opts.dark ? 'dark' : 'light'];
|
||||
return {
|
||||
version: 8,
|
||||
glyphs: window.location.origin + '/fonts/{fontstack}/{range}.pbf',
|
||||
sources: {
|
||||
by: { type: 'vector', url: 'pmtiles://' + tilesUrl() },
|
||||
},
|
||||
|
|
@ -52,6 +57,33 @@
|
|||
paint: { 'fill-color': t.building, 'fill-outline-color': t.buildingLine } },
|
||||
{ id: 'boundary', type: 'line', source: 'by', 'source-layer': 'boundary',
|
||||
paint: { 'line-color': t.boundary, 'line-dasharray': [2, 2], 'line-width': 1 } },
|
||||
|
||||
// ---- Labels (brauchen glyphs) ----
|
||||
{ id: 'water-labels', type: 'symbol', source: 'by', 'source-layer': 'water_name',
|
||||
layout: {
|
||||
'text-field': ['coalesce', ['get', 'name:de'], ['get', 'name']],
|
||||
'text-font': FONT, 'text-size': 12, 'text-max-width': 6,
|
||||
},
|
||||
paint: { 'text-color': t.waterLabel, 'text-halo-color': t.labelHalo, 'text-halo-width': 1.2 } },
|
||||
|
||||
{ id: 'street-labels', type: 'symbol', source: 'by', 'source-layer': 'transportation_name',
|
||||
minzoom: 14,
|
||||
layout: {
|
||||
'text-field': ['coalesce', ['get', 'name:de'], ['get', 'name']],
|
||||
'text-font': FONT, 'symbol-placement': 'line', 'text-size': 11,
|
||||
},
|
||||
paint: { 'text-color': t.roadLabel, 'text-halo-color': t.labelHalo, 'text-halo-width': 1.2 } },
|
||||
|
||||
// Ortsnamen (Städte/Dörfer) — wichtig für Orientierung, auch bei kleinem Zoom.
|
||||
{ id: 'place-labels', type: 'symbol', source: 'by', 'source-layer': 'place',
|
||||
filter: ['in', ['get', 'class'], ['literal', ['city', 'town', 'village', 'suburb', 'hamlet', 'neighbourhood']]],
|
||||
layout: {
|
||||
'text-field': ['coalesce', ['get', 'name:de'], ['get', 'name']],
|
||||
'text-font': FONT, 'text-max-width': 8, 'text-anchor': 'center',
|
||||
'text-size': ['interpolate', ['linear'], ['zoom'],
|
||||
4, 10, 8, 12, 12, 14, 16, 17],
|
||||
},
|
||||
paint: { 'text-color': t.label, 'text-halo-color': t.labelHalo, 'text-halo-width': 1.6 } },
|
||||
],
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -756,7 +756,6 @@ window.Page_map = (() => {
|
|||
// Pinch bleibt in der Karte (verhindert iOS-Page-Zoom), ohne globales user-scalable=no.
|
||||
el.style.touchAction = 'none';
|
||||
_map.addControl(new maplibregl.NavigationControl({ showCompass: false }), 'top-left');
|
||||
_map.addControl(new maplibregl.ScaleControl());
|
||||
_map.addControl(new maplibregl.AttributionControl({
|
||||
compact: true, customAttribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
|
||||
}));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue