@hzab/map-combine 0.1.2 → 0.1.3
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/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/src/basic/BasicMouseHandler.ts +8 -0
- package/src/basic/MapEvent.ts +15 -14
- package/src/cesium/CesiumEvent.ts +5 -0
- package/src/openlayer/OpenlayerEvent.ts +33 -25
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
package/src/basic/MapEvent.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import Eventful from "zrender/lib/core/Eventful";
|
|
2
2
|
|
|
3
3
|
export class MapEvent extends Eventful<{
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
"pointer-down": () => void;
|
|
5
|
+
"pointer-move": () => void;
|
|
6
|
+
"pointer-up": () => void;
|
|
7
|
+
"left-click": () => void;
|
|
8
|
+
"right-click": () => void;
|
|
9
|
+
"double-click": () => void;
|
|
10
|
+
"view-change": () => void;
|
|
11
|
+
"view-moveEnd": () => void;
|
|
12
|
+
"view-preRender": () => void;
|
|
13
|
+
frame: () => void;
|
|
14
|
+
resize: () => void;
|
|
15
|
+
destroy: () => void;
|
|
15
16
|
}> {
|
|
16
|
-
canvas = [0, 0]
|
|
17
|
-
geography = [0, 0, 0]
|
|
18
|
-
}
|
|
17
|
+
canvas = [0, 0];
|
|
18
|
+
geography = [0, 0, 0];
|
|
19
|
+
}
|
|
@@ -3,6 +3,11 @@ import { CesiumMap } from "./CesiumMap";
|
|
|
3
3
|
export function bindEvent(map: CesiumMap) {
|
|
4
4
|
const { event, viewer, container } = map;
|
|
5
5
|
viewer.camera.percentageChanged = 0.0001;
|
|
6
|
+
|
|
7
|
+
viewer.scene.preRender.addEventListener(() => {
|
|
8
|
+
event.trigger("view-preRender");
|
|
9
|
+
});
|
|
10
|
+
|
|
6
11
|
viewer.camera.changed.addEventListener(() => {
|
|
7
12
|
event.trigger("view-change");
|
|
8
13
|
});
|
|
@@ -3,15 +3,23 @@ import { OpenlayerMap } from "./OpenlayerMap";
|
|
|
3
3
|
export function bindEvent(map: OpenlayerMap) {
|
|
4
4
|
const { event, viewer, container } = map;
|
|
5
5
|
let target: any;
|
|
6
|
-
let moving = false
|
|
6
|
+
let moving = false;
|
|
7
|
+
|
|
8
|
+
const frame = () => {
|
|
9
|
+
if (map.isAlive) {
|
|
10
|
+
requestAnimationFrame(frame);
|
|
11
|
+
event.trigger("view-preRender");
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
frame();
|
|
7
15
|
|
|
8
16
|
viewer.on("pointermove", (e) => {
|
|
9
17
|
event.canvas = e.pixel;
|
|
10
18
|
event.geography = map.canvasTgeography(event.canvas);
|
|
11
|
-
let _target: any
|
|
19
|
+
let _target: any;
|
|
12
20
|
if (moving) {
|
|
13
|
-
event.trigger(
|
|
14
|
-
return
|
|
21
|
+
event.trigger("pointer-move");
|
|
22
|
+
return;
|
|
15
23
|
}
|
|
16
24
|
const res = viewer.getFeaturesAtPixel(event.canvas)[0];
|
|
17
25
|
_target = res ? res.get("event") : undefined;
|
|
@@ -23,53 +31,53 @@ export function bindEvent(map: OpenlayerMap) {
|
|
|
23
31
|
_target?.onPointerIn?.();
|
|
24
32
|
target = _target;
|
|
25
33
|
}
|
|
26
|
-
event.trigger(
|
|
27
|
-
})
|
|
34
|
+
event.trigger("pointer-move");
|
|
35
|
+
});
|
|
28
36
|
|
|
29
|
-
container.addEventListener(
|
|
37
|
+
container.addEventListener("mousedown", () => {
|
|
30
38
|
if (target) {
|
|
31
39
|
moving = true;
|
|
32
40
|
target.onPointerDown?.();
|
|
33
41
|
}
|
|
34
|
-
event.trigger(
|
|
35
|
-
})
|
|
42
|
+
event.trigger("pointer-down");
|
|
43
|
+
});
|
|
36
44
|
|
|
37
|
-
container.addEventListener(
|
|
45
|
+
container.addEventListener("mouseup", () => {
|
|
38
46
|
if (target) {
|
|
39
47
|
moving = false;
|
|
40
48
|
target.onPointerUp?.();
|
|
41
49
|
}
|
|
42
|
-
event.trigger(
|
|
43
|
-
})
|
|
50
|
+
event.trigger("pointer-up");
|
|
51
|
+
});
|
|
44
52
|
|
|
45
|
-
container.addEventListener(
|
|
46
|
-
e.preventDefault()
|
|
53
|
+
container.addEventListener("contextmenu", (e) => {
|
|
54
|
+
e.preventDefault();
|
|
47
55
|
if (target) {
|
|
48
56
|
target.onRClick?.();
|
|
49
57
|
}
|
|
50
|
-
})
|
|
58
|
+
});
|
|
51
59
|
|
|
52
60
|
viewer.on("click", () => {
|
|
53
61
|
if (target) {
|
|
54
62
|
target.onLClick?.();
|
|
55
63
|
}
|
|
56
|
-
event.trigger(
|
|
64
|
+
event.trigger("left-click");
|
|
57
65
|
});
|
|
58
66
|
|
|
59
67
|
viewer.on("dblclick", () => {
|
|
60
68
|
if (target) {
|
|
61
69
|
target.onDbClick?.();
|
|
62
70
|
}
|
|
63
|
-
map.event.trigger(
|
|
64
|
-
})
|
|
71
|
+
map.event.trigger("double-click");
|
|
72
|
+
});
|
|
65
73
|
|
|
66
|
-
let key = 0
|
|
74
|
+
let key = 0;
|
|
67
75
|
|
|
68
|
-
viewer.on(
|
|
69
|
-
const _key = map.center.reduce((a, b) => a + b, map.zoom)
|
|
76
|
+
viewer.on("precompose", () => {
|
|
77
|
+
const _key = map.center.reduce((a, b) => a + b, map.zoom);
|
|
70
78
|
if (key != _key) {
|
|
71
|
-
key = _key
|
|
72
|
-
event.trigger(
|
|
79
|
+
key = _key;
|
|
80
|
+
event.trigger("view-change");
|
|
73
81
|
}
|
|
74
|
-
})
|
|
75
|
-
}
|
|
82
|
+
});
|
|
83
|
+
}
|