From a6cf03b78bc02de1ec67b1faadb1dd464380f0f6 Mon Sep 17 00:00:00 2001 From: rafal0p Date: Sat, 6 Jan 2024 19:12:38 +0100 Subject: [PATCH 1/2] POC of squadrats integration --- js/buttons.js | 6 ++++++ js/layers.js | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/js/buttons.js b/js/buttons.js index 268593db..dce9998a 100644 --- a/js/buttons.js +++ b/js/buttons.js @@ -548,6 +548,9 @@ export default class Buttons { "Water" : layers.stravaHeatmapWater, "Winter" : layers.stravaHeatmapWinter }, + "Squadrats": { + "All" : layers.squadrats + }, "Waymarked Trails": { "Hiking": layers.waymarkedTrailsHiking, "Cycling": layers.waymarkedTrailsCycling, @@ -587,6 +590,9 @@ export default class Buttons { "Water" : true, "Winter" : true }, + "Squadrats": { + "All" : true + }, "Waymarked Trails": { "Hiking": true, "Cycling": true, diff --git a/js/layers.js b/js/layers.js index f68e4509..ece45498 100644 --- a/js/layers.js +++ b/js/layers.js @@ -174,7 +174,22 @@ const layers = { maxNativeZoom: 14, maxZoom: MAX_ZOOM, attribution: '© Strava' - }) + }), + squadrats: L.geoJSON(JSON.parse(localStorage.getItem('squadrats')), { + style: (feature) => { + switch (feature.properties.name) { + case "squadrats": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.3, color: '#ffedd9'}; + case "yard": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.3, color: '#fff'}; + case "ubersquadrat": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.0, color: '#f00'}; + case "squadratinhos": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.2, color: '#ffd5ab'}; + case "yardinho": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.2, color: '#ffc285'}; + case "ubersquadratinho": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.0, color: '#f00'}; + } + }, + maxNativeZoom: 18, + maxZoom: MAX_ZOOM, + attribution: '© Squadrats' + }), }; const overPassMinZoomOptions = { From 5fce4e10e5632f64b578d04b13d606911bcb2306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Podlipny?= Date: Sun, 14 Jan 2024 11:11:06 +0100 Subject: [PATCH 2/2] split into 3 layers --- js/buttons.js | 8 ++++++-- js/layers.js | 35 ++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/js/buttons.js b/js/buttons.js index dce9998a..1e39cab0 100644 --- a/js/buttons.js +++ b/js/buttons.js @@ -549,7 +549,9 @@ export default class Buttons { "Winter" : layers.stravaHeatmapWinter }, "Squadrats": { - "All" : layers.squadrats + "Big ones" : layers.squadratsBig, + "Small ones" : layers.squadratsSmall, + "Squares" : layers.squadratsSquares }, "Waymarked Trails": { "Hiking": layers.waymarkedTrailsHiking, @@ -591,7 +593,9 @@ export default class Buttons { "Winter" : true }, "Squadrats": { - "All" : true + "Big ones" : true, + "Small ones" : true, + "Squares" : true }, "Waymarked Trails": { "Hiking": true, diff --git a/js/layers.js b/js/layers.js index ece45498..5bfec8b1 100644 --- a/js/layers.js +++ b/js/layers.js @@ -175,15 +175,36 @@ const layers = { maxZoom: MAX_ZOOM, attribution: '© Strava' }), - squadrats: L.geoJSON(JSON.parse(localStorage.getItem('squadrats')), { + squadratsBig: L.geoJSON(JSON.parse(localStorage.getItem('squadrats')), { style: (feature) => { switch (feature.properties.name) { - case "squadrats": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.3, color: '#ffedd9'}; - case "yard": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.3, color: '#fff'}; - case "ubersquadrat": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.0, color: '#f00'}; - case "squadratinhos": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.2, color: '#ffd5ab'}; - case "yardinho": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.2, color: '#ffc285'}; - case "ubersquadratinho": return {stroke: true, weight: 2, opacity: 1, fillOpacity: 0.0, color: '#f00'}; + case "squadrats": return { weight: 2, opacity: 1, fillOpacity: 0.3, color: '#ffedd9' }; + case "yard": return { weight: 2, opacity: 1, fillOpacity: 0.3, color: '#fff' }; + default: return { stroke: false, fillOpacity: 0.0 }; + } + }, + maxNativeZoom: 18, + maxZoom: MAX_ZOOM, + attribution: '© Squadrats' + }), + squadratsSmall: L.geoJSON(JSON.parse(localStorage.getItem('squadrats')), { + style: (feature) => { + switch (feature.properties.name) { + case "squadratinhos": return { weight: 2, opacity: 1, fillOpacity: 0.2, color: '#ffd5ab' }; + case "yardinho": return { weight: 2, opacity: 1, fillOpacity: 0.2, color: '#ffc285' }; + default: return { stroke: false, fillOpacity: 0.0 }; + } + }, + maxNativeZoom: 18, + maxZoom: MAX_ZOOM, + attribution: '© Squadrats' + }), + squadratsSquares: L.geoJSON(JSON.parse(localStorage.getItem('squadrats')), { + style: (feature) => { + switch (feature.properties.name) { + case "ubersquadrat": return { weight: 1, opacity: 1, fillOpacity: 0.0, color: '#f00' }; + case "ubersquadratinho": return { weight: 1, opacity: 1, fillOpacity: 0.0, color: '#f00' }; + default: return { stroke: false, fillOpacity: 0.0 }; } }, maxNativeZoom: 18,