diff options
| author | Guilhem Moulin <guilhem@fripost.org> | 2025-07-22 16:18:59 +0200 | 
|---|---|---|
| committer | Guilhem Moulin <guilhem@fripost.org> | 2025-07-22 16:20:05 +0200 | 
| commit | 6804b169a1b744a4bcb983b075ec4280a9b83af6 (patch) | |
| tree | 97df2c257667e820b14e812ef077ae61657f5db8 | |
| parent | 097eb0d9988105523ec344e4cd64468f74a580ef (diff) | |
Allow layers to opt-out from legend by setting `legend: null`.
| -rw-r--r-- | main.js | 11 | 
1 files changed, 7 insertions, 4 deletions
@@ -3305,8 +3305,11 @@ const layerHierarchy = [              console.log(`Could not find symbol for layer ${layer}, skipping`);              return;            } -          const legend = LAYERS[layerGroup][layerName]?.legend ?? {}; -          if (canvas == null || !legend.reuse_canvas) { +          const legend = LAYERS[layerGroup][layerName]?.legend; +          if (legend === null) { +            return; /* layer has opted out from legend */ +          } +          if (canvas == null || !legend?.reuse_canvas) {              canvas = document.createElement('canvas');              div.appendChild(canvas);              render = toContext(canvas.getContext('2d'), @@ -3324,9 +3327,9 @@ const layerHierarchy = [            else if (mapLayers[layerGroup].getSource() instanceof VectorTile) {              /* vector source */              const style = Array.isArray(LAYERS[layerGroup][layerName].style) ? -              LAYERS[layerGroup][layerName].style[legend.zoomLevel ?? 5] : +              LAYERS[layerGroup][layerName].style[legend?.zoomLevel ?? 5] :                LAYERS[layerGroup][layerName].style; -            const legend_type = legend.type ?? 'polygon'; +            const legend_type = legend?.type ?? 'polygon';              if (legend_type === 'point' && style.getImage(1) instanceof Icon && style.getImage(1).getSrc()) {                /* use a new <img> element since .setStyle() returns the same one and doesn't work in that case */                const div2 = document.createElement('div');  | 
