diff options
-rw-r--r-- | index.html | 4 | ||||
-rw-r--r-- | main.js | 108 |
2 files changed, 112 insertions, 0 deletions
@@ -33,6 +33,10 @@ <a href="https://www.energimyndigheten.se/fornybart/elproduktion/vindkraft/vindbrukskollen/" target="_blank">Länsstyrelserna och Energimyndigheten</a>, CC0 (<a href="https://ext-geodatakatalog-forv.lansstyrelsen.se/GeodataKatalogen/codelist/metadata/anvandningsrestriktioner.xml#CC01.0" target="_blank">öppna data</a>). </li> + <li><i>Skogsbruk</i> från + <a href="https://skogsstyrelsen.se" target="_blank">Skogsstyrelsen</a>, + CC0 (<a href="https://www.skogsstyrelsen.se/sjalvservice/karttjanster/geodatatjanster/villkor-for-nyttjande-av-skogsstyrelsens-kartdatabaser/" target="_blank">öppna data</a>). + </li> <li><i>Rennäringen</i> skikt från <a href="https://sametinget.se" target="_blank">Sametinget</a>, CC-BY-4.0 (<a href="https://ext-geodatakatalog-forv.lansstyrelsen.se/GeodataKatalogen/codelist/metadata/anvandningsrestriktioner.xml#CCby4.0" target="_blank">öppna data</a>). @@ -1105,6 +1105,101 @@ const layers = { }), }, + /* Documentation at + * https://www.skogsstyrelsen.se/globalassets/sjalvservice/karttjanster/geodatatjanster/produktbeskrivningar/utforda-avverkningar---produktbeskrivning.pdf + * */ + sks_clearcut_comp: { + popoverTitle: 'Utförd avverkning', + popover: [ + ['Ärendebeteckning', 'Beteckn', { classes: ['feature-objid'] }], + ['Objekt-ID', 'OBJECTID', { classes: ['feature-objid'] }], + ['Registeringsår', 'ArendeAr'], + ['Skogstyp', 'Skogstyp'], + ['Areal anmält', 'AnmaldHa', { unit: 'ha' }], + ['Areal naturlig föryngring', 'NatforHa', { unit: 'ha', fn: (v) => v === 0 ? '' : v }], + ['Areal plantering', 'SkogsodlHa', { unit: 'ha', fn: (v) => v === 0 ? '' : v }], + ['Avverkningstyp', 'Avverktyp'], + ['Datum för avverkning', 'Avvdatum'], + ['Ursprung för datum för avverkning', 'KallaDatum'], + ['Ursprung för areal avverkning', 'KallaAreal'], + ['Kommun', 'Kommun'], + ['Län', 'Lan'], + ['Areal för ytan', 'Arealha', { unit: 'ha' }], + ], + style: [0, 0, 0, 0, 0, .5, .75, 1, 1, 1, 1, 1].map(function(width, z) { + return new Style({ + zIndex: 10, + fill: new Fill({ + color: [255, 102, 102, Math.max((.2-1)/8 * z + 1, 0)], + }), + stroke: width === 0 ? undefined : new Stroke({ + width: width, + color: [204, 0, 0, 1], + }), + }); + }), + }, + /* Documentation at + * https://www.skogsstyrelsen.se/globalassets/sjalvservice/karttjanster/geodatatjanster/produktbeskrivningar/yttre-granser-for-avverkningsanmalda-omraden---produktbeskrivning.pdf + * */ + sks_clearcut_appl: { + popoverTitle: 'Avverkningsanmälansområde', + popover: [ + ['Ärendebeteckning', 'Beteckn', { classes: ['feature-objid'] }], + ['Objekt-ID', 'OBJECTID', { classes: ['feature-objid'] }], + ['Inkom datum', 'Inkomdatum'], + ['Registeringsår', 'ArendeAr'], + ['Skogstyp', 'Skogstyp'], + ['Areal anmält', 'AnmaldHa', { unit: 'ha' }], + ['Areal naturlig föryngring', 'NatforHa', { unit: 'ha', fn: (v) => v === 0 ? '' : v }], + ['Areal plantering', 'SkogsodlHa', { unit: 'ha', fn: (v) => v === 0 ? '' : v }], + ['Avverkningssäsong', 'AvvSasong'], + ['Avverkningstyp', 'Avverktyp'], + ['Kommun', 'Kommun'], + ['Län', 'Lan'], + ['Ärendestatus', 'ArendeStat'], + ['Avverkad areal', 'AvvHa', { unit: 'ha' }], + ], + style: [0, 0, 0, 0, 0, .5, .75, 1, 1, 1, 1, 1].map(function(width, z) { + return new Style({ + zIndex: 10, + fill: (width === undefined || width === 0) ? + new Fill({ color: [255, 102, 102, Math.max((.2-1)/8 * z + 1, 0)*.75] }) : + (function() { + const patternCanvas = document.createElement('canvas'); + const patternContext = patternCanvas.getContext('2d'); + const slope = 45 * Math.PI/180; + const spacing = z < 10 ? z*2 : 40; + const len = Math.hypot(1, slope); + const w = patternCanvas.width = Math.round(1/len + spacing) + const h = patternCanvas.height = Math.round(slope/len + spacing * slope); + + patternContext.fillStyle = 'rgba(255, 102, 102, .1)'; + patternContext.fillRect(0, 0, patternCanvas.width, patternCanvas.height); + patternContext.strokeStyle = 'rgba(204, 0, 0, 1)'; + patternContext.lineWidth = Math.max(1, width/2); + patternContext.beginPath(); + patternContext.moveTo(0, h); + patternContext.lineTo(w, 0); + patternContext.moveTo(-w, h); + patternContext.lineTo(w, -h); + patternContext.moveTo(0, 2*h); + patternContext.lineTo(2*w, 0); + patternContext.stroke(); + + const canvas = document.createElement('canvas'); + const context = canvas.getContext('2d'); + return new Fill({ color: context.createPattern(patternCanvas, 'repeat') }); + })(), + stroke: width === 0 ? undefined : new Stroke({ + width: width, + color: [204, 0, 0, 1], + lineDash: width >= 1.5 ? [2 * width] : undefined, + }), + }); + }), + }, + st_renbete: { popoverTitle: 'Samebyarnas betesområde', popover: [ @@ -1349,6 +1444,19 @@ const layerHierarchy = [ ] }, { + text: 'Skogsbruk', + children: [ + { + text: 'Uppförda (sedan 2000)', + layer: 'sks_clearcut_comp', + }, + { + text: 'Anmälda', + layer: 'sks_clearcut_appl', + }, + ] + }, + { /* Definitions at * https://ext-dokument.lansstyrelsen.se/Gemensamt/Geodata/Datadistribution/Information,%20Skiktf%C3%B6rteckning%20och%20f%C3%B6rklaringar.pdf */ text: 'Rennäringen', |