gridviz 2.0.45 → 2.0.46

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 (53) hide show
  1. package/README.md +119 -119
  2. package/dist/gridviz.js +6937 -6937
  3. package/package.json +76 -76
  4. package/src/App.js +668 -668
  5. package/src/BackgroundLayer.js +182 -182
  6. package/src/BackgroundLayerWMS.js +131 -131
  7. package/src/Dataset.js +76 -76
  8. package/src/DatasetComponent.js +101 -101
  9. package/src/GeoCanvas.js +420 -420
  10. package/src/LabelLayer.js +190 -190
  11. package/src/Layer.js +92 -92
  12. package/src/Legend.js +86 -86
  13. package/src/LineLayer.js +150 -150
  14. package/src/Style.js +114 -114
  15. package/src/Tooltip.js +172 -172
  16. package/src/dataset/COGeo.js +24 -24
  17. package/src/dataset/CSVGrid.js +104 -104
  18. package/src/dataset/GeoTIFF.js +127 -127
  19. package/src/dataset/GridTile.js +41 -41
  20. package/src/dataset/TiledGrid.js +264 -264
  21. package/src/index.js +177 -176
  22. package/src/legend/ColorCategoryLegend.js +124 -124
  23. package/src/legend/ColorDiscreteLegend.js +103 -103
  24. package/src/legend/ColorLegend.js +124 -124
  25. package/src/legend/SegmentOrientationLegend.js +87 -87
  26. package/src/legend/SegmentWidthLegend.js +97 -97
  27. package/src/legend/SizeLegend.js +141 -141
  28. package/src/style/CompositionStyle.js +300 -300
  29. package/src/style/ContourStyle.js +54 -54
  30. package/src/style/DotDensityStyle.js +156 -156
  31. package/src/style/JoyPlotStyle.js +135 -135
  32. package/src/style/LegoStyle.js +112 -112
  33. package/src/style/MosaicStyle.js +107 -107
  34. package/src/style/NinjaStarStyle.js +124 -124
  35. package/src/style/PillarStyle.js +230 -230
  36. package/src/style/SegmentStyle.js +142 -142
  37. package/src/style/ShapeColorSizeStyle.js +126 -126
  38. package/src/style/SideCatStyle.js +172 -172
  39. package/src/style/SideStyle.js +218 -218
  40. package/src/style/SquareColorCatWGLStyle.js +120 -120
  41. package/src/style/SquareColorWGLStyle.js +146 -146
  42. package/src/style/StrokeStyle.js +131 -131
  43. package/src/style/TanakaStyle.js +160 -160
  44. package/src/style/TextStyle.js +132 -132
  45. package/src/utils/Utils.js +35 -35
  46. package/src/utils/WebGLRectangleColoring.js +106 -106
  47. package/src/utils/WebGLSquareColoring.js +118 -118
  48. package/src/utils/WebGLSquareColoringAdvanced.js +230 -230
  49. package/src/utils/WebGLSquareColoringCatAdvanced.js +133 -133
  50. package/src/utils/WebGLSquareColoringKS.js +153 -153
  51. package/src/utils/stretching.js +131 -131
  52. package/src/utils/webGLUtils.js +71 -71
  53. 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
+ }