@hzab/map-combine 0.4.2-alpha.1 → 0.4.2-alpha.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
@@ -2,6 +2,9 @@
2
2
 
3
3
  feat: 点线面 height 设置
4
4
  fix: openlayer getFromLonLat this 指向修复
5
+ break: PointAggregation datas 改为数组对象
6
+ fix: cesium flyTo height 计算
7
+ feat: map.bussinesses onFrame 事件回调
5
8
 
6
9
  # @hzab/map-combine@0.4.1
7
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/map-combine",
3
- "version": "0.4.2-alpha.1",
3
+ "version": "0.4.2-alpha.3",
4
4
  "description": "地图组件",
5
5
  "main": "src",
6
6
  "scripts": {
@@ -1,54 +1,55 @@
1
- import { AMap } from "./AMap";
2
-
3
- /**
4
- * 高德地图事件
5
- * 高德地图 元素事件由各自元素处理
6
- * @param map
7
- */
8
- export function bindEvent(map: AMap) {
9
- const { event, viewer, container } = map;
10
-
11
- const frame = () => {
12
- if (map.isAlive) {
13
- requestAnimationFrame(frame);
14
- event.trigger("view-preRender");
15
- }
16
- };
17
- frame();
18
-
19
- viewer.on("moveend", (e) => {
20
- event.trigger("view-moveEnd");
21
- event.trigger("view-change");
22
- });
23
-
24
- container.addEventListener("mousedown", (e) => {
25
- event.trigger("pointer-down");
26
- });
27
-
28
- container.addEventListener("mouseup", (e) => {
29
- event.trigger("pointer-up");
30
- });
31
-
32
- // 解决 ReactPoint 点击事件无法触发的问题
33
- container.addEventListener("click", (e) => {
34
- event.trigger("left-click");
35
- });
36
-
37
- viewer.on("mousemove", (e) => {
38
- event.trigger("pointer-move");
39
- event.canvas = [e.pixel.x, e.pixel.y];
40
- event.geography = [e.lnglat.lng, e.lnglat.lat];
41
- });
42
-
43
- viewer.on("mapmove", () => {
44
- event.trigger("view-change");
45
- });
46
-
47
- viewer.on("click", (e) => {
48
- event.trigger("left-click");
49
- });
50
-
51
- viewer.on("dblclick", (e) => {
52
- map.event.trigger("double-click");
53
- });
54
- }
1
+ import { AMap } from "./AMap";
2
+
3
+ /**
4
+ * 高德地图事件
5
+ * 高德地图 元素事件由各自元素处理
6
+ * @param map
7
+ */
8
+ export function bindEvent(map: AMap) {
9
+ const { event, viewer, container } = map;
10
+
11
+ const frame = () => {
12
+ if (map.isAlive) {
13
+ requestAnimationFrame(frame);
14
+ event.trigger("view-preRender");
15
+ map.bussinesses.forEach((e) => e.show && e.onFrame?.());
16
+ }
17
+ };
18
+ frame();
19
+
20
+ viewer.on("moveend", (e) => {
21
+ event.trigger("view-moveEnd");
22
+ event.trigger("view-change");
23
+ });
24
+
25
+ container.addEventListener("mousedown", (e) => {
26
+ event.trigger("pointer-down");
27
+ });
28
+
29
+ container.addEventListener("mouseup", (e) => {
30
+ event.trigger("pointer-up");
31
+ });
32
+
33
+ // 解决 ReactPoint 点击事件无法触发的问题
34
+ container.addEventListener("click", (e) => {
35
+ event.trigger("left-click");
36
+ });
37
+
38
+ viewer.on("mousemove", (e) => {
39
+ event.trigger("pointer-move");
40
+ event.canvas = [e.pixel.x, e.pixel.y];
41
+ event.geography = [e.lnglat.lng, e.lnglat.lat];
42
+ });
43
+
44
+ viewer.on("mapmove", () => {
45
+ event.trigger("view-change");
46
+ });
47
+
48
+ viewer.on("click", (e) => {
49
+ event.trigger("left-click");
50
+ });
51
+
52
+ viewer.on("dblclick", (e) => {
53
+ map.event.trigger("double-click");
54
+ });
55
+ }
@@ -1,143 +1,149 @@
1
- import { Point } from "../basic/Point";
2
- import { AMap } from "./AMap";
3
-
4
- const RD = 0.017453292519943295;
5
-
6
- export function drawPoint(map: AMap, point: Point<unknown>) {
7
- const { viewer, event, LbsAMap } = map;
8
- let status = 0;
9
- let marker = null;
10
- const _event = {
11
- onPointerIn() {
12
- point.event.trigger("pointer-in");
13
- },
14
- onPointerOut() {
15
- point.event.trigger("pointer-out");
16
- },
17
- onLClick() {
18
- point.event.trigger("left-click");
19
- },
20
- onRClick(e) {
21
- event.canvas = [e.pixel.x, e.pixel.y];
22
- point.event.trigger("right-click");
23
- },
24
- onPointerDown() {
25
- if (point.editable && status == 2) {
26
- status = 3;
27
- map.moveable = false;
28
- }
29
- },
30
- onPointerUp() {
31
- if (point.editable && status == 3) {
32
- status = 2;
33
- map.moveable = true;
34
- point.coordinates = [event.geography[0], event.geography[1], point.height];
35
- point.event.trigger("data-update");
36
- }
37
- },
38
- };
39
-
40
- const bindEvent = (graphical) => {
41
- graphical.on("click", _event.onLClick);
42
- graphical.on("rightclick", _event.onRClick);
43
- graphical.on("mouseover", _event.onPointerIn);
44
- graphical.on("mouseout", _event.onPointerOut);
45
- };
46
-
47
- const darwMarker = (opt) => {
48
- marker = new LbsAMap.Marker({
49
- ...opt,
50
- title: point._option.name,
51
- icon: new LbsAMap.Icon({
52
- image: point.src,
53
- size: point.size,
54
- imageSize: point.size,
55
- }),
56
- angle: point.rotation * RD,
57
- anchor: point.center,
58
- draggable: point.editable,
59
- extData: {
60
- cursor: point.cursor,
61
- silent: point.silent,
62
- },
63
- });
64
- bindEvent(marker);
65
- viewer.add([marker]);
66
- };
67
-
68
- const eventMarker = (e) => {
69
- darwMarker({ position: new LbsAMap.LngLat(e.lnglat.lng, e.lnglat.lat) });
70
- viewer.off("click", eventMarker);
71
- };
72
-
73
- if (point.coordinates) {
74
- darwMarker({ position: new LbsAMap.LngLat(...point.coordinates) });
75
- } else {
76
- viewer.on("click", eventMarker);
77
- }
78
-
79
- const onUpdate = (e: Set<string>) => {
80
- const keys = new Set();
81
- e.forEach((key) => {
82
- switch (key) {
83
- case "show":
84
- if (status) {
85
- if (point.show) {
86
- marker.show();
87
- } else {
88
- marker.hide();
89
- }
90
- }
91
- break;
92
- case "editable":
93
- marker.setDraggable(point.editable);
94
- break;
95
- case "coordinates":
96
- if (point.coordinates) {
97
- marker.setPosition(point.coordinates);
98
- marker.setzIndex(point.coordinates[2]);
99
- marker.show();
100
- status = 2;
101
- } else {
102
- marker.hide();
103
- status = 0;
104
- }
105
- break;
106
- case "src":
107
- keys.add("icon");
108
- break;
109
- case "size":
110
- keys.add("icon");
111
- break;
112
- case "center":
113
- marker.setAnchor(point.center);
114
- break;
115
- case "rotation":
116
- marker.setAngle(point.rotation * RD);
117
- break;
118
- default:
119
- throw new Error(`${key} 还不支持修改`);
120
- }
121
- });
122
-
123
- keys.forEach((e) => {
124
- switch (e) {
125
- case "icon":
126
- marker.setIcon(
127
- new LbsAMap.Icon({
128
- image: point.src,
129
- size: point.size,
130
- imageSize: point.size,
131
- }),
132
- );
133
- break;
134
- }
135
- });
136
- };
137
-
138
- const onDestroy = () => {
139
- marker.remove();
140
- point.event.off("update", onUpdate);
141
- point.event.off("destroy", onDestroy);
142
- };
143
- }
1
+ import { Point } from "../basic/Point";
2
+ import { AMap } from "./AMap";
3
+
4
+ const RD = 0.017453292519943295;
5
+
6
+ export function drawPoint(map: AMap, point: Point<unknown>) {
7
+ const { viewer, event, LbsAMap } = map;
8
+ let status = 0;
9
+ let marker = null;
10
+ const _event = {
11
+ onPointerIn() {
12
+ point.event.trigger("pointer-in");
13
+ },
14
+ onPointerOut() {
15
+ point.event.trigger("pointer-out");
16
+ },
17
+ onLClick() {
18
+ point.event.trigger("left-click");
19
+ },
20
+ onRClick(e) {
21
+ event.canvas = [e.pixel.x, e.pixel.y];
22
+ point.event.trigger("right-click");
23
+ },
24
+ onPointerDown() {
25
+ if (point.editable && status == 2) {
26
+ status = 3;
27
+ map.moveable = false;
28
+ }
29
+ },
30
+ onPointerUp() {
31
+ if (point.editable && status == 3) {
32
+ status = 2;
33
+ map.moveable = true;
34
+ point.coordinates = [event.geography[0], event.geography[1], point.coordinates[2] ?? point.height];
35
+ point.event.trigger("data-update");
36
+ }
37
+ },
38
+ };
39
+
40
+ const bindEvent = (graphical) => {
41
+ graphical.on("click", _event.onLClick);
42
+ graphical.on("rightclick", _event.onRClick);
43
+ graphical.on("mouseover", _event.onPointerIn);
44
+ graphical.on("mouseout", _event.onPointerOut);
45
+ };
46
+
47
+ const darwMarker = (opt) => {
48
+ marker = new LbsAMap.Marker({
49
+ ...opt,
50
+ title: point._option.name,
51
+ icon: new LbsAMap.Icon({
52
+ image: point.src,
53
+ size: point.size,
54
+ imageSize: point.size,
55
+ }),
56
+ angle: point.rotation * RD,
57
+ anchor: point.center,
58
+ draggable: point.editable,
59
+ extData: {
60
+ cursor: point.cursor,
61
+ silent: point.silent,
62
+ },
63
+ });
64
+ bindEvent(marker);
65
+ viewer.add([marker]);
66
+ };
67
+
68
+ const eventMarker = (e) => {
69
+ darwMarker({
70
+ position: new LbsAMap.LngLat(e.lnglat.lng, e.lnglat.lat),
71
+ height: point.coordinates[2] ?? point.height,
72
+ });
73
+ viewer.off("click", eventMarker);
74
+ };
75
+
76
+ if (point.coordinates) {
77
+ darwMarker({
78
+ position: new LbsAMap.LngLat(point.coordinates[0], point.coordinates[1]),
79
+ height: point.coordinates[2] ?? point.height,
80
+ });
81
+ } else {
82
+ viewer.on("click", eventMarker);
83
+ }
84
+
85
+ const onUpdate = (e: Set<string>) => {
86
+ const keys = new Set();
87
+ e.forEach((key) => {
88
+ switch (key) {
89
+ case "show":
90
+ if (status) {
91
+ if (point.show) {
92
+ marker.show();
93
+ } else {
94
+ marker.hide();
95
+ }
96
+ }
97
+ break;
98
+ case "editable":
99
+ marker.setDraggable(point.editable);
100
+ break;
101
+ case "coordinates":
102
+ if (point.coordinates) {
103
+ marker.setPosition(point.coordinates);
104
+ marker.setzIndex(point.coordinates[2]);
105
+ marker.show();
106
+ status = 2;
107
+ } else {
108
+ marker.hide();
109
+ status = 0;
110
+ }
111
+ break;
112
+ case "src":
113
+ keys.add("icon");
114
+ break;
115
+ case "size":
116
+ keys.add("icon");
117
+ break;
118
+ case "center":
119
+ marker.setAnchor(point.center);
120
+ break;
121
+ case "rotation":
122
+ marker.setAngle(point.rotation * RD);
123
+ break;
124
+ default:
125
+ throw new Error(`${key} 还不支持修改`);
126
+ }
127
+ });
128
+
129
+ keys.forEach((e) => {
130
+ switch (e) {
131
+ case "icon":
132
+ marker.setIcon(
133
+ new LbsAMap.Icon({
134
+ image: point.src,
135
+ size: point.size,
136
+ imageSize: point.size,
137
+ }),
138
+ );
139
+ break;
140
+ }
141
+ });
142
+ };
143
+
144
+ const onDestroy = () => {
145
+ marker.remove();
146
+ point.event.off("update", onUpdate);
147
+ point.event.off("destroy", onDestroy);
148
+ };
149
+ }