vislite 1.6.0 → 1.6.1

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 (176) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +8 -1
  3. package/LICENSE +20 -20
  4. package/lib/BarLayout/index.es.js +105 -105
  5. package/lib/BarLayout/index.es.min.js +2 -2
  6. package/lib/Buffer/index.es.js +1 -1
  7. package/lib/Buffer/index.es.min.js +1 -1
  8. package/lib/Canvas/index.es.js +1 -1
  9. package/lib/Canvas/index.es.min.js +1 -1
  10. package/lib/Cardinal/index.es.js +1 -1
  11. package/lib/Cardinal/index.es.min.js +1 -1
  12. package/lib/Eoap/index.es.js +1 -1
  13. package/lib/Eoap/index.es.min.js +1 -1
  14. package/lib/Hermite/index.es.js +1 -1
  15. package/lib/Hermite/index.es.min.js +1 -1
  16. package/lib/MapCoordinate/index.es.js +1 -1
  17. package/lib/MapCoordinate/index.es.min.js +1 -1
  18. package/lib/Matrix4/index.es.js +1 -1
  19. package/lib/Matrix4/index.es.min.js +1 -1
  20. package/lib/Mercator/index.es.js +1 -1
  21. package/lib/Mercator/index.es.min.js +1 -1
  22. package/lib/PieLayout/index.es.js +105 -105
  23. package/lib/PieLayout/index.es.min.js +2 -2
  24. package/lib/RawCanvas/index.es.js +1 -1
  25. package/lib/RawCanvas/index.es.min.js +1 -1
  26. package/lib/SVG/index.es.js +2 -2
  27. package/lib/SVG/index.es.min.js +2 -2
  28. package/lib/Shader/index.es.js +1 -1
  29. package/lib/Shader/index.es.min.js +1 -1
  30. package/lib/Texture/index.es.js +1 -1
  31. package/lib/Texture/index.es.min.js +1 -1
  32. package/lib/TreeLayout/index.es.js +105 -105
  33. package/lib/TreeLayout/index.es.min.js +2 -2
  34. package/lib/animation/index.es.js +105 -105
  35. package/lib/animation/index.es.min.js +2 -2
  36. package/lib/assemble/index.es.js +1 -1
  37. package/lib/assemble/index.es.min.js +1 -1
  38. package/lib/getLoopColors/index.es.js +1 -1
  39. package/lib/getLoopColors/index.es.min.js +1 -1
  40. package/lib/getWebGLContext/index.es.js +1 -1
  41. package/lib/getWebGLContext/index.es.min.js +1 -1
  42. package/lib/index.umd.js +156 -156
  43. package/lib/index.umd.min.js +5 -5
  44. package/lib/initOption/index.es.js +1 -1
  45. package/lib/initOption/index.es.min.js +1 -1
  46. package/lib/mergeOption/index.es.js +1 -1
  47. package/lib/mergeOption/index.es.min.js +1 -1
  48. package/lib/move/index.es.js +1 -1
  49. package/lib/move/index.es.min.js +1 -1
  50. package/lib/rotate/index.es.js +1 -1
  51. package/lib/rotate/index.es.min.js +1 -1
  52. package/lib/ruler/index.es.js +1 -1
  53. package/lib/ruler/index.es.min.js +1 -1
  54. package/lib/scale/index.es.js +1 -1
  55. package/lib/scale/index.es.min.js +1 -1
  56. package/lib/throttle/index.es.js +51 -51
  57. package/lib/throttle/index.es.min.js +2 -2
  58. package/minialipay/ui-canvas/drawImage.js +35 -35
  59. package/minialipay/ui-canvas/index.acss +4 -4
  60. package/minialipay/ui-canvas/index.axml +3 -3
  61. package/minialipay/ui-canvas/index.d.ts +1 -1
  62. package/minialipay/ui-canvas/index.js +100 -100
  63. package/minialipay/ui-canvas/index.json +6 -6
  64. package/miniprogram/ui-canvas/drawImage.js +35 -35
  65. package/miniprogram/ui-canvas/index.js +125 -125
  66. package/miniprogram/ui-canvas/index.json +4 -4
  67. package/miniprogram/ui-canvas/index.wxml +4 -4
  68. package/miniprogram/ui-canvas/index.wxss +5 -5
  69. package/package/BarLayout/index.ts +2 -2
  70. package/package/Buffer/index.ts +2 -2
  71. package/package/Canvas/index.ts +2 -2
  72. package/package/Cardinal/index.ts +2 -2
  73. package/package/Eoap/index.ts +2 -2
  74. package/package/Hermite/index.ts +2 -2
  75. package/package/MapCoordinate/index.ts +2 -2
  76. package/package/Matrix4/index.ts +2 -2
  77. package/package/Mercator/index.ts +2 -2
  78. package/package/PieLayout/index.ts +2 -2
  79. package/package/RawCanvas/index.ts +2 -2
  80. package/package/SVG/index.ts +2 -2
  81. package/package/Shader/index.ts +2 -2
  82. package/package/Texture/index.ts +2 -2
  83. package/package/TreeLayout/index.ts +2 -2
  84. package/package/animation/index.ts +5 -5
  85. package/package/assemble/index.ts +2 -2
  86. package/package/getLoopColors/index.ts +2 -2
  87. package/package/getWebGLContext/index.ts +40 -40
  88. package/package/index.ts +84 -84
  89. package/package/initOption/index.ts +2 -2
  90. package/package/mergeOption/index.ts +2 -2
  91. package/package/move/index.ts +2 -2
  92. package/package/rotate/index.ts +2 -2
  93. package/package/ruler/index.ts +2 -2
  94. package/package/scale/index.ts +2 -2
  95. package/package/throttle/index.ts +2 -2
  96. package/package.json +2 -2
  97. package/src/Eoap.ts +66 -66
  98. package/src/Matrix4/index.ts +84 -84
  99. package/src/Matrix4/move.ts +12 -12
  100. package/src/Matrix4/rotate.ts +15 -15
  101. package/src/Matrix4/scale.ts +11 -11
  102. package/src/Matrix4/transform.ts +64 -64
  103. package/src/Mercator.ts +27 -27
  104. package/src/common/assemble.ts +22 -22
  105. package/src/common/canvas/arc.ts +51 -51
  106. package/src/common/canvas/config.ts +176 -176
  107. package/src/common/canvas/default.ts +64 -64
  108. package/src/common/canvas/gradient.ts +31 -31
  109. package/src/common/canvas/index.ts +188 -188
  110. package/src/common/canvas/texts.ts +18 -18
  111. package/src/common/map/getBoundary.ts +15 -15
  112. package/src/common/map/tool.ts +29 -29
  113. package/src/common/option.ts +29 -29
  114. package/src/common/setStyle.ts +5 -5
  115. package/src/common/svg/config.ts +213 -213
  116. package/src/common/svg/default.ts +29 -29
  117. package/src/common/svg/gradient.ts +53 -53
  118. package/src/common/svg/index.ts +332 -332
  119. package/src/common/svg/tool.ts +51 -51
  120. package/src/common/tree/index.ts +25 -25
  121. package/src/common/tree/toInnerTree.ts +61 -61
  122. package/src/common/type.ts +26 -26
  123. package/src/common/webgl/buffer.ts +79 -79
  124. package/src/common/webgl/getWebGLContext.ts +45 -45
  125. package/src/common/webgl/shader.ts +75 -75
  126. package/src/coordinate/MapCoordinate.ts +80 -80
  127. package/src/getLoopColors.ts +42 -42
  128. package/src/interpolation/Cardinal.ts +110 -110
  129. package/src/interpolation/Hermite.ts +65 -65
  130. package/src/move.ts +7 -7
  131. package/src/rotate.ts +7 -7
  132. package/src/ruler.ts +209 -209
  133. package/src/scale.ts +6 -6
  134. package/types/Bar.d.ts +91 -91
  135. package/types/BarConfig.d.ts +4 -4
  136. package/types/BarLayout.d.ts +48 -48
  137. package/types/BarOption.d.ts +31 -31
  138. package/types/Buffer.d.ts +23 -23
  139. package/types/CanvasConfig.d.ts +88 -88
  140. package/types/CanvasOption.d.ts +13 -13
  141. package/types/CanvasOpts.d.ts +9 -9
  142. package/types/Cardinal.d.ts +13 -13
  143. package/types/Gradient.d.ts +14 -14
  144. package/types/Hermite.d.ts +18 -18
  145. package/types/Map.d.ts +9 -9
  146. package/types/MapConfig.d.ts +27 -27
  147. package/types/MapCoordinate.d.ts +22 -22
  148. package/types/Matrix4.d.ts +47 -47
  149. package/types/Pie.d.ts +73 -73
  150. package/types/PieConfig.d.ts +26 -26
  151. package/types/PieLayout.d.ts +40 -40
  152. package/types/PieOption.d.ts +21 -21
  153. package/types/SVG.d.ts +247 -247
  154. package/types/SVGConfig.d.ts +71 -71
  155. package/types/Shader.d.ts +16 -16
  156. package/types/Texture.d.ts +16 -16
  157. package/types/Tree.d.ts +74 -74
  158. package/types/TreeConfig.d.ts +36 -36
  159. package/types/TreeLayout.d.ts +59 -59
  160. package/types/TreeOption.d.ts +48 -48
  161. package/types/animation.d.ts +11 -11
  162. package/types/assemble.d.ts +5 -5
  163. package/types/getLoopColors.d.ts +5 -5
  164. package/types/getWebGLContext.d.ts +7 -7
  165. package/types/index.d.ts +195 -195
  166. package/types/move.d.ts +5 -5
  167. package/types/option.d.ts +12 -12
  168. package/types/painterConfig.d.ts +4 -4
  169. package/types/rotate.d.ts +5 -5
  170. package/types/ruler.d.ts +10 -10
  171. package/types/scale.d.ts +5 -5
  172. package/types/throttle.d.ts +5 -5
  173. package/types/ui-canvas.d.ts +4 -4
  174. package/types/uni-canvas.d.ts +3 -3
  175. package/uni-app/drawImage.js +19 -19
  176. package/uni-app/ui-canvas.vue +295 -295
@@ -1,188 +1,188 @@
1
- import type CanvasConfigType from "../../../types/CanvasConfig"
2
- import type CanvasOptsType from '../../../types/CanvasOpts'
3
-
4
- import PainterRender from "./painter"
5
- import assemble from "../assemble"
6
- import { linearGradient, radialGradient, conicGradient } from "./gradient"
7
- import { initText } from './config'
8
- import defaultFactory from "./default"
9
-
10
- class Canvas extends PainterRender {
11
- readonly name: string = "Canvas"
12
-
13
- private __regionList = {} //区域映射表
14
- private __scaleSize
15
-
16
- // 步长由1改为10是为了优化区域计算有时候出错问题
17
- // 2023年7月6日 于南京
18
- private __regionAssemble = assemble(0, 255, 10, 3)
19
-
20
- // 添加scaleSize参数是为了适配画布缩放后的处理
21
- // 2024年1月17日 于南京
22
- constructor(ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement | null, opts: CanvasOptsType = {}, scaleSize = 1) {
23
- super(
24
- ViewCanvas,
25
- opts,
26
- RegionCanvas ? new PainterRender(RegionCanvas, {
27
- willReadFrequently: true,
28
- }) : undefined, true, scaleSize
29
- )
30
-
31
- this.__scaleSize = scaleSize
32
- this.setRegion("")
33
- }
34
-
35
- config(configs: CanvasConfigType) {
36
- for (const key in configs) {
37
- this.useConfig(key, (configs as any)[key])
38
- }
39
-
40
- return this
41
- }
42
-
43
- reset() {
44
- this.config(defaultFactory() as CanvasConfigType)
45
- return this
46
- }
47
-
48
- // 是否绘制的内容只需要进行区域记录
49
- onlyRegion(flag: boolean) {
50
- this.__onlyRegion = flag
51
- return this
52
- }
53
-
54
- onlyView(flag: boolean) {
55
- this.__onlyView = flag
56
- return this
57
- }
58
-
59
- // 设置当前绘制区域名称
60
- setRegion(regionName: string | number) {
61
- if (this.__region) {
62
- if (regionName) {
63
- if ((this.__regionList as any)[regionName] == void 0) {
64
- const tempColor = this.__regionAssemble();
65
- (this.__regionList as any)[regionName] =
66
- "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")"
67
- }
68
-
69
- this.__region.useConfig("fillStyle", (this.__regionList as any)[regionName]) &&
70
- this.__region.useConfig("strokeStyle", (this.__regionList as any)[regionName])
71
- } else {
72
- this.__region.useConfig("fillStyle", "#000000") &&
73
- this.__region.useConfig("strokeStyle", "#000000")
74
- }
75
- }
76
- return this
77
- }
78
-
79
- // 获取当前事件触发的区域名称
80
- getRegion(x: number, y: number): Promise<string> {
81
- return new Promise((resolve) => {
82
- const imgData = this.__region ? this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1) : {
83
- data: [0, 0, 0, 0]
84
- }
85
-
86
- // 获取点击点的颜色
87
- let currentRGBA = imgData.data
88
-
89
- const doit = () => {
90
- if (this.__region) {
91
-
92
- // 查找当前点击的区域
93
- for (const key in this.__regionList) {
94
- if (
95
- "rgb(" +
96
- currentRGBA[0] +
97
- "," +
98
- currentRGBA[1] +
99
- "," +
100
- currentRGBA[2] +
101
- ")" ==
102
- (this.__regionList as any)[key]
103
- ) {
104
- resolve(key)
105
- break
106
- }
107
- }
108
- }
109
-
110
- resolve("")
111
- }
112
-
113
- // 如果有值
114
- if (currentRGBA) {
115
- doit()
116
- }
117
-
118
- // 否则就是在Promise中
119
- else {
120
- (imgData as any).then((data: Uint8ClampedArray) => {
121
- currentRGBA = data
122
- doit()
123
- })
124
- }
125
- })
126
- }
127
-
128
- textWidth(text: string) {
129
- this.painter.save()
130
-
131
- initText(this.painter, this.__specialConfig, 0, 0, 0)
132
-
133
- // 虽然我们限制了只可以输入字符串,可是不代表所有环境都可以保证,为了确保方法不失效,强转成字符串
134
- const width = this.painter.measureText(text + "").width
135
-
136
- this.painter.restore()
137
-
138
- return width
139
- }
140
-
141
- // 获取原始画笔
142
- getContext(isRegion = false) {
143
- return isRegion ? (this.__region ? this.__region.painter : null) : this.painter
144
- }
145
-
146
- // 获取画布信息
147
- getInfo() {
148
- return {
149
- width: this.painter.canvas.width / this.__scaleSize,
150
- height: this.painter.canvas.height / this.__scaleSize
151
- }
152
- }
153
-
154
- // 线性渐变
155
- createLinearGradient(x0: number, y0: number, x1: number, y1: number) {
156
- return linearGradient(this.painter, x0, y0, x1, y1)
157
- }
158
-
159
- // 环形渐变
160
- createRadialGradient(cx: number, cy: number, r: number) {
161
- return radialGradient(this.painter, cx, cy, r)
162
- }
163
-
164
- // 角度渐变
165
- createConicGradient(cx: number, cy: number, beginDeg: number, deg?: number) {
166
- return conicGradient(this.painter, cx, cy, beginDeg, deg)
167
- }
168
-
169
- // 获取指定位置颜色
170
- getColor(x: number, y: number) {
171
- x *= this.__scaleSize
172
- y *= this.__scaleSize
173
- const currentRGBA = this.painter.getImageData(x - 0.5, y - 0.5, 1, 1).data
174
- return (
175
- "rgba(" +
176
- currentRGBA[0] +
177
- "," +
178
- currentRGBA[1] +
179
- "," +
180
- currentRGBA[2] +
181
- "," +
182
- currentRGBA[3] +
183
- ")"
184
- )
185
- }
186
- }
187
-
188
- export default Canvas
1
+ import type CanvasConfigType from "../../../types/CanvasConfig"
2
+ import type CanvasOptsType from '../../../types/CanvasOpts'
3
+
4
+ import PainterRender from "./painter"
5
+ import assemble from "../assemble"
6
+ import { linearGradient, radialGradient, conicGradient } from "./gradient"
7
+ import { initText } from './config'
8
+ import defaultFactory from "./default"
9
+
10
+ class Canvas extends PainterRender {
11
+ readonly name: string = "Canvas"
12
+
13
+ private __regionList = {} //区域映射表
14
+ private __scaleSize
15
+
16
+ // 步长由1改为10是为了优化区域计算有时候出错问题
17
+ // 2023年7月6日 于南京
18
+ private __regionAssemble = assemble(0, 255, 10, 3)
19
+
20
+ // 添加scaleSize参数是为了适配画布缩放后的处理
21
+ // 2024年1月17日 于南京
22
+ constructor(ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement | null, opts: CanvasOptsType = {}, scaleSize = 1) {
23
+ super(
24
+ ViewCanvas,
25
+ opts,
26
+ RegionCanvas ? new PainterRender(RegionCanvas, {
27
+ willReadFrequently: true,
28
+ }) : undefined, true, scaleSize
29
+ )
30
+
31
+ this.__scaleSize = scaleSize
32
+ this.setRegion("")
33
+ }
34
+
35
+ config(configs: CanvasConfigType) {
36
+ for (const key in configs) {
37
+ this.useConfig(key, (configs as any)[key])
38
+ }
39
+
40
+ return this
41
+ }
42
+
43
+ reset() {
44
+ this.config(defaultFactory() as CanvasConfigType)
45
+ return this
46
+ }
47
+
48
+ // 是否绘制的内容只需要进行区域记录
49
+ onlyRegion(flag: boolean) {
50
+ this.__onlyRegion = flag
51
+ return this
52
+ }
53
+
54
+ onlyView(flag: boolean) {
55
+ this.__onlyView = flag
56
+ return this
57
+ }
58
+
59
+ // 设置当前绘制区域名称
60
+ setRegion(regionName: string | number) {
61
+ if (this.__region) {
62
+ if (regionName) {
63
+ if ((this.__regionList as any)[regionName] == void 0) {
64
+ const tempColor = this.__regionAssemble();
65
+ (this.__regionList as any)[regionName] =
66
+ "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")"
67
+ }
68
+
69
+ this.__region.useConfig("fillStyle", (this.__regionList as any)[regionName]) &&
70
+ this.__region.useConfig("strokeStyle", (this.__regionList as any)[regionName])
71
+ } else {
72
+ this.__region.useConfig("fillStyle", "#000000") &&
73
+ this.__region.useConfig("strokeStyle", "#000000")
74
+ }
75
+ }
76
+ return this
77
+ }
78
+
79
+ // 获取当前事件触发的区域名称
80
+ getRegion(x: number, y: number): Promise<string> {
81
+ return new Promise((resolve) => {
82
+ const imgData = this.__region ? this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1) : {
83
+ data: [0, 0, 0, 0]
84
+ }
85
+
86
+ // 获取点击点的颜色
87
+ let currentRGBA = imgData.data
88
+
89
+ const doit = () => {
90
+ if (this.__region) {
91
+
92
+ // 查找当前点击的区域
93
+ for (const key in this.__regionList) {
94
+ if (
95
+ "rgb(" +
96
+ currentRGBA[0] +
97
+ "," +
98
+ currentRGBA[1] +
99
+ "," +
100
+ currentRGBA[2] +
101
+ ")" ==
102
+ (this.__regionList as any)[key]
103
+ ) {
104
+ resolve(key)
105
+ break
106
+ }
107
+ }
108
+ }
109
+
110
+ resolve("")
111
+ }
112
+
113
+ // 如果有值
114
+ if (currentRGBA) {
115
+ doit()
116
+ }
117
+
118
+ // 否则就是在Promise中
119
+ else {
120
+ (imgData as any).then((data: Uint8ClampedArray) => {
121
+ currentRGBA = data
122
+ doit()
123
+ })
124
+ }
125
+ })
126
+ }
127
+
128
+ textWidth(text: string) {
129
+ this.painter.save()
130
+
131
+ initText(this.painter, this.__specialConfig, 0, 0, 0)
132
+
133
+ // 虽然我们限制了只可以输入字符串,可是不代表所有环境都可以保证,为了确保方法不失效,强转成字符串
134
+ const width = this.painter.measureText(text + "").width
135
+
136
+ this.painter.restore()
137
+
138
+ return width
139
+ }
140
+
141
+ // 获取原始画笔
142
+ getContext(isRegion = false) {
143
+ return isRegion ? (this.__region ? this.__region.painter : null) : this.painter
144
+ }
145
+
146
+ // 获取画布信息
147
+ getInfo() {
148
+ return {
149
+ width: this.painter.canvas.width / this.__scaleSize,
150
+ height: this.painter.canvas.height / this.__scaleSize
151
+ }
152
+ }
153
+
154
+ // 线性渐变
155
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number) {
156
+ return linearGradient(this.painter, x0, y0, x1, y1)
157
+ }
158
+
159
+ // 环形渐变
160
+ createRadialGradient(cx: number, cy: number, r: number) {
161
+ return radialGradient(this.painter, cx, cy, r)
162
+ }
163
+
164
+ // 角度渐变
165
+ createConicGradient(cx: number, cy: number, beginDeg: number, deg?: number) {
166
+ return conicGradient(this.painter, cx, cy, beginDeg, deg)
167
+ }
168
+
169
+ // 获取指定位置颜色
170
+ getColor(x: number, y: number) {
171
+ x *= this.__scaleSize
172
+ y *= this.__scaleSize
173
+ const currentRGBA = this.painter.getImageData(x - 0.5, y - 0.5, 1, 1).data
174
+ return (
175
+ "rgba(" +
176
+ currentRGBA[0] +
177
+ "," +
178
+ currentRGBA[1] +
179
+ "," +
180
+ currentRGBA[2] +
181
+ "," +
182
+ currentRGBA[3] +
183
+ ")"
184
+ )
185
+ }
186
+ }
187
+
188
+ export default Canvas
@@ -1,19 +1,19 @@
1
- export default function (painter: CanvasRenderingContext2D, contents: string, width: number, height: number, doback: (content: string, top: number) => void) {
2
-
3
- let lineNumber = 0, content = ""
4
- for (let i = 0; i < contents.length; i++) {
5
- if (painter.measureText(content + contents[i]).width > width || /\n$/.test(content)) {
6
- lineNumber += 1
7
- doback(content, (lineNumber - 0.5) * height)
8
-
9
- content = contents[i]
10
- } else if (i == contents.length - 1) {
11
- lineNumber += 1
12
- doback(content + contents[i], (lineNumber - 0.5) * height)
13
- } else {
14
- content += contents[i]
15
- }
16
- }
17
-
18
- return lineNumber * height
1
+ export default function (painter: CanvasRenderingContext2D, contents: string, width: number, height: number, doback: (content: string, top: number) => void) {
2
+
3
+ let lineNumber = 0, content = ""
4
+ for (let i = 0; i < contents.length; i++) {
5
+ if (painter.measureText(content + contents[i]).width > width || /\n$/.test(content)) {
6
+ lineNumber += 1
7
+ doback(content, (lineNumber - 0.5) * height)
8
+
9
+ content = contents[i]
10
+ } else if (i == contents.length - 1) {
11
+ lineNumber += 1
12
+ doback(content + contents[i], (lineNumber - 0.5) * height)
13
+ } else {
14
+ content += contents[i]
15
+ }
16
+ }
17
+
18
+ return lineNumber * height
19
19
  }
@@ -1,16 +1,16 @@
1
- import { mllData } from "./tool"
2
-
3
- export default function (...geos: any[]) {
4
- let minLongitude: any = null, maxLongitude: any = null, minLatitude: any = null, maxLatitude: any = null
5
-
6
- for (const geoJson of geos) {
7
- const [_minLongitude, _maxLongitude, _minLatitude, _maxLatitude] = mllData(geoJson)
8
-
9
- if (minLongitude == void 0 || _minLongitude < minLongitude) minLongitude = _minLongitude
10
- if (maxLongitude == void 0 || _maxLongitude > maxLongitude) maxLongitude = _maxLongitude
11
- if (minLatitude == void 0 || _minLatitude < minLatitude) minLatitude = _minLatitude
12
- if (maxLatitude == void 0 || _maxLatitude > maxLatitude) maxLatitude = _maxLatitude
13
- }
14
-
15
- return [minLongitude, maxLongitude, minLatitude, maxLatitude]
1
+ import { mllData } from "./tool"
2
+
3
+ export default function (...geos: any[]) {
4
+ let minLongitude: any = null, maxLongitude: any = null, minLatitude: any = null, maxLatitude: any = null
5
+
6
+ for (const geoJson of geos) {
7
+ const [_minLongitude, _maxLongitude, _minLatitude, _maxLatitude] = mllData(geoJson)
8
+
9
+ if (minLongitude == void 0 || _minLongitude < minLongitude) minLongitude = _minLongitude
10
+ if (maxLongitude == void 0 || _maxLongitude > maxLongitude) maxLongitude = _maxLongitude
11
+ if (minLatitude == void 0 || _minLatitude < minLatitude) minLatitude = _minLatitude
12
+ if (maxLatitude == void 0 || _maxLatitude > maxLatitude) maxLatitude = _maxLatitude
13
+ }
14
+
15
+ return [minLongitude, maxLongitude, minLatitude, maxLatitude]
16
16
  }
@@ -1,30 +1,30 @@
1
- export function mllData(geoJson: any) {
2
- let minLongitude: any = null, maxLongitude: any = null, minLatitude: any = null, maxLatitude: any = null
3
-
4
- const forPolygon = function (coordinates: any) {
5
- for (let j = 0; j < coordinates.length; j++) {
6
- for (let k = 0; k < coordinates[j].length; k++) {
7
- const longitude = coordinates[j][k][0], latitude = coordinates[j][k][1]
8
-
9
- if (minLongitude == void 0 || minLongitude > longitude) minLongitude = longitude
10
- if (maxLongitude == void 0 || maxLongitude < longitude) maxLongitude = longitude
11
-
12
- if (minLatitude == void 0 || minLatitude > latitude) minLatitude = latitude
13
- if (maxLatitude == void 0 || maxLatitude < latitude) maxLatitude = latitude
14
- }
15
- }
16
- };
17
-
18
- const features = geoJson.features
19
- for (let i = 0; i < features.length; i++) {
20
- if (features[i].geometry.type == "Polygon") {
21
- forPolygon(features[i].geometry.coordinates)
22
- } else if (features[i].geometry.type == "MultiPolygon") {
23
- for (let j = 0; j < features[i].geometry.coordinates.length; j++) {
24
- forPolygon(features[i].geometry.coordinates[j])
25
- }
26
- }
27
- }
28
-
29
- return [minLongitude, maxLongitude, minLatitude, maxLatitude]
1
+ export function mllData(geoJson: any) {
2
+ let minLongitude: any = null, maxLongitude: any = null, minLatitude: any = null, maxLatitude: any = null
3
+
4
+ const forPolygon = function (coordinates: any) {
5
+ for (let j = 0; j < coordinates.length; j++) {
6
+ for (let k = 0; k < coordinates[j].length; k++) {
7
+ const longitude = coordinates[j][k][0], latitude = coordinates[j][k][1]
8
+
9
+ if (minLongitude == void 0 || minLongitude > longitude) minLongitude = longitude
10
+ if (maxLongitude == void 0 || maxLongitude < longitude) maxLongitude = longitude
11
+
12
+ if (minLatitude == void 0 || minLatitude > latitude) minLatitude = latitude
13
+ if (maxLatitude == void 0 || maxLatitude < latitude) maxLatitude = latitude
14
+ }
15
+ }
16
+ };
17
+
18
+ const features = geoJson.features
19
+ for (let i = 0; i < features.length; i++) {
20
+ if (features[i].geometry.type == "Polygon") {
21
+ forPolygon(features[i].geometry.coordinates)
22
+ } else if (features[i].geometry.type == "MultiPolygon") {
23
+ for (let j = 0; j < features[i].geometry.coordinates.length; j++) {
24
+ forPolygon(features[i].geometry.coordinates[j])
25
+ }
26
+ }
27
+ }
28
+
29
+ return [minLongitude, maxLongitude, minLatitude, maxLatitude]
30
30
  }
@@ -1,30 +1,30 @@
1
- import { isPlainObject } from "./type"
2
-
3
- // 初始化配置
4
- export function initOption(setOption: any, defaultOption: any) {
5
- for (const key in setOption) {
6
- defaultOption[key] = setOption[key]
7
- }
8
-
9
- return defaultOption
10
- }
11
-
12
- // 合并配置
13
- export function mergeOption(oldOption: any, newOption: any) {
14
- (function doit(oldOption, newOption) {
15
-
16
- for (const key in newOption) {
17
- const value = newOption[key]
18
-
19
- if (isPlainObject(value)) {
20
- if (!oldOption[key]) oldOption[key] = {}
21
-
22
- doit(oldOption[key], newOption[key])
23
- } else {
24
- oldOption[key] = value
25
- }
26
-
27
- }
28
-
29
- })(oldOption, newOption)
1
+ import { isPlainObject } from "./type"
2
+
3
+ // 初始化配置
4
+ export function initOption(setOption: any, defaultOption: any) {
5
+ for (const key in setOption) {
6
+ defaultOption[key] = setOption[key]
7
+ }
8
+
9
+ return defaultOption
10
+ }
11
+
12
+ // 合并配置
13
+ export function mergeOption(oldOption: any, newOption: any) {
14
+ (function doit(oldOption, newOption) {
15
+
16
+ for (const key in newOption) {
17
+ const value = newOption[key]
18
+
19
+ if (isPlainObject(value)) {
20
+ if (!oldOption[key]) oldOption[key] = {}
21
+
22
+ doit(oldOption[key], newOption[key])
23
+ } else {
24
+ oldOption[key] = value
25
+ }
26
+
27
+ }
28
+
29
+ })(oldOption, newOption)
30
30
  }
@@ -1,6 +1,6 @@
1
- // 修改样式
2
- export default function (el: HTMLElement | SVGElement, styles: any) {
3
- for (const key in styles) {
4
- el.style[key as any] = styles[key]
5
- }
1
+ // 修改样式
2
+ export default function (el: HTMLElement | SVGElement, styles: any) {
3
+ for (const key in styles) {
4
+ el.style[key as any] = styles[key]
5
+ }
6
6
  }