vislite 0.3.1 → 0.4.1-alpha.0
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.
- package/AUTHORS.txt +6 -6
- package/CHANGELOG +14 -1
- package/LICENSE +20 -20
- package/README.md +53 -53
- package/lib/Buffer/index.umd.js +2 -2
- package/lib/Buffer/index.umd.min.js +2 -2
- package/lib/Canvas/index.umd.js +9 -2
- package/lib/Canvas/index.umd.min.js +3 -3
- package/lib/Cardinal/index.umd.js +2 -2
- package/lib/Cardinal/index.umd.min.js +2 -2
- package/lib/Eoap/index.umd.js +2 -2
- package/lib/Eoap/index.umd.min.js +2 -2
- package/lib/Hermite/index.umd.js +2 -2
- package/lib/Hermite/index.umd.min.js +2 -2
- package/lib/Matrix4/index.umd.js +2 -2
- package/lib/Matrix4/index.umd.min.js +2 -2
- package/lib/Mercator/index.umd.js +2 -2
- package/lib/Mercator/index.umd.min.js +2 -2
- package/lib/OralCanvas/index.es.js +9 -2
- package/lib/OralCanvas/index.es.min.js +3 -3
- package/lib/OralWebGL/index.es.js +2 -2
- package/lib/OralWebGL/index.es.min.js +2 -2
- package/lib/SVG/index.umd.js +2 -2
- package/lib/SVG/index.umd.min.js +2 -2
- package/lib/Shader/index.umd.js +2 -2
- package/lib/Shader/index.umd.min.js +2 -2
- package/lib/Texture/index.umd.js +2 -2
- package/lib/Texture/index.umd.min.js +2 -2
- package/lib/WebGL/index.umd.js +3 -2
- package/lib/WebGL/index.umd.min.js +3 -3
- package/lib/animation/index.umd.js +2 -2
- package/lib/animation/index.umd.min.js +2 -2
- package/lib/getLoopColors/index.umd.js +2 -2
- package/lib/getLoopColors/index.umd.min.js +2 -2
- package/lib/getWebGLContext/index.umd.js +2 -2
- package/lib/getWebGLContext/index.umd.min.js +2 -2
- package/lib/index.umd.js +49 -27
- package/lib/index.umd.min.js +3 -3
- package/lib/rotate/index.umd.js +2 -2
- package/lib/rotate/index.umd.min.js +2 -2
- package/lib/ruler/index.umd.js +2 -2
- package/lib/ruler/index.umd.min.js +2 -2
- package/lib/viewHandler/index.umd.js +41 -27
- package/lib/viewHandler/index.umd.min.js +3 -3
- package/miniprogram/ui-canvas/index.js +99 -99
- package/miniprogram/ui-canvas/index.json +4 -4
- package/miniprogram/ui-canvas/index.wxml +4 -4
- package/miniprogram/ui-canvas/index.wxss +5 -5
- package/package/Buffer/index.ts +1 -1
- package/package/Canvas/index.ts +1 -1
- package/package/Cardinal/index.ts +2 -2
- package/package/Eoap/index.ts +2 -2
- package/package/Hermite/index.ts +2 -2
- package/package/Matrix4/index.ts +2 -2
- package/package/Mercator/index.ts +2 -2
- package/package/OralCanvas/index.ts +1 -1
- package/package/OralWebGL/index.ts +1 -1
- package/package/SVG/index.ts +2 -2
- package/package/Shader/index.ts +1 -1
- package/package/Texture/index.ts +1 -1
- package/package/WebGL/index.ts +1 -1
- package/package/animation/index.ts +2 -2
- package/package/getLoopColors/index.ts +2 -2
- package/package/getWebGLContext/index.ts +39 -39
- package/package/index.ts +56 -56
- package/package/rotate/index.ts +2 -2
- package/package/ruler/index.ts +2 -2
- package/package/viewHandler/index.ts +2 -2
- package/package.json +2 -2
- package/src/Canvas.ts +56 -56
- package/src/Eoap.ts +66 -66
- package/src/Matrix4/index.ts +76 -76
- package/src/Matrix4/move.ts +12 -12
- package/src/Matrix4/rotate.ts +15 -15
- package/src/Matrix4/scale.ts +11 -11
- package/src/Matrix4/transform.ts +64 -64
- package/src/Mercator.ts +26 -26
- package/src/SVG.ts +23 -23
- package/src/WebGL.ts +53 -52
- package/src/animation.ts +99 -99
- package/src/common/canvas/arc.ts +50 -50
- package/src/common/canvas/config.ts +157 -157
- package/src/common/canvas/gradient.ts +29 -29
- package/src/common/canvas/index.ts +14 -0
- package/src/common/canvas/painter.ts +355 -355
- package/src/common/canvas/texts.ts +18 -18
- package/src/common/setStyle.ts +5 -5
- package/src/common/svg/config.ts +173 -173
- package/src/common/svg/index.ts +334 -334
- package/src/common/svg/tool.ts +43 -43
- package/src/common/webgl/buffer.ts +79 -79
- package/src/common/webgl/doDraw.ts +106 -106
- package/src/common/webgl/getColorFactory.ts +26 -26
- package/src/common/webgl/getShader.ts +75 -75
- package/src/common/webgl/getTexture.ts +11 -11
- package/src/common/webgl/getWebGLContext.ts +27 -27
- package/src/common/webgl/index.ts +216 -216
- package/src/common/webgl/shader.ts +75 -75
- package/src/common/webgl/texture.ts +99 -99
- package/src/getLoopColors.ts +42 -42
- package/src/interpolation/Cardinal.ts +109 -109
- package/src/interpolation/Hermite.ts +65 -65
- package/src/rotate.ts +7 -7
- package/src/ruler.ts +99 -99
- package/src/viewHandler.ts +158 -139
- package/types/Buffer.d.ts +23 -23
- package/types/Canvas.d.ts +288 -282
- package/types/CanvasConfig.d.ts +80 -80
- package/types/Cardinal.d.ts +13 -13
- package/types/Gradient.d.ts +14 -14
- package/types/Hermite.d.ts +18 -18
- package/types/Map.d.ts +9 -9
- package/types/Matrix4.d.ts +42 -42
- package/types/Object3D.d.ts +113 -113
- package/types/SVG.d.ts +210 -210
- package/types/SVGConfig.d.ts +58 -58
- package/types/Scene3D.d.ts +6 -6
- package/types/Shader.d.ts +15 -15
- package/types/Texture.d.ts +16 -16
- package/types/WebGL.d.ts +38 -38
- package/types/animation.d.ts +6 -6
- package/types/getLoopColors.d.ts +2 -2
- package/types/getWebGLContext.d.ts +2 -2
- package/types/index.d.ts +129 -129
- package/types/rotate.d.ts +2 -2
- package/types/ruler.d.ts +2 -2
- package/types/viewHandler.d.ts +13 -12
- package/uni-app/ui-canvas.vue +212 -212
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<view>
|
|
2
|
-
<canvas type="2d" id="painter" style='width:{{width}}px;height:{{height}}px;' bindtouchstart="doitstart"></canvas>
|
|
3
|
-
<canvas type="2d" id="region" style='width:{{width}}px;height:{{height}}px;' class="region"></canvas>
|
|
4
|
-
</view>
|
|
1
|
+
<view>
|
|
2
|
+
<canvas type="2d" id="painter" style='width:{{width}}px;height:{{height}}px;' bindtouchstart="doitstart"></canvas>
|
|
3
|
+
<canvas type="2d" id="region" style='width:{{width}}px;height:{{height}}px;' class="region"></canvas>
|
|
4
|
+
</view>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* 辅助的区域不应该可以看见 */
|
|
2
|
-
.region {
|
|
3
|
-
position: fixed;
|
|
4
|
-
left: 50000px;
|
|
5
|
-
}
|
|
1
|
+
/* 辅助的区域不应该可以看见 */
|
|
2
|
+
.region {
|
|
3
|
+
position: fixed;
|
|
4
|
+
left: 50000px;
|
|
5
|
+
}
|
package/package/Buffer/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import Buffer from '../../src/common/webgl/buffer'
|
|
1
|
+
import Buffer from '../../src/common/webgl/buffer'
|
|
2
2
|
export default Buffer
|
package/package/Canvas/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import Canvas from "../../src/Canvas"
|
|
1
|
+
import Canvas from "../../src/Canvas"
|
|
2
2
|
export default Canvas
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Cardinal from "../../src/interpolation/Cardinal"
|
|
2
|
-
|
|
1
|
+
import Cardinal from "../../src/interpolation/Cardinal"
|
|
2
|
+
|
|
3
3
|
export default Cardinal
|
package/package/Eoap/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Eoap from "../../src/Eoap"
|
|
2
|
-
|
|
1
|
+
import Eoap from "../../src/Eoap"
|
|
2
|
+
|
|
3
3
|
export default Eoap
|
package/package/Hermite/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Hermite from "../../src/interpolation/Hermite"
|
|
2
|
-
|
|
1
|
+
import Hermite from "../../src/interpolation/Hermite"
|
|
2
|
+
|
|
3
3
|
export default Hermite
|
package/package/Matrix4/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Matrix4 from "../../src/Matrix4/index"
|
|
2
|
-
|
|
1
|
+
import Matrix4 from "../../src/Matrix4/index"
|
|
2
|
+
|
|
3
3
|
export default Matrix4
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Mercator from "../../src/Mercator"
|
|
2
|
-
|
|
1
|
+
import Mercator from "../../src/Mercator"
|
|
2
|
+
|
|
3
3
|
export default Mercator
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _Canvas from "../../src/common/canvas/index"
|
|
1
|
+
import _Canvas from "../../src/common/canvas/index"
|
|
2
2
|
export default _Canvas
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _WebGL from "../../src/common/webgl/index"
|
|
1
|
+
import _WebGL from "../../src/common/webgl/index"
|
|
2
2
|
export default _WebGL
|
package/package/SVG/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import SVG from "../../src/SVG"
|
|
2
|
-
|
|
1
|
+
import SVG from "../../src/SVG"
|
|
2
|
+
|
|
3
3
|
export default SVG
|
package/package/Shader/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import Shader from '../../src/common/webgl/shader'
|
|
1
|
+
import Shader from '../../src/common/webgl/shader'
|
|
2
2
|
export default Shader
|
package/package/Texture/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import Texture from '../../src/common/webgl/texture'
|
|
1
|
+
import Texture from '../../src/common/webgl/texture'
|
|
2
2
|
export default Texture
|
package/package/WebGL/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import WebGL from "../../src/WebGL"
|
|
1
|
+
import WebGL from "../../src/WebGL"
|
|
2
2
|
export default WebGL
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import animation from "../../src/animation"
|
|
2
|
-
|
|
1
|
+
import animation from "../../src/animation"
|
|
2
|
+
|
|
3
3
|
export default animation
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import getLoopColors from "../../src/getLoopColors"
|
|
2
|
-
|
|
1
|
+
import getLoopColors from "../../src/getLoopColors"
|
|
2
|
+
|
|
3
3
|
export default getLoopColors
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import getWebGLContext from "../../src/common/webgl/getWebGLContext"
|
|
2
|
-
|
|
3
|
-
export default (el: HTMLElement | null, scale: number = 1) => {
|
|
4
|
-
if (!el) {
|
|
5
|
-
throw new Error("VISLite getWebGLContext:The mount point requires an HTMLElement type but encountered null.")
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
let width = el.clientWidth, height = el.clientHeight
|
|
9
|
-
|
|
10
|
-
let ViewCanvas: HTMLCanvasElement
|
|
11
|
-
|
|
12
|
-
let _el = el as any
|
|
13
|
-
|
|
14
|
-
// 如果已经初始化过了
|
|
15
|
-
if (_el._vislite_canvas_) {
|
|
16
|
-
ViewCanvas = _el._vislite_canvas_
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// 否则就初始化
|
|
20
|
-
else {
|
|
21
|
-
|
|
22
|
-
ViewCanvas = document.createElement('canvas')
|
|
23
|
-
el.appendChild(ViewCanvas)
|
|
24
|
-
|
|
25
|
-
_el._vislite_canvas_ = ViewCanvas
|
|
26
|
-
|
|
27
|
-
el.setAttribute('vislite', 'WebGL')
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// 设置画布大小
|
|
32
|
-
|
|
33
|
-
ViewCanvas.style.width = width + "px"
|
|
34
|
-
ViewCanvas.setAttribute('width', width + "")
|
|
35
|
-
|
|
36
|
-
ViewCanvas.style.height = height + "px"
|
|
37
|
-
ViewCanvas.setAttribute('height', height + "")
|
|
38
|
-
|
|
39
|
-
return getWebGLContext(ViewCanvas, scale)
|
|
1
|
+
import getWebGLContext from "../../src/common/webgl/getWebGLContext"
|
|
2
|
+
|
|
3
|
+
export default (el: HTMLElement | null, scale: number = 1) => {
|
|
4
|
+
if (!el) {
|
|
5
|
+
throw new Error("VISLite getWebGLContext:The mount point requires an HTMLElement type but encountered null.")
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let width = el.clientWidth, height = el.clientHeight
|
|
9
|
+
|
|
10
|
+
let ViewCanvas: HTMLCanvasElement
|
|
11
|
+
|
|
12
|
+
let _el = el as any
|
|
13
|
+
|
|
14
|
+
// 如果已经初始化过了
|
|
15
|
+
if (_el._vislite_canvas_) {
|
|
16
|
+
ViewCanvas = _el._vislite_canvas_
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 否则就初始化
|
|
20
|
+
else {
|
|
21
|
+
|
|
22
|
+
ViewCanvas = document.createElement('canvas')
|
|
23
|
+
el.appendChild(ViewCanvas)
|
|
24
|
+
|
|
25
|
+
_el._vislite_canvas_ = ViewCanvas
|
|
26
|
+
|
|
27
|
+
el.setAttribute('vislite', 'WebGL')
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// 设置画布大小
|
|
32
|
+
|
|
33
|
+
ViewCanvas.style.width = width + "px"
|
|
34
|
+
ViewCanvas.setAttribute('width', width + "")
|
|
35
|
+
|
|
36
|
+
ViewCanvas.style.height = height + "px"
|
|
37
|
+
ViewCanvas.setAttribute('height', height + "")
|
|
38
|
+
|
|
39
|
+
return getWebGLContext(ViewCanvas, scale)
|
|
40
40
|
}
|
package/package/index.ts
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import Cardinal from "./Cardinal/index"
|
|
2
|
-
import Hermite from "./Hermite/index"
|
|
3
|
-
|
|
4
|
-
import Matrix4 from "./Matrix4/index"
|
|
5
|
-
import rotate from "./rotate/index"
|
|
6
|
-
|
|
7
|
-
import getLoopColors from "./getLoopColors/index"
|
|
8
|
-
import animation from "./animation/index"
|
|
9
|
-
import ruler from "./ruler/index"
|
|
10
|
-
|
|
11
|
-
import SVG from "./SVG/index"
|
|
12
|
-
import Canvas from "./Canvas/index"
|
|
13
|
-
import WebGL from "./WebGL/index"
|
|
14
|
-
|
|
15
|
-
import getWebGLContext from "./getWebGLContext/index"
|
|
16
|
-
import Shader from "./Shader/index"
|
|
17
|
-
import Texture from "./Texture/index"
|
|
18
|
-
import Buffer from "./Buffer/index"
|
|
19
|
-
|
|
20
|
-
import Eoap from "./Eoap/index"
|
|
21
|
-
import Mercator from "./Mercator/index"
|
|
22
|
-
|
|
23
|
-
import viewHandler from "./viewHandler/index"
|
|
24
|
-
|
|
25
|
-
export default {
|
|
26
|
-
|
|
27
|
-
// 插值
|
|
28
|
-
Cardinal,
|
|
29
|
-
Hermite,
|
|
30
|
-
|
|
31
|
-
// 变换
|
|
32
|
-
Matrix4,
|
|
33
|
-
rotate,
|
|
34
|
-
|
|
35
|
-
// 工具
|
|
36
|
-
getLoopColors,
|
|
37
|
-
animation,
|
|
38
|
-
ruler,
|
|
39
|
-
|
|
40
|
-
// 画笔
|
|
41
|
-
SVG,
|
|
42
|
-
Canvas,
|
|
43
|
-
WebGL,
|
|
44
|
-
|
|
45
|
-
// WebGL
|
|
46
|
-
getWebGLContext,
|
|
47
|
-
Shader,
|
|
48
|
-
Texture,
|
|
49
|
-
Buffer,
|
|
50
|
-
|
|
51
|
-
// 投影
|
|
52
|
-
Eoap,
|
|
53
|
-
Mercator,
|
|
54
|
-
|
|
55
|
-
// 辅助
|
|
56
|
-
viewHandler
|
|
1
|
+
import Cardinal from "./Cardinal/index"
|
|
2
|
+
import Hermite from "./Hermite/index"
|
|
3
|
+
|
|
4
|
+
import Matrix4 from "./Matrix4/index"
|
|
5
|
+
import rotate from "./rotate/index"
|
|
6
|
+
|
|
7
|
+
import getLoopColors from "./getLoopColors/index"
|
|
8
|
+
import animation from "./animation/index"
|
|
9
|
+
import ruler from "./ruler/index"
|
|
10
|
+
|
|
11
|
+
import SVG from "./SVG/index"
|
|
12
|
+
import Canvas from "./Canvas/index"
|
|
13
|
+
import WebGL from "./WebGL/index"
|
|
14
|
+
|
|
15
|
+
import getWebGLContext from "./getWebGLContext/index"
|
|
16
|
+
import Shader from "./Shader/index"
|
|
17
|
+
import Texture from "./Texture/index"
|
|
18
|
+
import Buffer from "./Buffer/index"
|
|
19
|
+
|
|
20
|
+
import Eoap from "./Eoap/index"
|
|
21
|
+
import Mercator from "./Mercator/index"
|
|
22
|
+
|
|
23
|
+
import viewHandler from "./viewHandler/index"
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
|
|
27
|
+
// 插值
|
|
28
|
+
Cardinal,
|
|
29
|
+
Hermite,
|
|
30
|
+
|
|
31
|
+
// 变换
|
|
32
|
+
Matrix4,
|
|
33
|
+
rotate,
|
|
34
|
+
|
|
35
|
+
// 工具
|
|
36
|
+
getLoopColors,
|
|
37
|
+
animation,
|
|
38
|
+
ruler,
|
|
39
|
+
|
|
40
|
+
// 画笔
|
|
41
|
+
SVG,
|
|
42
|
+
Canvas,
|
|
43
|
+
WebGL,
|
|
44
|
+
|
|
45
|
+
// WebGL
|
|
46
|
+
getWebGLContext,
|
|
47
|
+
Shader,
|
|
48
|
+
Texture,
|
|
49
|
+
Buffer,
|
|
50
|
+
|
|
51
|
+
// 投影
|
|
52
|
+
Eoap,
|
|
53
|
+
Mercator,
|
|
54
|
+
|
|
55
|
+
// 辅助
|
|
56
|
+
viewHandler
|
|
57
57
|
}
|
package/package/rotate/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import rotate from "../../src/rotate"
|
|
2
|
-
|
|
1
|
+
import rotate from "../../src/rotate"
|
|
2
|
+
|
|
3
3
|
export default rotate
|
package/package/ruler/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import ruler from "../../src/ruler"
|
|
2
|
-
|
|
1
|
+
import ruler from "../../src/ruler"
|
|
2
|
+
|
|
3
3
|
export default ruler
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import viewHandler from "../../src/viewHandler"
|
|
2
|
-
|
|
1
|
+
import viewHandler from "../../src/viewHandler"
|
|
2
|
+
|
|
3
3
|
export default viewHandler
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vislite",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1-alpha.0",
|
|
4
4
|
"description": "灵活、快速、简单的数据可视化交互式跨端前端库",
|
|
5
5
|
"main": "./lib/index.umd.min.js",
|
|
6
6
|
"typings": "./types/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@rollup/plugin-typescript": "^11.1.0",
|
|
43
43
|
"@types/jasmine": "^4.3.1",
|
|
44
|
-
"devby": "^0.4.
|
|
44
|
+
"devby": "^0.4.6",
|
|
45
45
|
"karma": "^6.3.10",
|
|
46
46
|
"karma-chrome-launcher": "^3.1.0",
|
|
47
47
|
"karma-jasmine": "^4.0.1",
|
package/src/Canvas.ts
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
import CanvasType from '../types/Canvas'
|
|
2
|
-
import OralCanvas from './common/canvas/index'
|
|
3
|
-
|
|
4
|
-
class Canvas extends OralCanvas implements CanvasType {
|
|
5
|
-
private __canvas: HTMLCanvasElement
|
|
6
|
-
constructor(el: HTMLElement | null) {
|
|
7
|
-
if (!el) {
|
|
8
|
-
throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.")
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
let width = el.clientWidth, height = el.clientHeight
|
|
12
|
-
|
|
13
|
-
let ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement
|
|
14
|
-
|
|
15
|
-
let _el = el as any
|
|
16
|
-
|
|
17
|
-
// 如果已经初始化过了
|
|
18
|
-
if (_el._vislite_canvas_) {
|
|
19
|
-
ViewCanvas = _el._vislite_canvas_[0]
|
|
20
|
-
RegionCanvas = _el._vislite_canvas_[1]
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// 否则就初始化
|
|
24
|
-
else {
|
|
25
|
-
ViewCanvas = document.createElement('canvas')
|
|
26
|
-
el.appendChild(ViewCanvas)
|
|
27
|
-
|
|
28
|
-
RegionCanvas = document.createElement('canvas')
|
|
29
|
-
|
|
30
|
-
_el._vislite_canvas_ = [ViewCanvas, RegionCanvas]
|
|
31
|
-
|
|
32
|
-
el.setAttribute('vislite', 'Canvas')
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// 设置画布大小
|
|
36
|
-
for (let canvas of [ViewCanvas, RegionCanvas]) {
|
|
37
|
-
|
|
38
|
-
canvas.style.width = width + "px"
|
|
39
|
-
canvas.setAttribute('width', width + "")
|
|
40
|
-
|
|
41
|
-
canvas.style.height = height + "px"
|
|
42
|
-
canvas.setAttribute('height', height + "")
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
super(ViewCanvas, RegionCanvas)
|
|
46
|
-
|
|
47
|
-
this.__canvas = ViewCanvas
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
toDataURL(): Promise<string> {
|
|
51
|
-
return new Promise(resolve => {
|
|
52
|
-
resolve(this.__canvas.toDataURL())
|
|
53
|
-
})
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
1
|
+
import CanvasType from '../types/Canvas'
|
|
2
|
+
import OralCanvas from './common/canvas/index'
|
|
3
|
+
|
|
4
|
+
class Canvas extends OralCanvas implements CanvasType {
|
|
5
|
+
private __canvas: HTMLCanvasElement
|
|
6
|
+
constructor(el: HTMLElement | null) {
|
|
7
|
+
if (!el) {
|
|
8
|
+
throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.")
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let width = el.clientWidth, height = el.clientHeight
|
|
12
|
+
|
|
13
|
+
let ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement
|
|
14
|
+
|
|
15
|
+
let _el = el as any
|
|
16
|
+
|
|
17
|
+
// 如果已经初始化过了
|
|
18
|
+
if (_el._vislite_canvas_) {
|
|
19
|
+
ViewCanvas = _el._vislite_canvas_[0]
|
|
20
|
+
RegionCanvas = _el._vislite_canvas_[1]
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// 否则就初始化
|
|
24
|
+
else {
|
|
25
|
+
ViewCanvas = document.createElement('canvas')
|
|
26
|
+
el.appendChild(ViewCanvas)
|
|
27
|
+
|
|
28
|
+
RegionCanvas = document.createElement('canvas')
|
|
29
|
+
|
|
30
|
+
_el._vislite_canvas_ = [ViewCanvas, RegionCanvas]
|
|
31
|
+
|
|
32
|
+
el.setAttribute('vislite', 'Canvas')
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// 设置画布大小
|
|
36
|
+
for (let canvas of [ViewCanvas, RegionCanvas]) {
|
|
37
|
+
|
|
38
|
+
canvas.style.width = width + "px"
|
|
39
|
+
canvas.setAttribute('width', width + "")
|
|
40
|
+
|
|
41
|
+
canvas.style.height = height + "px"
|
|
42
|
+
canvas.setAttribute('height', height + "")
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
super(ViewCanvas, RegionCanvas)
|
|
46
|
+
|
|
47
|
+
this.__canvas = ViewCanvas
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
toDataURL(): Promise<string> {
|
|
51
|
+
return new Promise(resolve => {
|
|
52
|
+
resolve(this.__canvas.toDataURL())
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
57
|
export default Canvas
|
package/src/Eoap.ts
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import MapType from '../types/Map'
|
|
2
|
-
|
|
3
|
-
// 围绕X轴旋转
|
|
4
|
-
let rotateX = function (deg: number, x: number, y: number, z: number) {
|
|
5
|
-
let cos = Math.cos(deg), sin = Math.sin(deg)
|
|
6
|
-
return [x, y * cos - z * sin, y * sin + z * cos]
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// 围绕Y轴旋转
|
|
10
|
-
let rotateY = function (deg: number, x: number, y: number, z: number) {
|
|
11
|
-
let cos = Math.cos(deg), sin = Math.sin(deg)
|
|
12
|
-
return [z * sin + x * cos, y, z * cos - x * sin]
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// 围绕Z轴旋转
|
|
16
|
-
let rotateZ = function (deg: number, x: number, y: number, z: number) {
|
|
17
|
-
let cos = Math.cos(deg), sin = Math.sin(deg)
|
|
18
|
-
return [x * cos - y * sin, x * sin + y * cos, z]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* 等角斜方位投影 */
|
|
22
|
-
class Eoap implements MapType {
|
|
23
|
-
readonly name: string = 'Eoap'
|
|
24
|
-
|
|
25
|
-
private __scale: number // 缩放比例
|
|
26
|
-
private __center: number[] // 投影中心经纬度
|
|
27
|
-
|
|
28
|
-
constructor(scale: number = 7, center: number[] = [107, 36]) {
|
|
29
|
-
this.__scale = scale
|
|
30
|
-
this.__center = center
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
use(λ: number, φ: number) {
|
|
34
|
-
/**
|
|
35
|
-
* 通过旋转的方法
|
|
36
|
-
* 先旋转出点的位置
|
|
37
|
-
* 然后根据把地心到旋转中心的这条射线变成OZ这条射线的变换应用到初始化点上
|
|
38
|
-
* 这样求的的点的x,y就是最终结果
|
|
39
|
-
*
|
|
40
|
-
* 计算过程:
|
|
41
|
-
* 1.初始化点的位置是p(x,0,0),其中x的值是地球半径除以缩放倍速
|
|
42
|
-
* 2.根据点的纬度对p进行旋转,旋转后得到的p的坐标纬度就是目标纬度
|
|
43
|
-
* 3.同样的对此刻的p进行经度的旋转,这样就获取了极点作为中心点的坐标
|
|
44
|
-
* 4.接着想象一下为了让旋转中心移动到极点需要进行旋转的经纬度是多少,记为lo和la
|
|
45
|
-
* 5.然后再对p进行经度度旋转lo获得新的p
|
|
46
|
-
* 6.然后再对p进行纬度旋转la获得新的p
|
|
47
|
-
* 7.旋转结束
|
|
48
|
-
*
|
|
49
|
-
* 特别注意:第5和第6步顺序一定不可以调换,原因来自经纬度定义上
|
|
50
|
-
* 【除了经度为0的位置,不然纬度的旋转会改变原来的经度值,反过来不会】
|
|
51
|
-
*
|
|
52
|
-
*/
|
|
53
|
-
let p = rotateY((360 - φ) / 180 * Math.PI, 100 * this.__scale, 0, 0)
|
|
54
|
-
p = rotateZ(λ / 180 * Math.PI, p[0], p[1], p[2])
|
|
55
|
-
p = rotateZ((90 - this.__center[0]) / 180 * Math.PI, p[0], p[1], p[2])
|
|
56
|
-
p = rotateX((90 - this.__center[1]) / 180 * Math.PI, p[0], p[1], p[2])
|
|
57
|
-
|
|
58
|
-
return [
|
|
59
|
-
-p[0], // 加-号是因为浏览器坐标和地图不一样
|
|
60
|
-
p[1],
|
|
61
|
-
p[2]
|
|
62
|
-
]
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export default Eoap
|
|
1
|
+
import MapType from '../types/Map'
|
|
2
|
+
|
|
3
|
+
// 围绕X轴旋转
|
|
4
|
+
let rotateX = function (deg: number, x: number, y: number, z: number) {
|
|
5
|
+
let cos = Math.cos(deg), sin = Math.sin(deg)
|
|
6
|
+
return [x, y * cos - z * sin, y * sin + z * cos]
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// 围绕Y轴旋转
|
|
10
|
+
let rotateY = function (deg: number, x: number, y: number, z: number) {
|
|
11
|
+
let cos = Math.cos(deg), sin = Math.sin(deg)
|
|
12
|
+
return [z * sin + x * cos, y, z * cos - x * sin]
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 围绕Z轴旋转
|
|
16
|
+
let rotateZ = function (deg: number, x: number, y: number, z: number) {
|
|
17
|
+
let cos = Math.cos(deg), sin = Math.sin(deg)
|
|
18
|
+
return [x * cos - y * sin, x * sin + y * cos, z]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* 等角斜方位投影 */
|
|
22
|
+
class Eoap implements MapType {
|
|
23
|
+
readonly name: string = 'Eoap'
|
|
24
|
+
|
|
25
|
+
private __scale: number // 缩放比例
|
|
26
|
+
private __center: number[] // 投影中心经纬度
|
|
27
|
+
|
|
28
|
+
constructor(scale: number = 7, center: number[] = [107, 36]) {
|
|
29
|
+
this.__scale = scale
|
|
30
|
+
this.__center = center
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
use(λ: number, φ: number) {
|
|
34
|
+
/**
|
|
35
|
+
* 通过旋转的方法
|
|
36
|
+
* 先旋转出点的位置
|
|
37
|
+
* 然后根据把地心到旋转中心的这条射线变成OZ这条射线的变换应用到初始化点上
|
|
38
|
+
* 这样求的的点的x,y就是最终结果
|
|
39
|
+
*
|
|
40
|
+
* 计算过程:
|
|
41
|
+
* 1.初始化点的位置是p(x,0,0),其中x的值是地球半径除以缩放倍速
|
|
42
|
+
* 2.根据点的纬度对p进行旋转,旋转后得到的p的坐标纬度就是目标纬度
|
|
43
|
+
* 3.同样的对此刻的p进行经度的旋转,这样就获取了极点作为中心点的坐标
|
|
44
|
+
* 4.接着想象一下为了让旋转中心移动到极点需要进行旋转的经纬度是多少,记为lo和la
|
|
45
|
+
* 5.然后再对p进行经度度旋转lo获得新的p
|
|
46
|
+
* 6.然后再对p进行纬度旋转la获得新的p
|
|
47
|
+
* 7.旋转结束
|
|
48
|
+
*
|
|
49
|
+
* 特别注意:第5和第6步顺序一定不可以调换,原因来自经纬度定义上
|
|
50
|
+
* 【除了经度为0的位置,不然纬度的旋转会改变原来的经度值,反过来不会】
|
|
51
|
+
*
|
|
52
|
+
*/
|
|
53
|
+
let p = rotateY((360 - φ) / 180 * Math.PI, 100 * this.__scale, 0, 0)
|
|
54
|
+
p = rotateZ(λ / 180 * Math.PI, p[0], p[1], p[2])
|
|
55
|
+
p = rotateZ((90 - this.__center[0]) / 180 * Math.PI, p[0], p[1], p[2])
|
|
56
|
+
p = rotateX((90 - this.__center[1]) / 180 * Math.PI, p[0], p[1], p[2])
|
|
57
|
+
|
|
58
|
+
return [
|
|
59
|
+
-p[0], // 加-号是因为浏览器坐标和地图不一样
|
|
60
|
+
p[1],
|
|
61
|
+
p[2]
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export default Eoap
|