UNPKG

@senx/discovery-plugin-marauder

Version:

Discovery plugin - Marauder's map

2 lines 13.4 kB
import{L as Logger,G as GTSLib}from"./utils-7a8be8c0.js";import{C as ColorLib}from"./color-lib-3865b9f3.js";var MapTypes;(function(e){e["NONE"]="NONE";e["DEFAULT"]="DEFAULT";e["HOT"]="HOT";e["TOPO"]="TOPO";e["TOPO2"]="TOPO2";e["STADIA"]="STADIA";e["STADIA_DARK"]="STADIA_DARK";e["TONER"]="TONER";e["TONER_LITE"]="TONER_LITE";e["TERRAIN"]="TERRAIN";e["ESRI"]="ESRI";e["SATELLITE"]="SATELLITE";e["OCEANS"]="OCEANS";e["GRAY"]="GRAY";e["GRAYSCALE"]="GRAYSCALE";e["WATERCOLOR"]="WATERCOLOR";e["CARTODB"]="CARTODB";e["CARTODB_DARK"]="CARTODB_DARK"})(MapTypes||(MapTypes={}));var MapLib=function(){function e(){}e.toLeafletMapPaths=function(t,a,r){var o,i,n,s,p,l,d,u,h,c,m;var g=[];var f=(t.gts||[]).length;for(var v=0;v<f;v++){var y=t.gts[v];if(GTSLib.isGts(y)){y.id=y.id||v;(o=this.LOG)===null||o===void 0?void 0:o.debug(["toLeafletMapPaths"],y,t.params?t.params[v]:"");var b=(t.params||[])[v]||{};y.tooltip=((i=b.map)===null||i===void 0?void 0:i.tooltip)||{};if(GTSLib.isGtsToPlotOnMap(y)&&!a[y.id]&&!((n=b.map)===null||n===void 0?void 0:n.heatmap)){var S={};S.id=y.id;S.tooltip=y.tooltip;e.extractCommonParameters(S,b,v,r);S.path=e.gtsToPath(y);if(!!b.render||((p=(s=t.globalParams)===null||s===void 0?void 0:s.map)===null||p===void 0?void 0:p.render)){S.render=b.render||((d=(l=t.globalParams)===null||l===void 0?void 0:l.map)===null||d===void 0?void 0:d.render)}if(!!b.marker||((h=(u=t===null||t===void 0?void 0:t.globalParams)===null||u===void 0?void 0:u.map)===null||h===void 0?void 0:h.marker)){S.marker=b.marker||((m=(c=t===null||t===void 0?void 0:t.globalParams)===null||c===void 0?void 0:c.map)===null||m===void 0?void 0:m.marker)}S.line=b.hasOwnProperty("line")?b.line:true;S.render=S.render||"dots";if(S.render==="weightedDots"){e.validateWeightedDotsPositionArray(S,b)}if(S.render==="coloredWeightedDots"){e.validateWeightedColoredDotsPositionArray(S,b)}if(t.params&&t.params[v]&&t.params[v].key){S.key=t.params[v].key}else{S.key=GTSLib.serializeGtsMetadata(y)}S.color=ColorLib.getColor(y.id,r);if(t.params&&t.params[v]){S.color=t.params[v].datasetColor||t.params[v].color||S.color}g.push(S)}else{g.push(null)}}}return g};e.gtsToPath=function(e){var t=[];var a=(e.v||[]).length;for(var r=0;r<a;r++){var o=e.v[r];var i=o.length;if(i>=4){t.push({ts:Math.floor(o[0]),lat:o[1],lon:o[2],val:o[i-1]})}}return t};e.extractCommonParameters=function(t,a,r,o){a=a||{};t.key=a.key||"";t.color=a.color||ColorLib.getColor(r,o);t.borderColor=a.borderColor;t.properties=a.properties||{};if(a.baseRadius===undefined||isNaN(parseInt(a.baseRadius,10))||parseInt(a.baseRadius,10)<0){t.baseRadius=e.BASE_RADIUS}else{t.baseRadius=a.baseRadius}};e.validateWeightedDotsPositionArray=function(t,a){if(a.minValue===undefined||a.maxValue===undefined){e.LOG.error(["validateWeightedDotsPositionArray"],"When using 'weightedDots' or "+"'weightedColoredDots' rendering, 'maxValue' and 'minValue' parameters are compulsory");t.render=undefined;return}t.maxValue=a.maxValue;t.minValue=a.minValue;if(typeof t.minValue!=="number"||typeof t.maxValue!=="number"||t.minValue>=t.maxValue){e.LOG.error(["validateWeightedDotsPositionArray"],"When using 'weightedDots' or "+"'weightedColoredDots' rendering, 'maxValue' and 'minValue' must be numbers and 'maxValue' "+"must be greater than 'minValue'");t.render=undefined;return}if(!GTSLib.isPositionsArrayWithValues(t)&&!GTSLib.isPositionsArrayWithTwoValues(t)){e.LOG.error(["validateWeightedDotsPositionArray"],"When using 'weightedDots' or "+"'weightedColoredDots' rendering, positions must have an associated value");t.render=undefined;return}if(a.numSteps===undefined||isNaN(parseInt(a.numSteps,10))||parseInt(a.numSteps,10)<0){t.numSteps=5}else{t.numSteps=a.numSteps}var r=(t.maxValue-t.minValue)/t.numSteps;var o=[];for(var i=0;i<t.numSteps-1;i++){o[i]=t.minValue+(i+1)*r}o[t.numSteps-1]=t.maxValue;var n=(t||[]).length;for(var i=0;i<n;i++){var s=t[i];var p=s[2];s[4]=t.numSteps-1;for(var l in o){if(p<=o[l]){s[4]=l;break}}}return true};e.toLeafletMapPositionArray=function(t,a,r){var o,i,n,s,p,l,d;var u=[];var h=(t.gts||[]).length;for(var c=0;c<h;c++){var m=t.gts[c];m.id=m.id||c;var g=(t.params||[])[c]||{};m.tooltip=((o=g.map)===null||o===void 0?void 0:o.tooltip)||{};if(GTSLib.isPositionArray(m)&&!a[m.id]&&!((i=g.map)===null||i===void 0?void 0:i.heatmap)){(n=this.LOG)===null||n===void 0?void 0:n.debug(["toLeafletMapPositionArray"],m,t.params?t.params[c]:"");var f=m;var v=t.params?t.params[c]||{}:{};e.extractCommonParameters(f,v,c,r);f.render=v.render||((s=g===null||g===void 0?void 0:g.map)===null||s===void 0?void 0:s.render)||"dots";f.maxValue=v.maxValue||0;f.minValue=v.minValue||0;f.line=v.hasOwnProperty("line")?v.line:false;if(f.render==="weightedDots"){e.validateWeightedDotsPositionArray(f,v)}if(f.render==="coloredWeightedDots"){e.validateWeightedColoredDotsPositionArray(f,v)}if(f.render==="marker"){f.marker=v.marker||((l=(p=t===null||t===void 0?void 0:t.globalParams)===null||p===void 0?void 0:p.map)===null||l===void 0?void 0:l.marker)}if(t.params&&t.params[c]&&t.params[c].color){f.color=t.params[c].color}else{f.color=ColorLib.getColor(c,r)}(d=this.LOG)===null||d===void 0?void 0:d.debug(["toLeafletMapPositionArray","posArray"],f);u.push(f)}else{u.push(null)}}return u};e.validateWeightedColoredDotsPositionArray=function(t,a){if(!e.validateWeightedDotsPositionArray(t,a)){return}if(a.minColorValue===undefined||a.maxColorValue===undefined||a.startColor===undefined||a.endColor===undefined){e.LOG.error(["validateWeightedColoredDotsPositionArray"],"When using "+"'coloredWeightedDots' rendering, 'maxColorValue', 'minColorValue', 'startColor' "+"and 'endColor' parameters are compulsory",a);t.render=undefined;return}t.maxColorValue=a.maxColorValue;t.minColorValue=a.minColorValue;if(typeof t.minColorValue!=="number"||typeof t.maxColorValue!=="number"||t.minColorValue>=t.maxColorValue){e.LOG.error(["validateWeightedColoredDotsPositionArray"],["When using "+"coloredWeightedDots' rendering, 'maxColorValue' and 'minColorValue' must be numbers "+"and 'maxColorValue' must be greater than 'minColorValue'",{maxColorValue:t.maxColorValue,minColorValue:t.minColorValue}]);t.render=undefined;return}var r=/^#(?:[0-9a-f]{3}){1,2}$/i;if(typeof a.startColor!=="string"||typeof a.endColor!=="string"||!r.test(a.startColor)||!r.test(a.endColor)){e.LOG.error(["validateWeightedColoredDotsPositionArray"],["When using "+"coloredWeightedDots' rendering, 'startColor' and 'endColor' parameters must be RGB "+"colors in #rrggbb format",{startColor:a.startColor,endColor:a.endColor,tests:[typeof a.startColor,typeof a.endColor,r.test(a.startColor),r.test(a.endColor),r.test(a.startColor)]}]);t.render=undefined;return}t.startColor={r:parseInt(a.startColor.substring(1,3),16),g:parseInt(a.startColor.substring(3,5),16),b:parseInt(a.startColor.substring(5,7),16)};t.endColor={r:parseInt(a.endColor.substring(1,3),16),g:parseInt(a.endColor.substring(3,5),16),b:parseInt(a.endColor.substring(5,7),16)};if(!a.numColorSteps){t.numColorSteps=5}else{t.numColorSteps=a.numColorSteps}t.colorGradient=ColorLib.hsvGradientFromRgbColors(t.startColor,t.endColor,t.numColorSteps);var o=(t.maxColorValue-t.minColorValue)/t.numColorSteps;var i=[];for(var n=0;n<t.numColorSteps;n++){i[n]=t.minColorValue+(n+1)*o}t.steps=i;t.positions.forEach((function(e){var a=e[3];e[5]=t.numColorSteps-1;for(var r=0;r<i.length-1;r++){if(a<i[r]){e[5]=r;break}}}))};e.pathDataToLeaflet=function(e){var t=[];var a=e.length;for(var r=0;r<a;r++){t.push([e[r].lat,e[r].lon])}return t};e.toGeoJSON=function(e){var t=["Point","LineString","Polygon","MultiPolygon"];var a=[];e.gts.forEach((function(e){if(e&&e.type&&e.type==="Feature"&&e.geometry&&e.geometry.type&&t.indexOf(e.geometry.type)>-1){a.push(e)}else if(e&&e.type&&t.indexOf(e.type)>-1){a.push({type:"Feature",geometry:e})}else{a.push(null)}}));return a};e.updatePositionArrayToLeaflet=function(e){var t=[];var a=(e||[]).length;for(var r=0;r<a;r++){var o=e[r];t.push([o[0],o[1]])}return t};return e}();MapLib.BASE_RADIUS=2;MapLib.LOG=new Logger(MapLib,true);MapLib.mapTypes={NONE:undefined,DEFAULT:{link:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},HOT:{link:"https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Tiles\n style by <a href="https://www.hotosm.org/" target="_blank">Humanitarian OpenStreetMap Team</a> hosted by\n <a href="https://openstreetmap.fr/" target="_blank">OpenStreetMap France</a>'},TOPO:{link:"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",attribution:'Map data: &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors,\n <a href="https://viewfinderpanoramas.org">SRTM</a> | Map style: &copy; <a href="https://opentopomap.org">OpenTopoMap</a>\n (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)'},TOPO2:{link:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN,\n GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"},STADIA:{link:"https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://stadiamaps.com/">Stadia Maps</a>, &copy; <a href="https://openmaptiles.org/">OpenMapTiles</a> &copy; <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'},STADIA_DARK:{link:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://stadiamaps.com/">Stadia Maps</a>, &copy; <a href="https://openmaptiles.org/">OpenMapTiles</a> &copy; <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'},TONER:{link:"https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>\n &copy; <a href="https://www.stamen.com/" target="_blank">Stamen Design</a> \n &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> \n &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',subdomains:"abcd"},TONER_LITE:{link:"https://tiles.stadiamaps.com/tiles/stamen_toner_lite/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> \n&copy; <a href="https://www.stamen.com/" target="_blank">Stamen Design</a> \n&copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> \n&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},TERRAIN:{link:"https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> \n &copy; <a href="https://www.stamen.com/" target="_blank">Stamen Design</a> \n &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> \n &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},ESRI:{link:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan,\n METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"},SATELLITE:{link:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN,\n IGP, UPR-EGP, and the GIS User Community"},OCEANS:{link:"https://server.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri"},GRAY:{link:"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",attibs:""},GRAYSCALE:{link:"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Esri, DeLorme, NAVTEQ"},WATERCOLOR:{link:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg",attribution:'&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> \n&copy; <a href="https://www.stamen.com/" target="_blank">Stamen Design</a> \n&copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> \n&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},CARTODB:{link:"https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors &copy;\n <a href="https://carto.com/attributions">CartoDB</a>',subdomains:"abcd"},CARTODB_DARK:{link:"https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png",attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors &copy;\n <a href="https://carto.com/attributions">CartoDB</a>',subdomains:"abcd"}};export{MapLib as M,MapTypes as a}; //# sourceMappingURL=map-lib-fb29883f.js.map