gridviz 2.1.9 → 2.1.10

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 (57) hide show
  1. package/README.md +125 -125
  2. package/dist/gridviz.js +8036 -8024
  3. package/dist/gridviz.min.js +1 -1
  4. package/package.json +77 -77
  5. package/src/App.js +705 -705
  6. package/src/BackgroundLayer.js +182 -182
  7. package/src/BackgroundLayerWMS.js +131 -131
  8. package/src/Dataset.js +76 -76
  9. package/src/DatasetComponent.js +113 -101
  10. package/src/GeoCanvas.js +420 -420
  11. package/src/LabelLayer.js +190 -190
  12. package/src/Layer.js +103 -103
  13. package/src/Legend.js +86 -86
  14. package/src/LineLayer.js +150 -150
  15. package/src/Style.js +129 -129
  16. package/src/Tooltip.js +180 -180
  17. package/src/dataset/COGeo.js +24 -24
  18. package/src/dataset/CSVGrid.js +104 -104
  19. package/src/dataset/GeoTIFF.js +127 -127
  20. package/src/dataset/GridTile.js +41 -41
  21. package/src/dataset/LGrid.js +54 -54
  22. package/src/dataset/TiledGrid.js +264 -264
  23. package/src/index.js +71 -71
  24. package/src/legend/ColorCategoryLegend.js +124 -124
  25. package/src/legend/ColorDiscreteLegend.js +103 -103
  26. package/src/legend/ColorLegend.js +124 -124
  27. package/src/legend/SegmentOrientationLegend.js +87 -87
  28. package/src/legend/SegmentWidthLegend.js +97 -97
  29. package/src/legend/SizeLegend.js +141 -141
  30. package/src/style/CompositionStyle.js +300 -300
  31. package/src/style/ContourStyle.js +54 -54
  32. package/src/style/DotDensityStyle.js +156 -156
  33. package/src/style/IsoFenceStyle.js +262 -262
  34. package/src/style/JoyPlotStyle.js +135 -135
  35. package/src/style/LegoStyle.js +112 -112
  36. package/src/style/MosaicStyle.js +107 -107
  37. package/src/style/NinjaStarStyle.js +125 -125
  38. package/src/style/PillarStyle.js +230 -230
  39. package/src/style/SegmentStyle.js +142 -142
  40. package/src/style/ShapeColorSizeStyle.js +126 -126
  41. package/src/style/SideCatStyle.js +172 -172
  42. package/src/style/SideStyle.js +216 -216
  43. package/src/style/SquareColorCatWGLStyle.js +120 -120
  44. package/src/style/SquareColorWGLStyle.js +146 -146
  45. package/src/style/StrokeStyle.js +131 -131
  46. package/src/style/TanakaStyle.js +160 -160
  47. package/src/style/TextStyle.js +132 -132
  48. package/src/style/TimeSeriesStyle.js +250 -250
  49. package/src/utils/Utils.js +35 -35
  50. package/src/utils/WebGLRectangleColoring.js +106 -106
  51. package/src/utils/WebGLSquareColoring.js +118 -118
  52. package/src/utils/WebGLSquareColoringAdvanced.js +230 -230
  53. package/src/utils/WebGLSquareColoringCatAdvanced.js +133 -133
  54. package/src/utils/WebGLSquareColoringKS.js +153 -153
  55. package/src/utils/stretching.js +131 -131
  56. package/src/utils/webGLUtils.js +71 -71
  57. package/src/utils/zoomUtils.js +142 -142
@@ -1,142 +1,142 @@
1
- //@ts-check
2
- 'use strict'
3
-
4
- /**
5
- *
6
- * @param {import("../App").App} app
7
- * @param {number} zfTarget
8
- * @param {number} factor
9
- * @param {number} delayMs
10
- * @param {function|undefined} callback
11
- * @param {number} delayBeforeCallBackMs
12
- * @returns
13
- */
14
- export function zoomTo(
15
- app,
16
- zfTarget,
17
- factor = 1.01,
18
- delayMs = 0,
19
- callback = undefined,
20
- delayBeforeCallBackMs = 0
21
- ) {
22
- //ensure good factor value: >1
23
- factor = factor || 1.01
24
- if (factor < 1) {
25
- console.error('Unexpected value for factor: ' + factor + '. Set to default value 1.01')
26
- factor = 1.01
27
- }
28
-
29
- const zfIni = app.getZoomFactor()
30
- if (zfTarget == zfIni) return
31
- if (zfTarget < zfIni) factor = 1 / factor
32
- let zf = zfIni
33
- let timer = setInterval(() => {
34
- //compute new zoom level
35
- zf = app.getZoomFactor() * factor
36
- if (zfTarget > zfIni && zf > zfTarget) zf = zfTarget
37
- if (zfTarget < zfIni && zf < zfTarget) zf = zfTarget
38
-
39
- //set new zoom level
40
- app.setZoomFactor(zf)
41
- app.redraw()
42
-
43
- //target reached
44
- if (zf == zfTarget) {
45
- clearInterval(timer)
46
- //trigger callback, if any
47
- if (callback)
48
- setTimeout(() => {
49
- callback()
50
- }, delayBeforeCallBackMs)
51
- }
52
- }, delayMs)
53
- return timer
54
- }
55
-
56
- /**
57
- *
58
- * @param {import("../App").App} app
59
- * @param {number} xTarget
60
- * @param {number} yTarget
61
- * @param {number} zfTarget
62
- * @param {number} progressFactorPix
63
- * @param {number} delayMs
64
- * @param {function|undefined} callback
65
- * @param {number} delayBeforeCallBackMs
66
- * @returns
67
- */
68
- export function goToStraight(
69
- app,
70
- xTarget = NaN,
71
- yTarget = NaN,
72
- zfTarget = NaN,
73
- progressFactorPix = 5,
74
- delayMs = 0,
75
- callback = undefined,
76
- delayBeforeCallBackMs = 0
77
- ) {
78
- //store initial position/zoom
79
- const zfIni = app.getZoomFactor()
80
- const cIni = app.getGeoCenter()
81
-
82
- //default
83
- xTarget = isNaN(xTarget) ? cIni.x : xTarget
84
- yTarget = isNaN(yTarget) ? cIni.y : yTarget
85
- zfTarget = isNaN(zfTarget) ? zfIni : zfTarget
86
-
87
- //prepare for pan
88
- const dx = xTarget - cIni.x
89
- const dy = yTarget - cIni.y
90
- let d = Math.hypot(dx, dy)
91
- const ddx = (progressFactorPix * zfIni * dx) / d
92
- const ddy = (progressFactorPix * zfIni * dy) / d
93
-
94
- //prepare for zoom
95
- let r = zfTarget / zfIni
96
- const n = d / (progressFactorPix * zfIni)
97
- const zoomFactor = d > 0 ? Math.pow(r, 1 / n) : Math.pow(r, 1 / 10) //TODO not 10 ?
98
-
99
- //timer
100
- let timer = setInterval(() => {
101
- //compute and set new position
102
- if (d > 0) {
103
- const c = app.getGeoCenter()
104
- let nx = c.x + ddx
105
- let ny = c.y + ddy
106
- //if went too far, stop at target values
107
- if (nx < xTarget && xTarget < c.x) nx = xTarget
108
- if (c.x < xTarget && xTarget < nx) nx = xTarget
109
- if (ny < yTarget && yTarget < c.y) ny = yTarget
110
- if (c.y < yTarget && yTarget < ny) ny = yTarget
111
- app.setGeoCenter({ x: nx, y: ny })
112
- if (nx == xTarget && ny == yTarget) d = 0
113
- }
114
-
115
- //compute and set new zoom
116
- if (r != 1) {
117
- const zf = app.getZoomFactor()
118
- let nzf = zoomFactor * zf
119
- //if went too far, stop at target values
120
- if (nzf < zfTarget && zfTarget < zf) nzf = zfTarget
121
- if (zf < zfTarget && zfTarget < nzf) nzf = zfTarget
122
- app.setZoomFactor(nzf)
123
- if (nzf == zfTarget) r = 1
124
- }
125
-
126
- //redraw
127
- app.redraw()
128
-
129
- //if target reached, stop
130
- if (d == 0 && r == 1) {
131
- //console.log("OK !")
132
- clearInterval(timer)
133
- //trigger callback, if any
134
- if (callback)
135
- setTimeout(() => {
136
- callback()
137
- }, delayBeforeCallBackMs)
138
- }
139
- }, delayMs)
140
-
141
- return timer
142
- }
1
+ //@ts-check
2
+ 'use strict'
3
+
4
+ /**
5
+ *
6
+ * @param {import("../App").App} app
7
+ * @param {number} zfTarget
8
+ * @param {number} factor
9
+ * @param {number} delayMs
10
+ * @param {function|undefined} callback
11
+ * @param {number} delayBeforeCallBackMs
12
+ * @returns
13
+ */
14
+ export function zoomTo(
15
+ app,
16
+ zfTarget,
17
+ factor = 1.01,
18
+ delayMs = 0,
19
+ callback = undefined,
20
+ delayBeforeCallBackMs = 0
21
+ ) {
22
+ //ensure good factor value: >1
23
+ factor = factor || 1.01
24
+ if (factor < 1) {
25
+ console.error('Unexpected value for factor: ' + factor + '. Set to default value 1.01')
26
+ factor = 1.01
27
+ }
28
+
29
+ const zfIni = app.getZoomFactor()
30
+ if (zfTarget == zfIni) return
31
+ if (zfTarget < zfIni) factor = 1 / factor
32
+ let zf = zfIni
33
+ let timer = setInterval(() => {
34
+ //compute new zoom level
35
+ zf = app.getZoomFactor() * factor
36
+ if (zfTarget > zfIni && zf > zfTarget) zf = zfTarget
37
+ if (zfTarget < zfIni && zf < zfTarget) zf = zfTarget
38
+
39
+ //set new zoom level
40
+ app.setZoomFactor(zf)
41
+ app.redraw()
42
+
43
+ //target reached
44
+ if (zf == zfTarget) {
45
+ clearInterval(timer)
46
+ //trigger callback, if any
47
+ if (callback)
48
+ setTimeout(() => {
49
+ callback()
50
+ }, delayBeforeCallBackMs)
51
+ }
52
+ }, delayMs)
53
+ return timer
54
+ }
55
+
56
+ /**
57
+ *
58
+ * @param {import("../App").App} app
59
+ * @param {number} xTarget
60
+ * @param {number} yTarget
61
+ * @param {number} zfTarget
62
+ * @param {number} progressFactorPix
63
+ * @param {number} delayMs
64
+ * @param {function|undefined} callback
65
+ * @param {number} delayBeforeCallBackMs
66
+ * @returns
67
+ */
68
+ export function goToStraight(
69
+ app,
70
+ xTarget = NaN,
71
+ yTarget = NaN,
72
+ zfTarget = NaN,
73
+ progressFactorPix = 5,
74
+ delayMs = 0,
75
+ callback = undefined,
76
+ delayBeforeCallBackMs = 0
77
+ ) {
78
+ //store initial position/zoom
79
+ const zfIni = app.getZoomFactor()
80
+ const cIni = app.getGeoCenter()
81
+
82
+ //default
83
+ xTarget = isNaN(xTarget) ? cIni.x : xTarget
84
+ yTarget = isNaN(yTarget) ? cIni.y : yTarget
85
+ zfTarget = isNaN(zfTarget) ? zfIni : zfTarget
86
+
87
+ //prepare for pan
88
+ const dx = xTarget - cIni.x
89
+ const dy = yTarget - cIni.y
90
+ let d = Math.hypot(dx, dy)
91
+ const ddx = (progressFactorPix * zfIni * dx) / d
92
+ const ddy = (progressFactorPix * zfIni * dy) / d
93
+
94
+ //prepare for zoom
95
+ let r = zfTarget / zfIni
96
+ const n = d / (progressFactorPix * zfIni)
97
+ const zoomFactor = d > 0 ? Math.pow(r, 1 / n) : Math.pow(r, 1 / 10) //TODO not 10 ?
98
+
99
+ //timer
100
+ let timer = setInterval(() => {
101
+ //compute and set new position
102
+ if (d > 0) {
103
+ const c = app.getGeoCenter()
104
+ let nx = c.x + ddx
105
+ let ny = c.y + ddy
106
+ //if went too far, stop at target values
107
+ if (nx < xTarget && xTarget < c.x) nx = xTarget
108
+ if (c.x < xTarget && xTarget < nx) nx = xTarget
109
+ if (ny < yTarget && yTarget < c.y) ny = yTarget
110
+ if (c.y < yTarget && yTarget < ny) ny = yTarget
111
+ app.setGeoCenter({ x: nx, y: ny })
112
+ if (nx == xTarget && ny == yTarget) d = 0
113
+ }
114
+
115
+ //compute and set new zoom
116
+ if (r != 1) {
117
+ const zf = app.getZoomFactor()
118
+ let nzf = zoomFactor * zf
119
+ //if went too far, stop at target values
120
+ if (nzf < zfTarget && zfTarget < zf) nzf = zfTarget
121
+ if (zf < zfTarget && zfTarget < nzf) nzf = zfTarget
122
+ app.setZoomFactor(nzf)
123
+ if (nzf == zfTarget) r = 1
124
+ }
125
+
126
+ //redraw
127
+ app.redraw()
128
+
129
+ //if target reached, stop
130
+ if (d == 0 && r == 1) {
131
+ //console.log("OK !")
132
+ clearInterval(timer)
133
+ //trigger callback, if any
134
+ if (callback)
135
+ setTimeout(() => {
136
+ callback()
137
+ }, delayBeforeCallBackMs)
138
+ }
139
+ }, delayMs)
140
+
141
+ return timer
142
+ }