From 428261ead99c24c743bd04a201bb53804bb2694b Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Mon, 29 Jan 2024 18:53:29 +0100 Subject: Add windmill layers (from LST Vindbrukskollen). --- example.html | 2 +- index.html | 4 + main.js | 360 ++++++++++++++++++++++++ public/assets/icons/wind-turbine-appealed.svg | 49 ++++ public/assets/icons/wind-turbine-approved.svg | 49 ++++ public/assets/icons/wind-turbine-completed.svg | 49 ++++ public/assets/icons/wind-turbine-dismounted.svg | 49 ++++ public/assets/icons/wind-turbine-processed.svg | 43 +++ public/assets/icons/wind-turbine-rejected.svg | 49 ++++ public/assets/icons/wind-turbine-revoked.svg | 49 ++++ style.css | 2 +- 11 files changed, 703 insertions(+), 2 deletions(-) create mode 100644 public/assets/icons/wind-turbine-appealed.svg create mode 100644 public/assets/icons/wind-turbine-approved.svg create mode 100644 public/assets/icons/wind-turbine-completed.svg create mode 100644 public/assets/icons/wind-turbine-dismounted.svg create mode 100644 public/assets/icons/wind-turbine-processed.svg create mode 100644 public/assets/icons/wind-turbine-rejected.svg create mode 100644 public/assets/icons/wind-turbine-revoked.svg diff --git a/example.html b/example.html index 6b52f31..31bd0f1 100644 --- a/example.html +++ b/example.html @@ -23,6 +23,6 @@ knappen uppe till höger så öpnar hela kartan i en ny flik. Där kan man välja lager, ladda ner kartan som PNG-fil, och få information om de olika föremålen.

- + diff --git a/index.html b/index.html index 934ee70..65a86f1 100644 --- a/index.html +++ b/index.html @@ -29,6 +29,10 @@
  • Mineralrättigheter från Sveriges geologiska undersökning (SGU).
  • +
  • Vindbruk från + Länsstyrelserna och Energimyndigheten, + CC0 (öppna data). +
  • Bakgrund kartor från © Lantmäteriet, CC0 (öppna data). diff --git a/main.js b/main.js index df94f55..bc189a7 100644 --- a/main.js +++ b/main.js @@ -39,6 +39,7 @@ import VectorSource from 'ol/source/Vector.js'; import CircleStyle from 'ol/style/Circle.js'; import Fill from 'ol/style/Fill.js'; +import Icon from 'ol/style/Icon.js'; import RegularShape from 'ol/style/RegularShape.js'; import Stroke from 'ol/style/Stroke.js'; import Style from 'ol/style/Style.js'; @@ -793,6 +794,314 @@ const layers = { }); })), }, + vbk_area_current: { + popoverTitle: 'Projekteringsområde för vindbruk', + popover: [ + ['Projektnamn', 'PROJNAMN'], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Aktuella verk', 'ANTALVERK'], + ['Antal ej koordinatsatta verk', 'AntalejXY', { fn: (v) => v || 0 }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Planerad byggstart', 'PBYGGSTART'], + ['Planerat drifttagande', 'PDRIFT'], + ['Andringsansokan', 'Andringsansokan'], + ['Under Byggnation', 'UnderByggnation'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNR', { classes: ['feature-orgnr'] }], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Senast uppdaterat', 'ArendeStatusUppdaterat'], + ], + style: [.5, 1, 1.5, 1.5, 2, 2, 2.5, 2.5, 3, 3.5, 4, 5].map(function(width, z) { + return new Style({ + zIndex: 10, + fill: new Fill({ + color: [168, 198, 223, Math.max((.2-1)/8 * z + 1, 0)], + }), + stroke: width === 0 ? undefined : new Stroke({ + width: width, + color: [56, 96, 130, 1], + }), + }); + }), + }, + vbk_area_notcurrent: { + popoverTitle: 'Projekteringsområde för vindbruk \u2013 ej aktuell', + popover: [ + ['Projektnamn', 'PROJNAMN'], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Aktuella verk', 'ANTALVERK'], + ['Antal ej koordinatsatta verk', 'AntalejXY', { fn: (v) => v || 0 }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Planerad byggstart', 'PBYGGSTART'], + ['Planerat drifttagande', 'PDRIFT'], + ['Andringsansokan', 'Andringsansokan'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNR', { classes: ['feature-orgnr'] }], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Senast uppdaterat', 'ArendeStatusUppdaterat'], + ], + style: [.5, 1, 1.5, 1.5, 2, 2, 2.5, 2.5, 3, 3.5, 4, 5].map(function(width, z) { + return new Style({ + zIndex: 10, + fill: new Fill({ + color: [222, 163, 199, Math.max((.2-1)/8 * z + 1, 0)], + }), + stroke: width === 0 ? undefined : new Stroke({ + width: width, + color: [148, 55, 112, 1], + lineDash: width >= 1.5 ? [2 * width] : undefined, + }), + }); + }), + }, + vbk_station_completed: { + popoverTitle: 'Vindkraftverk \u2013 uppfört', + popover: [ + ['Verk-ID', 'VERKID', { classes: ['feature-objid'] }], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Projektnamn', 'PROJNAMN'], + ['Status', 'STATUS'], + ['Handlingstyp', 'HANDLINGSTYP'], + ['Uppförandedatum', 'UPPFORT'], + ['Miljöbalken tillstånd tidsbegränsning', 'MB_Tillstand_TIDSBEGRANS_DAT'], + ['Totalhöjd', 'TOTALHOJD', { unit: 'm' }], + ['Navhöjd', 'NAVHOJD', { unit: 'm' }], + ['Rotordiameter', 'ROTDIAMETER', { unit: 'm' }], + ['Maxeffekt', 'MAXEFFEKT', { unit: 'MW' }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Fabrikat', 'FABRIKAT'], + ['Modell', 'MODELL'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNMR', { classes: ['feature-orgnr'] }], + ['Placering', 'PLACERING'], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Datum för senaste uppdatering av verk', 'SenasteUppdatering'], + ], + style: [undefined, undefined, undefined, undefined, .125, .125, .25, .5, 1, 2, 4, 8].map(function(scale) { + return scale === undefined ? undefined : new Style({ + zIndex: 99, + image: new Icon({ + src: '/assets/icons/wind-turbine-completed.svg', + declutter: 'none', + scale: scale, + }), + }); + }), + }, + vbk_station_processed: { + popoverTitle: 'Vindkraftverk \u2013 handlagt', + popover: [ + ['Verk-ID', 'VERKID', { classes: ['feature-objid'] }], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Projektnamn', 'PROJNAMN'], + ['Status', 'STATUS'], + ['Handlingstyp', 'HANDLINGSTYP'], + ['Totalhöjd', 'TOTALHOJD', { unit: 'm' }], + ['Navhöjd', 'NAVHOJD', { unit: 'm' }], + ['Rotordiameter', 'ROTDIAMETER', { unit: 'm' }], + ['Maxeffekt', 'MAXEFFEKT', { unit: 'MW' }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Fabrikat', 'FABRIKAT'], + ['Modell', 'MODELL'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNMR', { classes: ['feature-orgnr'] }], + ['Placering', 'PLACERING'], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Datum för senaste uppdatering av verk', 'SenasteUppdatering'], + ], + style: [undefined, undefined, undefined, undefined, .125, .125, .25, .5, 1, 2, 4, 8].map(function(scale) { + return scale === undefined ? undefined : new Style({ + zIndex: 99, + image: new Icon({ + src: '/assets/icons/wind-turbine-processed.svg', + declutter: 'none', + scale: scale, + }), + }); + }), + }, + vbk_station_approved: { + popoverTitle: 'Vindkraftverk \u2013 beviljat', + popover: [ + ['Verk-ID', 'VERKID', { classes: ['feature-objid'] }], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Projektnamn', 'PROJNAMN'], + ['Status', 'STATUS'], + ['Handlingstyp', 'HANDLINGSTYP'], + ['Miljöbalken tillstånd tidsbegränsning', 'MB_Tillstand_TIDSBEGRANS_DAT'], + ['Totalhöjd', 'TOTALHOJD', { unit: 'm' }], + ['Navhöjd', 'NAVHOJD', { unit: 'm' }], + ['Rotordiameter', 'ROTDIAMETER', { unit: 'm' }], + ['Maxeffekt', 'MAXEFFEKT', { unit: 'MW' }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Fabrikat', 'FABRIKAT'], + ['Modell', 'MODELL'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNMR', { classes: ['feature-orgnr'] }], + ['Placering', 'PLACERING'], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Datum för senaste uppdatering av verk', 'SenasteUppdatering'], + ], + style: [undefined, undefined, undefined, undefined, .125, .125, .25, .5, 1, 2, 4, 8].map(function(scale) { + return scale === undefined ? undefined : new Style({ + zIndex: 99, + image: new Icon({ + src: '/assets/icons/wind-turbine-approved.svg', + declutter: 'none', + scale: scale, + }), + }); + }), + }, + vbk_station_revoked: { + popoverTitle: 'Vindkraftverk \u2013 inte längre aktuell/återkallat', + popover: [ + ['Verk-ID', 'VERKID', { classes: ['feature-objid'] }], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Projektnamn', 'PROJNAMN'], + ['Status', 'STATUS'], + ['Handlingstyp', 'HANDLINGSTYP'], + ['Miljöbalken tillstånd tidsbegränsning', 'MB_Tillstand_TIDSBEGRANS_DAT'], + ['Totalhöjd', 'TOTALHOJD', { unit: 'm' }], + ['Navhöjd', 'NAVHOJD', { unit: 'm' }], + ['Rotordiameter', 'ROTDIAMETER', { unit: 'm' }], + ['Maxeffekt', 'MAXEFFEKT', { unit: 'MW' }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Fabrikat', 'FABRIKAT'], + ['Modell', 'MODELL'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNMR', { classes: ['feature-orgnr'] }], + ['Placering', 'PLACERING'], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Datum för senaste uppdatering av verk', 'SenasteUppdatering'], + ], + style: [undefined, undefined, undefined, undefined, .125, .125, .25, .5, 1, 2, 4, 8].map(function(scale) { + return scale === undefined ? undefined : new Style({ + zIndex: 99, + image: new Icon({ + src: '/assets/icons/wind-turbine-revoked.svg', + declutter: 'none', + scale: scale, + }), + }); + }), + }, + vbk_station_rejected: { + popoverTitle: 'Vindkraftverk \u2013 avslagit/nekat', + popover: [ + ['Verk-ID', 'VERKID', { classes: ['feature-objid'] }], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Projektnamn', 'PROJNAMN'], + ['Status', 'STATUS'], + ['Handlingstyp', 'HANDLINGSTYP'], + ['Miljöbalken tillstånd tidsbegränsning', 'MB_Tillstand_TIDSBEGRANS_DAT'], + ['Totalhöjd', 'TOTALHOJD', { unit: 'm' }], + ['Navhöjd', 'NAVHOJD', { unit: 'm' }], + ['Rotordiameter', 'ROTDIAMETER', { unit: 'm' }], + ['Maxeffekt', 'MAXEFFEKT', { unit: 'MW' }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Fabrikat', 'FABRIKAT'], + ['Modell', 'MODELL'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNMR', { classes: ['feature-orgnr'] }], + ['Placering', 'PLACERING'], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Datum för senaste uppdatering av verk', 'SenasteUppdatering'], + ], + style: [undefined, undefined, undefined, undefined, .125, .125, .25, .5, 1, 2, 4, 8].map(function(scale) { + return scale === undefined ? undefined : new Style({ + zIndex: 99, + image: new Icon({ + src: '/assets/icons/wind-turbine-rejected.svg', + declutter: 'none', + scale: scale, + }), + }); + }), + }, + vbk_station_dismounted: { + popoverTitle: 'Vindkraftverk \u2013 nedmonterat', + popover: [ + ['Verk-ID', 'VERKID', { classes: ['feature-objid'] }], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Projektnamn', 'PROJNAMN'], + ['Status', 'STATUS'], + ['Handlingstyp', 'HANDLINGSTYP'], + ['Uppförandedatum', 'UPPFORT'], + ['Totalhöjd', 'TOTALHOJD', { unit: 'm' }], + ['Navhöjd', 'NAVHOJD', { unit: 'm' }], + ['Rotordiameter', 'ROTDIAMETER', { unit: 'm' }], + ['Maxeffekt', 'MAXEFFEKT', { unit: 'MW' }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Fabrikat', 'FABRIKAT'], + ['Modell', 'MODELL'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNMR', { classes: ['feature-orgnr'] }], + ['Placering', 'PLACERING'], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Datum för senaste uppdatering av verk', 'SenasteUppdatering'], + ], + style: [undefined, undefined, undefined, undefined, .125, .125, .25, .5, 1, 2, 4, 8].map(function(scale) { + return scale === undefined ? undefined : new Style({ + zIndex: 99, + image: new Icon({ + src: '/assets/icons/wind-turbine-dismounted.svg', + declutter: 'none', + scale: scale, + }), + }); + }), + }, + vbk_station_appealed: { + popoverTitle: 'Vindkraftverk \u2013 överklagat', + popover: [ + ['Verk-ID', 'VERKID', { classes: ['feature-objid'] }], + ['Områdes-ID', 'OMRID', { classes: ['feature-objid'] }], + ['Projektnamn', 'PROJNAMN'], + ['Status', 'STATUS'], + ['Handlingstyp', 'HANDLINGSTYP'], + ['Totalhöjd', 'TOTALHOJD', { unit: 'm' }], + ['Navhöjd', 'NAVHOJD', { unit: 'm' }], + ['Rotordiameter', 'ROTDIAMETER', { unit: 'm' }], + ['Maxeffekt', 'MAXEFFEKT', { unit: 'MW' }], + ['Beräknad årsproduktion', 'CALPROD', { unit: 'GWh' }], + ['Fabrikat', 'FABRIKAT'], + ['Modell', 'MODELL'], + ['Organisationsnamn', 'ORGNAMN'], + ['Organisationsnummer', 'ORGNMR', { classes: ['feature-orgnr'] }], + ['Placering', 'PLACERING'], + ['Kommun', 'KOMNAMN'], + ['Län', 'LANSNAMN'], + ['Elområde', 'EL_NAMN'], + ['Datum för senaste uppdatering av verk', 'SenasteUppdatering'], + ], + style: [undefined, undefined, undefined, undefined, .125, .125, .25, .5, 1, 2, 4, 8].map(function(scale) { + return scale === undefined ? undefined : new Style({ + zIndex: 99, + image: new Icon({ + src: '/assets/icons/wind-turbine-appealed.svg', + declutter: 'none', + scale: scale, + }), + }); + }), + }, }; const layerHierarchy = [ @@ -865,6 +1174,57 @@ const layerHierarchy = [ }, ], }, + { + text: 'Vindbruk', + children: [ + { + text: 'Projekteringsområden', + children: [ + { + text: 'Aktuella', + layer: 'vbk_area_current', + }, + { + text: 'Ej aktuella', + layer: 'vbk_area_notcurrent', + }, + ], + }, + { + text: 'Vindkraftverk', + children: [ + { + text: 'Uppförda', + layer: 'vbk_station_completed', + }, + { + text: 'Handläggs', + layer: 'vbk_station_processed', + }, + { + text: 'Beviljade', + layer: 'vbk_station_approved', + }, + { + text: 'Inte längre aktuella/återkallade', + layer: 'vbk_station_revoked', + }, + { + text: 'Avslagna/nekad', + layer: 'vbk_station_rejected', + }, + { + text: 'Nedmonterade', + layer: 'vbk_station_dismounted', + }, + { + text: 'Överklagade', + layer: 'vbk_station_appealed', + }, + ], + }, + ] + }, ]; const vectorSource = new VectorTile({ diff --git a/public/assets/icons/wind-turbine-appealed.svg b/public/assets/icons/wind-turbine-appealed.svg new file mode 100644 index 0000000..6110ba5 --- /dev/null +++ b/public/assets/icons/wind-turbine-appealed.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + https://commons.wikimedia.org/wiki/File:Wind_Turbine_%282076%29_-_The_Noun_Project.svg + + + + + + + + + diff --git a/public/assets/icons/wind-turbine-approved.svg b/public/assets/icons/wind-turbine-approved.svg new file mode 100644 index 0000000..b80033b --- /dev/null +++ b/public/assets/icons/wind-turbine-approved.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + https://commons.wikimedia.org/wiki/File:Wind_Turbine_%282076%29_-_The_Noun_Project.svg + + + + + + + + + diff --git a/public/assets/icons/wind-turbine-completed.svg b/public/assets/icons/wind-turbine-completed.svg new file mode 100644 index 0000000..001ee2b --- /dev/null +++ b/public/assets/icons/wind-turbine-completed.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + https://commons.wikimedia.org/wiki/File:Wind_Turbine_%282076%29_-_The_Noun_Project.svg + + + + + + + + + diff --git a/public/assets/icons/wind-turbine-dismounted.svg b/public/assets/icons/wind-turbine-dismounted.svg new file mode 100644 index 0000000..3f41fb8 --- /dev/null +++ b/public/assets/icons/wind-turbine-dismounted.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + https://commons.wikimedia.org/wiki/File:Wind_Turbine_%282076%29_-_The_Noun_Project.svg + + + + + + + + + diff --git a/public/assets/icons/wind-turbine-processed.svg b/public/assets/icons/wind-turbine-processed.svg new file mode 100644 index 0000000..ee6117d --- /dev/null +++ b/public/assets/icons/wind-turbine-processed.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + https://commons.wikimedia.org/wiki/File:Wind_Turbine_%282076%29_-_The_Noun_Project.svg + + + + + + + + + diff --git a/public/assets/icons/wind-turbine-rejected.svg b/public/assets/icons/wind-turbine-rejected.svg new file mode 100644 index 0000000..1dcd60e --- /dev/null +++ b/public/assets/icons/wind-turbine-rejected.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + https://commons.wikimedia.org/wiki/File:Wind_Turbine_%282076%29_-_The_Noun_Project.svg + + + + + + + + + diff --git a/public/assets/icons/wind-turbine-revoked.svg b/public/assets/icons/wind-turbine-revoked.svg new file mode 100644 index 0000000..3f5e339 --- /dev/null +++ b/public/assets/icons/wind-turbine-revoked.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + https://commons.wikimedia.org/wiki/File:Wind_Turbine_%282076%29_-_The_Noun_Project.svg + + + + + + + + + diff --git a/style.css b/style.css index 655c032..ab90869 100644 --- a/style.css +++ b/style.css @@ -359,7 +359,7 @@ html, body { .popover-body table > tbody > tr > td { padding: 0.1rem 0.3rem; } -.feature-attr-mrr-license-id, .feature-attr-dnr { +.feature-attr-mrr-license-id, .feature-attr-dnr, .feature-objid, .feature-orgnr { font-family: var(--bs-font-monospace); word-wrap: break-word; } -- cgit v1.2.3