aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2024-01-30 20:07:36 +0100
committerGuilhem Moulin <guilhem@fripost.org>2024-01-31 02:04:56 +0100
commit97b27eee6b6b2cc93a15da1aa84c138f88338385 (patch)
tree14ea0c20b46d62254418af4a5ce3b0c74235c722
parent8f06904da54bc99cea997dd110085ec6a5ad23e8 (diff)
Add layer for forestry (from Skogsstyrelsen).
-rw-r--r--index.html4
-rw-r--r--main.js108
2 files changed, 112 insertions, 0 deletions
diff --git a/index.html b/index.html
index b240a44..804bcc8 100644
--- a/index.html
+++ b/index.html
@@ -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>).
diff --git a/main.js b/main.js
index c065815..1827b39 100644
--- a/main.js
+++ b/main.js
@@ -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',