@hzab/map-combine 0.4.2-alpha.0 → 0.4.2-alpha.2

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,7 @@
2
2
 
3
3
  feat: 点线面 height 设置
4
4
  fix: openlayer getFromLonLat this 指向修复
5
+ break: PointAggregation datas 改为数组对象
5
6
 
6
7
  # @hzab/map-combine@0.4.1
7
8
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/map-combine",
3
- "version": "0.4.2-alpha.0",
3
+ "version": "0.4.2-alpha.2",
4
4
  "description": "地图组件",
5
5
  "main": "src",
6
6
  "scripts": {
@@ -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
+ }