gridviz 3.0.19 → 3.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +128 -128
  2. package/dist/gridviz.js +7875 -7857
  3. package/dist/gridviz.min.js +1 -1
  4. package/package.json +74 -74
  5. package/src/button/ZoomButtons.js +101 -101
  6. package/src/core/Dataset.js +154 -154
  7. package/src/core/Drawable.js +78 -60
  8. package/src/core/GeoCanvas.js +430 -430
  9. package/src/core/Layer.js +23 -23
  10. package/src/core/Legend.js +108 -108
  11. package/src/core/Map.js +516 -516
  12. package/src/core/MultiResolutionDataset.js +93 -93
  13. package/src/core/Style.js +98 -98
  14. package/src/dataset/CSVGrid.js +112 -112
  15. package/src/dataset/GeoTIFF.js +122 -122
  16. package/src/dataset/JSGrid.js +55 -55
  17. package/src/dataset/TiledGrid.js +302 -302
  18. package/src/dataset/worker.js +18 -18
  19. package/src/index.js +77 -77
  20. package/src/layer/BackgroundLayer.js +162 -162
  21. package/src/layer/BackgroundLayerImage.js +81 -81
  22. package/src/layer/BackgroundLayerWMS.js +104 -104
  23. package/src/layer/GeoJSONLayer.js +214 -214
  24. package/src/layer/GridLayer.js +148 -148
  25. package/src/layer/LabelLayer.js +194 -194
  26. package/src/legend/ColorCategoryLegend.js +109 -109
  27. package/src/legend/ColorDiscreteLegend.js +100 -100
  28. package/src/legend/ColorLegend.js +115 -115
  29. package/src/legend/OrientationLegend.js +89 -89
  30. package/src/legend/SizeLegend.js +224 -224
  31. package/src/legend/TernaryLegend.js +302 -302
  32. package/src/style/CompositionStyle.js +291 -291
  33. package/src/style/DotDensityStyle.js +133 -133
  34. package/src/style/ImageStyle.js +100 -100
  35. package/src/style/IsoFenceStyle.js +217 -217
  36. package/src/style/JoyPlotStyle.js +127 -127
  37. package/src/style/LegoStyle.js +110 -110
  38. package/src/style/MosaicStyle.js +99 -99
  39. package/src/style/NinjaStarStyle.js +102 -102
  40. package/src/style/PillarStyle.js +207 -207
  41. package/src/style/SegmentStyle.js +105 -105
  42. package/src/style/ShapeColorSizeStyle.js +147 -147
  43. package/src/style/SideCategoryStyle.js +112 -112
  44. package/src/style/SideStyle.js +212 -212
  45. package/src/style/SquareColorCategoryWebGLStyle.js +107 -107
  46. package/src/style/SquareColorWebGLStyle.js +126 -126
  47. package/src/style/StrokeStyle.js +135 -135
  48. package/src/style/TanakaStyle.js +69 -69
  49. package/src/style/TextStyle.js +110 -110
  50. package/src/style/TimeSeriesStyle.js +222 -222
  51. package/src/utils/scale.js +218 -218
  52. package/src/utils/stretching.js +120 -120
  53. package/src/utils/ternary.js +208 -208
  54. package/src/utils/utils.js +58 -58
  55. package/src/utils/webGLUtils.js +72 -72
@@ -1,60 +1,78 @@
1
- //@ts-check
2
- 'use strict'
3
-
4
- /**
5
- * This is an abstract class used to group elements shared between Layer and Style classes.
6
- *
7
- * @abstract
8
- * @module core
9
- * @author Joseph Davies, Julien Gaffuri
10
- */
11
- export class Drawable {
12
- /**
13
- * @param {object} opts
14
- */
15
- constructor(opts) {
16
- opts = opts || {}
17
-
18
- /** A function specifying if the element should be visible or not.
19
- * The function parameter is the zoom level.
20
- * @type {function(number):boolean} */
21
- this.visible = opts.visible
22
-
23
- /** A function returning the alpha (transparency/opacity), between 0.0 (fully transparent) and 1.0 (fully opaque).
24
- * The function parameter is the zoom level.
25
- * (see CanvasRenderingContext2D: globalAlpha property)
26
- * @type {(function(number):number)|undefined} */
27
- this.alpha = opts.alpha
28
-
29
- /** A function returning the blend operation.
30
- * The function parameter is the zoom level.
31
- * (see CanvasRenderingContext2D: globalCompositeOperation property)
32
- * @type {function(number):GlobalCompositeOperation} */
33
- this.blendOperation = opts.blendOperation || ((z) => 'source-over')
34
-
35
- /** @type {(function(number):string)|undefined} */
36
- this.filterColor = opts.filterColor // (z) => "#eee7"
37
- }
38
-
39
- /**
40
- * Draw layer filter.
41
- *
42
- * @param {import("./GeoCanvas.js").GeoCanvas} geoCanvas The canvas where to draw the layer.
43
- * @returns {void}
44
- * @abstract
45
- */
46
- drawFilter(geoCanvas) {
47
- //no filter: return
48
- if (!this.filterColor) return
49
-
50
- //get filter
51
- const fc = this.filterColor(geoCanvas.view.z)
52
-
53
- //no filter: return
54
- if (!fc || fc == 'none') return
55
-
56
- //draw filter
57
- geoCanvas.offscreenCtx.fillStyle = fc
58
- geoCanvas.offscreenCtx.fillRect(0, 0, geoCanvas.w, geoCanvas.h)
59
- }
60
- }
1
+ //@ts-check
2
+ 'use strict'
3
+
4
+ /**
5
+ * This is an abstract class used to group elements shared between Layer and Style classes.
6
+ *
7
+ * @abstract
8
+ * @module core
9
+ * @author Joseph Davies, Julien Gaffuri
10
+ */
11
+ export class Drawable {
12
+ /**
13
+ * @param {object} opts
14
+ */
15
+ constructor(opts) {
16
+ opts = opts || {}
17
+
18
+ /** A function specifying if the element should be visible or not.
19
+ * The function parameter is the zoom level.
20
+ * @type {function(number):boolean} */
21
+ this.visible = opts.visible
22
+
23
+ /** A function returning the alpha (transparency/opacity), between 0.0 (fully transparent) and 1.0 (fully opaque).
24
+ * The function parameter is the zoom level.
25
+ * (see CanvasRenderingContext2D: globalAlpha property)
26
+ * @type {(function(number):number)|undefined} */
27
+ this.alpha = opts.alpha
28
+
29
+ /** A function returning the blend operation.
30
+ * The function parameter is the zoom level.
31
+ * (see CanvasRenderingContext2D: globalCompositeOperation property)
32
+ * @type {function(number):GlobalCompositeOperation} */
33
+ this.blendOperation = opts.blendOperation || ((z) => 'source-over')
34
+
35
+ /** @type {(function(number):string)|undefined} */
36
+ this.filterColor = opts.filterColor // (z) => "#eee7"
37
+ /** @type {(function(number):GlobalCompositeOperation|"none")|undefined} */
38
+ this.filterBlendOperation = opts.filterBlendOperation // (z) => "multiply"
39
+ }
40
+
41
+ /**
42
+ * Draw layer filter.
43
+ *
44
+ * @param {import("./GeoCanvas.js").GeoCanvas} geoCanvas The canvas where to draw the layer.
45
+ * @returns {void}
46
+ * @abstract
47
+ */
48
+ drawFilter(geoCanvas) {
49
+ //no filter: return
50
+ if (!this.filterColor) return
51
+
52
+ //get filter
53
+ const fc = this.filterColor(geoCanvas.view.z)
54
+
55
+ //no filter: return
56
+ if (!fc || fc == 'none') return
57
+
58
+ //draw filter
59
+
60
+ //set color
61
+ geoCanvas.offscreenCtx.fillStyle = fc
62
+
63
+ //save blend mode and set new, if any
64
+ let bo = undefined, bo2 = undefined
65
+ if (this.filterBlendOperation) {
66
+ bo = geoCanvas.offscreenCtx.globalCompositeOperation
67
+ bo2 = this.filterBlendOperation(geoCanvas.view.z)
68
+ }
69
+ if (bo2 && bo2 != "none") geoCanvas.offscreenCtx.globalCompositeOperation = bo2;
70
+
71
+ //draw
72
+ geoCanvas.offscreenCtx.fillRect(0, 0, geoCanvas.w, geoCanvas.h)
73
+
74
+ //restore blend mode
75
+ if (bo) geoCanvas.offscreenCtx.globalCompositeOperation = bo;
76
+
77
+ }
78
+ }