@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 CHANGED
@@ -1,3 +1,7 @@
1
+ # @hzab/map-combine0.1.3
2
+
3
+ feat: 添加地图preRender事件
4
+
1
5
  # @hzab/map-combine@0.1.0
2
6
 
3
7
  feat: BIM 模型加载;旋转、平移、缩放
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/map-combine",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "地图组件",
5
5
  "main": "src",
6
6
  "scripts": {
@@ -0,0 +1,8 @@
1
+ export abstract class BasicMouseHandler{
2
+ /** 鼠标在屏幕上的坐标 */
3
+ position = [0, 0]
4
+ /** 鼠标在地图上的坐标 */
5
+ location = [0, 0, 0]
6
+ /** 忽略要素,使要素不会拦截鼠标事件 */
7
+ ignoreElement = false
8
+ }
@@ -1,18 +1,19 @@
1
1
  import Eventful from "zrender/lib/core/Eventful";
2
2
 
3
3
  export class MapEvent extends Eventful<{
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
- 'frame': () => void
13
- 'resize': () => void
14
- 'destroy': () => void
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('pointer-move')
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('pointer-move')
27
- })
34
+ event.trigger("pointer-move");
35
+ });
28
36
 
29
- container.addEventListener('mousedown', () => {
37
+ container.addEventListener("mousedown", () => {
30
38
  if (target) {
31
39
  moving = true;
32
40
  target.onPointerDown?.();
33
41
  }
34
- event.trigger('pointer-down')
35
- })
42
+ event.trigger("pointer-down");
43
+ });
36
44
 
37
- container.addEventListener('mouseup', () => {
45
+ container.addEventListener("mouseup", () => {
38
46
  if (target) {
39
47
  moving = false;
40
48
  target.onPointerUp?.();
41
49
  }
42
- event.trigger('pointer-up')
43
- })
50
+ event.trigger("pointer-up");
51
+ });
44
52
 
45
- container.addEventListener('contextmenu', (e) => {
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('left-click')
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('double-click')
64
- })
71
+ map.event.trigger("double-click");
72
+ });
65
73
 
66
- let key = 0
74
+ let key = 0;
67
75
 
68
- viewer.on('precompose', () => {
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('view-change')
79
+ key = _key;
80
+ event.trigger("view-change");
73
81
  }
74
- })
75
- }
82
+ });
83
+ }