cesium-alpha-earth 1.0.92 → 1.0.94
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/dist/index.js +90 -94
- package/dist/types/core/CesiumAlphaEvent/index.d.ts +19 -44
- package/dist/types/core/CesiumAlphaEvent/index.js +79 -105
- package/dist/types/core/CesiumAlphaEvent/index.js.map +1 -1
- package/dist/types/core/CesiumAlphaEvent/type.d.ts +3 -2
- package/dist/types/core/CesiumAlphaEvent/type.js.map +1 -1
- package/dist/types/core/CesiumAlphaGeoJsonLayer/method/createGraphic.js +2 -2
- package/dist/types/core/CesiumAlphaGeoJsonLayer/method/createGraphic.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -269062,7 +269062,7 @@ function createLineString(geoJsonLayer, geoJson, feature2, options) {
|
|
|
269062
269062
|
let positions2 = feature2.geometry.coordinates.map((coord) => {
|
|
269063
269063
|
return crsFunction(coord);
|
|
269064
269064
|
});
|
|
269065
|
-
let noid = nanoid$1();
|
|
269065
|
+
let noid = feature2.id || nanoid$1();
|
|
269066
269066
|
let lineLength = length(feature2);
|
|
269067
269067
|
const midpoint = along(feature2, lineLength / 2);
|
|
269068
269068
|
let center2 = crsFunction(midpoint.geometry.coordinates);
|
|
@@ -269114,7 +269114,7 @@ function createPolygon(geoJsonLayer, geoJson, feature2, options) {
|
|
|
269114
269114
|
let positions2 = feature2.geometry.coordinates[0].map((coord) => {
|
|
269115
269115
|
return crsFunction(coord);
|
|
269116
269116
|
});
|
|
269117
|
-
let noid = nanoid$1();
|
|
269117
|
+
let noid = feature2.id || nanoid$1();
|
|
269118
269118
|
var center2 = centerOfMass(feature2);
|
|
269119
269119
|
geoJsonLayer.addPolygon({
|
|
269120
269120
|
type: "Polygon",
|
|
@@ -269671,120 +269671,116 @@ async function loadGeoJsonLayer(earthView, layerInfo) {
|
|
|
269671
269671
|
return returnArr;
|
|
269672
269672
|
}
|
|
269673
269673
|
class CesiumAlphaEvent {
|
|
269674
|
-
// 构造函数接收 viewer 实例
|
|
269675
269674
|
constructor(viewer) {
|
|
269676
|
-
|
|
269677
|
-
|
|
269675
|
+
this.events = {
|
|
269676
|
+
LEFT_CLICK: new Event$2(),
|
|
269677
|
+
LEFT_DOWN: new Event$2(),
|
|
269678
|
+
LEFT_UP: new Event$2(),
|
|
269679
|
+
RIGHT_CLICK: new Event$2(),
|
|
269680
|
+
RIGHT_DOWN: new Event$2(),
|
|
269681
|
+
RIGHT_UP: new Event$2(),
|
|
269682
|
+
MOUSE_MOVE: new Event$2()
|
|
269683
|
+
};
|
|
269684
|
+
if (!(viewer == null ? void 0 : viewer.viewer)) {
|
|
269685
|
+
throw new Error("必须传入有效的 CesiumAlphaViewer 实例");
|
|
269678
269686
|
}
|
|
269679
|
-
this._handler = new ScreenSpaceEventHandler(viewer.viewer.scene.canvas);
|
|
269680
269687
|
this._viewer = viewer;
|
|
269681
|
-
this.
|
|
269682
|
-
this.
|
|
269683
|
-
this.LEFT_UP = new Event$2();
|
|
269684
|
-
this.RIGHT_CLICK = new Event$2();
|
|
269685
|
-
this.RIGHT_DOWN = new Event$2();
|
|
269686
|
-
this.RIGHT_UP = new Event$2();
|
|
269687
|
-
this.MOUSE_MOVE = new Event$2();
|
|
269688
|
-
this.initLeftClick();
|
|
269689
|
-
this.initLeftDown();
|
|
269690
|
-
this.initLeftUp();
|
|
269691
|
-
this.initRightClick();
|
|
269692
|
-
this.initRightDown();
|
|
269693
|
-
this.initRightUp();
|
|
269694
|
-
this.initMouseMove();
|
|
269695
|
-
}
|
|
269696
|
-
/**
|
|
269697
|
-
* 初始化鼠标左键单击事件
|
|
269698
|
-
*/
|
|
269699
|
-
initLeftClick() {
|
|
269700
|
-
this._handler.setInputAction((clickEvent) => {
|
|
269701
|
-
this.handleMouseEvent(clickEvent, this.LEFT_CLICK);
|
|
269702
|
-
}, ScreenSpaceEventType$1.LEFT_CLICK);
|
|
269688
|
+
this._handler = new ScreenSpaceEventHandler(viewer.viewer.scene.canvas);
|
|
269689
|
+
this.registerAllEvents();
|
|
269703
269690
|
}
|
|
269704
|
-
|
|
269705
|
-
|
|
269706
|
-
|
|
269707
|
-
initLeftDown() {
|
|
269708
|
-
this._handler.setInputAction((clickEvent) => {
|
|
269709
|
-
this.handleMouseEvent(clickEvent, this.LEFT_DOWN);
|
|
269710
|
-
}, ScreenSpaceEventType$1.LEFT_DOWN);
|
|
269691
|
+
// 快捷访问(兼容旧代码)
|
|
269692
|
+
get LEFT_CLICK() {
|
|
269693
|
+
return this.events.LEFT_CLICK;
|
|
269711
269694
|
}
|
|
269712
|
-
|
|
269713
|
-
|
|
269714
|
-
*/
|
|
269715
|
-
initLeftUp() {
|
|
269716
|
-
this._handler.setInputAction((clickEvent) => {
|
|
269717
|
-
this.handleMouseEvent(clickEvent, this.LEFT_UP);
|
|
269718
|
-
}, ScreenSpaceEventType$1.LEFT_UP);
|
|
269695
|
+
get LEFT_DOWN() {
|
|
269696
|
+
return this.events.LEFT_DOWN;
|
|
269719
269697
|
}
|
|
269720
|
-
|
|
269721
|
-
|
|
269722
|
-
*/
|
|
269723
|
-
initRightClick() {
|
|
269724
|
-
this._handler.setInputAction((clickEvent) => {
|
|
269725
|
-
this.handleMouseEvent(clickEvent, this.RIGHT_CLICK);
|
|
269726
|
-
}, ScreenSpaceEventType$1.RIGHT_CLICK);
|
|
269698
|
+
get LEFT_UP() {
|
|
269699
|
+
return this.events.LEFT_UP;
|
|
269727
269700
|
}
|
|
269728
|
-
|
|
269729
|
-
|
|
269730
|
-
|
|
269731
|
-
|
|
269732
|
-
this.
|
|
269733
|
-
|
|
269734
|
-
|
|
269701
|
+
get RIGHT_CLICK() {
|
|
269702
|
+
return this.events.RIGHT_CLICK;
|
|
269703
|
+
}
|
|
269704
|
+
get RIGHT_DOWN() {
|
|
269705
|
+
return this.events.RIGHT_DOWN;
|
|
269706
|
+
}
|
|
269707
|
+
get RIGHT_UP() {
|
|
269708
|
+
return this.events.RIGHT_UP;
|
|
269709
|
+
}
|
|
269710
|
+
get MOUSE_MOVE() {
|
|
269711
|
+
return this.events.MOUSE_MOVE;
|
|
269735
269712
|
}
|
|
269736
269713
|
/**
|
|
269737
|
-
*
|
|
269714
|
+
* 批量注册所有鼠标事件(支持键盘修饰符)
|
|
269738
269715
|
*/
|
|
269739
|
-
|
|
269740
|
-
|
|
269741
|
-
|
|
269742
|
-
|
|
269716
|
+
registerAllEvents() {
|
|
269717
|
+
const eventMap = [
|
|
269718
|
+
{ name: "LEFT_CLICK", type: ScreenSpaceEventType$1.LEFT_CLICK },
|
|
269719
|
+
{ name: "LEFT_DOWN", type: ScreenSpaceEventType$1.LEFT_DOWN },
|
|
269720
|
+
{ name: "LEFT_UP", type: ScreenSpaceEventType$1.LEFT_UP },
|
|
269721
|
+
{ name: "RIGHT_CLICK", type: ScreenSpaceEventType$1.RIGHT_CLICK },
|
|
269722
|
+
{ name: "RIGHT_DOWN", type: ScreenSpaceEventType$1.RIGHT_DOWN },
|
|
269723
|
+
{ name: "RIGHT_UP", type: ScreenSpaceEventType$1.RIGHT_UP },
|
|
269724
|
+
{ name: "MOUSE_MOVE", type: ScreenSpaceEventType$1.MOUSE_MOVE }
|
|
269725
|
+
];
|
|
269726
|
+
eventMap.forEach(({ name: name2, type }) => {
|
|
269727
|
+
this._handler.setInputAction((event) => {
|
|
269728
|
+
const windowPosition = this.getWindowPosition(type, event);
|
|
269729
|
+
this.handleMouseEvent(windowPosition, this.events[name2], null);
|
|
269730
|
+
}, type);
|
|
269731
|
+
[
|
|
269732
|
+
KeyboardEventModifier$1.CTRL,
|
|
269733
|
+
KeyboardEventModifier$1.SHIFT,
|
|
269734
|
+
KeyboardEventModifier$1.ALT
|
|
269735
|
+
].forEach((modifier) => {
|
|
269736
|
+
this._handler.setInputAction((event) => {
|
|
269737
|
+
const windowPosition = this.getWindowPosition(type, event);
|
|
269738
|
+
this.handleMouseEvent(windowPosition, this.events[name2], modifier);
|
|
269739
|
+
}, type, modifier);
|
|
269740
|
+
});
|
|
269741
|
+
});
|
|
269743
269742
|
}
|
|
269744
269743
|
/**
|
|
269745
|
-
*
|
|
269744
|
+
* 统一获取鼠标坐标(移动事件特殊处理)
|
|
269746
269745
|
*/
|
|
269747
|
-
|
|
269748
|
-
|
|
269749
|
-
this.handleMouseEvent({ position: moveEvent.endPosition }, this.MOUSE_MOVE);
|
|
269750
|
-
}, ScreenSpaceEventType$1.MOUSE_MOVE);
|
|
269746
|
+
getWindowPosition(type, event) {
|
|
269747
|
+
return type === ScreenSpaceEventType$1.MOUSE_MOVE ? event.endPosition : event.position;
|
|
269751
269748
|
}
|
|
269752
269749
|
/**
|
|
269753
|
-
*
|
|
269754
|
-
* @param event 鼠标事件对象
|
|
269755
|
-
* @param targetEvent 要触发的自定义事件
|
|
269750
|
+
* 统一事件处理
|
|
269756
269751
|
*/
|
|
269757
|
-
handleMouseEvent(
|
|
269758
|
-
|
|
269759
|
-
const
|
|
269760
|
-
const
|
|
269752
|
+
handleMouseEvent(windowPosition, targetEvent, modifier) {
|
|
269753
|
+
if (!windowPosition) return;
|
|
269754
|
+
const { viewer } = this._viewer;
|
|
269755
|
+
const pickedObject = viewer.scene.pick(windowPosition);
|
|
269756
|
+
const cartesian11 = viewer.camera.pickEllipsoid(
|
|
269761
269757
|
windowPosition,
|
|
269762
|
-
|
|
269758
|
+
viewer.scene.globe.ellipsoid
|
|
269763
269759
|
);
|
|
269764
|
-
this.
|
|
269760
|
+
const result = this.getPickResult(pickedObject);
|
|
269761
|
+
targetEvent.raiseEvent(result, cartesian11, windowPosition, modifier);
|
|
269765
269762
|
}
|
|
269766
269763
|
/**
|
|
269767
|
-
*
|
|
269768
|
-
* @param pickedObject 拾取到的对象
|
|
269769
|
-
* @param cartesian 笛卡尔坐标
|
|
269770
|
-
* @param windowPosition 屏幕坐标
|
|
269771
|
-
* @param event 要触发的事件对象
|
|
269764
|
+
* 拾取结果解析
|
|
269772
269765
|
*/
|
|
269773
|
-
|
|
269774
|
-
if (defined$1(pickedObject)
|
|
269775
|
-
|
|
269776
|
-
|
|
269777
|
-
|
|
269778
|
-
|
|
269779
|
-
|
|
269780
|
-
|
|
269781
|
-
} else {
|
|
269782
|
-
event.raiseEvent({ type: "primitive", feature: pickedObject.primitive }, cartesian11, windowPosition);
|
|
269783
|
-
}
|
|
269784
|
-
} else {
|
|
269785
|
-
event.raiseEvent(void 0, cartesian11, windowPosition);
|
|
269786
|
-
}
|
|
269766
|
+
getPickResult(pickedObject) {
|
|
269767
|
+
if (!defined$1(pickedObject) || !pickedObject.id) return void 0;
|
|
269768
|
+
const { id } = pickedObject;
|
|
269769
|
+
const feature2 = this._viewer.findFeatureByUID(id);
|
|
269770
|
+
if (feature2) return { type: "geojson", feature: feature2 };
|
|
269771
|
+
if (id) return { type: "entity", feature: id };
|
|
269772
|
+
if (pickedObject.primitive) return { type: "primitive", feature: pickedObject.primitive };
|
|
269773
|
+
return void 0;
|
|
269787
269774
|
}
|
|
269775
|
+
/**
|
|
269776
|
+
* 销毁(防内存泄漏)
|
|
269777
|
+
*/
|
|
269778
|
+
// public destroy() {
|
|
269779
|
+
// if (this._handler) {
|
|
269780
|
+
// this._handler.destroy();
|
|
269781
|
+
// }
|
|
269782
|
+
// Object.values(this.events).forEach((e) => e.removeAll());
|
|
269783
|
+
// }
|
|
269788
269784
|
}
|
|
269789
269785
|
class CesiumAlphaViewer {
|
|
269790
269786
|
constructor(container, option) {
|
|
@@ -1,57 +1,32 @@
|
|
|
1
|
-
import { Event
|
|
2
|
-
import { CesiumEventCallback } from "./type";
|
|
1
|
+
import { Event } from "cesium";
|
|
2
|
+
import { CesiumEventCallback, CesiumEventName } from "./type";
|
|
3
3
|
import CesiumAlphaViewer from "../CesiumAlphaViewer";
|
|
4
4
|
export declare class CesiumAlphaEvent {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
readonly events: Record<CesiumEventName, Event<CesiumEventCallback>>;
|
|
6
|
+
get LEFT_CLICK(): Event<CesiumEventCallback>;
|
|
7
|
+
get LEFT_DOWN(): Event<CesiumEventCallback>;
|
|
8
|
+
get LEFT_UP(): Event<CesiumEventCallback>;
|
|
9
|
+
get RIGHT_CLICK(): Event<CesiumEventCallback>;
|
|
10
|
+
get RIGHT_DOWN(): Event<CesiumEventCallback>;
|
|
11
|
+
get RIGHT_UP(): Event<CesiumEventCallback>;
|
|
12
|
+
get MOUSE_MOVE(): Event<CesiumEventCallback>;
|
|
13
|
+
private readonly _viewer;
|
|
14
|
+
private readonly _handler;
|
|
14
15
|
constructor(viewer: CesiumAlphaViewer);
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
+
* 批量注册所有鼠标事件(支持键盘修饰符)
|
|
17
18
|
*/
|
|
18
|
-
private
|
|
19
|
+
private registerAllEvents;
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
+
* 统一获取鼠标坐标(移动事件特殊处理)
|
|
21
22
|
*/
|
|
22
|
-
private
|
|
23
|
+
private getWindowPosition;
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
private initLeftUp;
|
|
27
|
-
/**
|
|
28
|
-
* 初始化鼠标右键单击事件
|
|
29
|
-
*/
|
|
30
|
-
private initRightClick;
|
|
31
|
-
/**
|
|
32
|
-
* 初始化鼠标右键按下事件
|
|
33
|
-
*/
|
|
34
|
-
private initRightDown;
|
|
35
|
-
/**
|
|
36
|
-
* 初始化鼠标右键抬起事件
|
|
37
|
-
*/
|
|
38
|
-
private initRightUp;
|
|
39
|
-
/**
|
|
40
|
-
* 初始化鼠标移动事件
|
|
41
|
-
*/
|
|
42
|
-
private initMouseMove;
|
|
43
|
-
/**
|
|
44
|
-
* 统一的鼠标事件处理逻辑(所有鼠标事件复用)
|
|
45
|
-
* @param event 鼠标事件对象
|
|
46
|
-
* @param targetEvent 要触发的自定义事件
|
|
25
|
+
* 统一事件处理
|
|
47
26
|
*/
|
|
48
27
|
private handleMouseEvent;
|
|
49
28
|
/**
|
|
50
|
-
*
|
|
51
|
-
* @param pickedObject 拾取到的对象
|
|
52
|
-
* @param cartesian 笛卡尔坐标
|
|
53
|
-
* @param windowPosition 屏幕坐标
|
|
54
|
-
* @param event 要触发的事件对象
|
|
29
|
+
* 拾取结果解析
|
|
55
30
|
*/
|
|
56
|
-
private
|
|
31
|
+
private getPickResult;
|
|
57
32
|
}
|
|
@@ -1,124 +1,98 @@
|
|
|
1
|
-
import { defined, Event, ScreenSpaceEventHandler, ScreenSpaceEventType } from "cesium";
|
|
1
|
+
import { defined, Event, KeyboardEventModifier, ScreenSpaceEventHandler, ScreenSpaceEventType, } from "cesium";
|
|
2
2
|
export class CesiumAlphaEvent {
|
|
3
|
-
//
|
|
3
|
+
// 快捷访问(兼容旧代码)
|
|
4
|
+
get LEFT_CLICK() { return this.events.LEFT_CLICK; }
|
|
5
|
+
get LEFT_DOWN() { return this.events.LEFT_DOWN; }
|
|
6
|
+
get LEFT_UP() { return this.events.LEFT_UP; }
|
|
7
|
+
get RIGHT_CLICK() { return this.events.RIGHT_CLICK; }
|
|
8
|
+
get RIGHT_DOWN() { return this.events.RIGHT_DOWN; }
|
|
9
|
+
get RIGHT_UP() { return this.events.RIGHT_UP; }
|
|
10
|
+
get MOUSE_MOVE() { return this.events.MOUSE_MOVE; }
|
|
4
11
|
constructor(viewer) {
|
|
5
|
-
|
|
6
|
-
|
|
12
|
+
// 事件统一管理
|
|
13
|
+
this.events = {
|
|
14
|
+
LEFT_CLICK: new Event(),
|
|
15
|
+
LEFT_DOWN: new Event(),
|
|
16
|
+
LEFT_UP: new Event(),
|
|
17
|
+
RIGHT_CLICK: new Event(),
|
|
18
|
+
RIGHT_DOWN: new Event(),
|
|
19
|
+
RIGHT_UP: new Event(),
|
|
20
|
+
MOUSE_MOVE: new Event(),
|
|
21
|
+
};
|
|
22
|
+
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.viewer)) {
|
|
23
|
+
throw new Error("必须传入有效的 CesiumAlphaViewer 实例");
|
|
7
24
|
}
|
|
8
|
-
this._handler = new ScreenSpaceEventHandler(viewer.viewer.scene.canvas);
|
|
9
25
|
this._viewer = viewer;
|
|
10
|
-
|
|
11
|
-
this.
|
|
12
|
-
this.LEFT_DOWN = new Event();
|
|
13
|
-
this.LEFT_UP = new Event();
|
|
14
|
-
this.RIGHT_CLICK = new Event();
|
|
15
|
-
this.RIGHT_DOWN = new Event();
|
|
16
|
-
this.RIGHT_UP = new Event();
|
|
17
|
-
this.MOUSE_MOVE = new Event(); // 初始化鼠标移动事件
|
|
18
|
-
// 初始化所有事件处理方法
|
|
19
|
-
this.initLeftClick();
|
|
20
|
-
this.initLeftDown();
|
|
21
|
-
this.initLeftUp();
|
|
22
|
-
this.initRightClick();
|
|
23
|
-
this.initRightDown();
|
|
24
|
-
this.initRightUp();
|
|
25
|
-
this.initMouseMove(); // 初始化鼠标移动事件处理方法
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* 初始化鼠标左键单击事件
|
|
29
|
-
*/
|
|
30
|
-
initLeftClick() {
|
|
31
|
-
this._handler.setInputAction((clickEvent) => {
|
|
32
|
-
this.handleMouseEvent(clickEvent, this.LEFT_CLICK);
|
|
33
|
-
}, ScreenSpaceEventType.LEFT_CLICK);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* 初始化鼠标左键按下事件
|
|
37
|
-
*/
|
|
38
|
-
initLeftDown() {
|
|
39
|
-
this._handler.setInputAction((clickEvent) => {
|
|
40
|
-
this.handleMouseEvent(clickEvent, this.LEFT_DOWN);
|
|
41
|
-
}, ScreenSpaceEventType.LEFT_DOWN);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* 初始化鼠标左键抬起事件
|
|
45
|
-
*/
|
|
46
|
-
initLeftUp() {
|
|
47
|
-
this._handler.setInputAction((clickEvent) => {
|
|
48
|
-
this.handleMouseEvent(clickEvent, this.LEFT_UP);
|
|
49
|
-
}, ScreenSpaceEventType.LEFT_UP);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 初始化鼠标右键单击事件
|
|
53
|
-
*/
|
|
54
|
-
initRightClick() {
|
|
55
|
-
this._handler.setInputAction((clickEvent) => {
|
|
56
|
-
this.handleMouseEvent(clickEvent, this.RIGHT_CLICK);
|
|
57
|
-
}, ScreenSpaceEventType.RIGHT_CLICK);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* 初始化鼠标右键按下事件
|
|
61
|
-
*/
|
|
62
|
-
initRightDown() {
|
|
63
|
-
this._handler.setInputAction((clickEvent) => {
|
|
64
|
-
this.handleMouseEvent(clickEvent, this.RIGHT_DOWN);
|
|
65
|
-
}, ScreenSpaceEventType.RIGHT_DOWN);
|
|
26
|
+
this._handler = new ScreenSpaceEventHandler(viewer.viewer.scene.canvas);
|
|
27
|
+
this.registerAllEvents();
|
|
66
28
|
}
|
|
67
29
|
/**
|
|
68
|
-
*
|
|
30
|
+
* 批量注册所有鼠标事件(支持键盘修饰符)
|
|
69
31
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
32
|
+
registerAllEvents() {
|
|
33
|
+
const eventMap = [
|
|
34
|
+
{ name: "LEFT_CLICK", type: ScreenSpaceEventType.LEFT_CLICK },
|
|
35
|
+
{ name: "LEFT_DOWN", type: ScreenSpaceEventType.LEFT_DOWN },
|
|
36
|
+
{ name: "LEFT_UP", type: ScreenSpaceEventType.LEFT_UP },
|
|
37
|
+
{ name: "RIGHT_CLICK", type: ScreenSpaceEventType.RIGHT_CLICK },
|
|
38
|
+
{ name: "RIGHT_DOWN", type: ScreenSpaceEventType.RIGHT_DOWN },
|
|
39
|
+
{ name: "RIGHT_UP", type: ScreenSpaceEventType.RIGHT_UP },
|
|
40
|
+
{ name: "MOUSE_MOVE", type: ScreenSpaceEventType.MOUSE_MOVE },
|
|
41
|
+
];
|
|
42
|
+
eventMap.forEach(({ name, type }) => {
|
|
43
|
+
// 普通事件(无修饰符)
|
|
44
|
+
this._handler.setInputAction((event) => {
|
|
45
|
+
const windowPosition = this.getWindowPosition(type, event);
|
|
46
|
+
this.handleMouseEvent(windowPosition, this.events[name], null);
|
|
47
|
+
}, type);
|
|
48
|
+
// ==== 👇 核心:自动注册 CTRL / SHIFT / ALT 组合事件 ====
|
|
49
|
+
[
|
|
50
|
+
KeyboardEventModifier.CTRL,
|
|
51
|
+
KeyboardEventModifier.SHIFT,
|
|
52
|
+
KeyboardEventModifier.ALT,
|
|
53
|
+
].forEach((modifier) => {
|
|
54
|
+
this._handler.setInputAction((event) => {
|
|
55
|
+
const windowPosition = this.getWindowPosition(type, event);
|
|
56
|
+
this.handleMouseEvent(windowPosition, this.events[name], modifier);
|
|
57
|
+
}, type, modifier);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
74
60
|
}
|
|
75
61
|
/**
|
|
76
|
-
*
|
|
62
|
+
* 统一获取鼠标坐标(移动事件特殊处理)
|
|
77
63
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
64
|
+
getWindowPosition(type, event) {
|
|
65
|
+
return type === ScreenSpaceEventType.MOUSE_MOVE
|
|
66
|
+
? event.endPosition
|
|
67
|
+
: event.position;
|
|
82
68
|
}
|
|
83
69
|
/**
|
|
84
|
-
*
|
|
85
|
-
* @param event 鼠标事件对象
|
|
86
|
-
* @param targetEvent 要触发的自定义事件
|
|
70
|
+
* 统一事件处理
|
|
87
71
|
*/
|
|
88
|
-
handleMouseEvent(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const pickedObject =
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
this.handlePickResult(pickedObject, cartesian, windowPosition, targetEvent);
|
|
72
|
+
handleMouseEvent(windowPosition, targetEvent, modifier) {
|
|
73
|
+
if (!windowPosition)
|
|
74
|
+
return;
|
|
75
|
+
const { viewer } = this._viewer;
|
|
76
|
+
const pickedObject = viewer.scene.pick(windowPosition);
|
|
77
|
+
const cartesian = viewer.camera.pickEllipsoid(windowPosition, viewer.scene.globe.ellipsoid);
|
|
78
|
+
const result = this.getPickResult(pickedObject);
|
|
79
|
+
targetEvent.raiseEvent(result, cartesian, windowPosition, modifier);
|
|
97
80
|
}
|
|
98
81
|
/**
|
|
99
|
-
*
|
|
100
|
-
* @param pickedObject 拾取到的对象
|
|
101
|
-
* @param cartesian 笛卡尔坐标
|
|
102
|
-
* @param windowPosition 屏幕坐标
|
|
103
|
-
* @param event 要触发的事件对象
|
|
82
|
+
* 拾取结果解析
|
|
104
83
|
*/
|
|
105
|
-
|
|
106
|
-
if (defined(pickedObject)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
event.raiseEvent(undefined, cartesian, windowPosition);
|
|
121
|
-
}
|
|
84
|
+
getPickResult(pickedObject) {
|
|
85
|
+
if (!defined(pickedObject) || !pickedObject.id)
|
|
86
|
+
return undefined;
|
|
87
|
+
const { id } = pickedObject;
|
|
88
|
+
const feature = this._viewer.findFeatureByUID(id);
|
|
89
|
+
if (feature)
|
|
90
|
+
return { type: "geojson", feature };
|
|
91
|
+
if (id)
|
|
92
|
+
return { type: "entity", feature: id };
|
|
93
|
+
if (pickedObject.primitive)
|
|
94
|
+
return { type: "primitive", feature: pickedObject.primitive };
|
|
95
|
+
return undefined;
|
|
122
96
|
}
|
|
123
97
|
}
|
|
124
98
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/CesiumAlphaEvent/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/CesiumAlphaEvent/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Cartesian2, Cartesian3, Entity, Primitive } from "cesium";
|
|
1
|
+
import { Cartesian2, Cartesian3, Entity, KeyboardEventModifier, Primitive } from "cesium";
|
|
2
2
|
import { PrimitiveItem } from "../CesiumAlphaGeoJsonLayer/type";
|
|
3
|
+
export type CesiumEventName = "LEFT_CLICK" | "LEFT_DOWN" | "LEFT_UP" | "RIGHT_CLICK" | "RIGHT_DOWN" | "RIGHT_UP" | "MOUSE_MOVE";
|
|
3
4
|
/**
|
|
4
5
|
* 支持的事件类型
|
|
5
6
|
*/
|
|
@@ -22,5 +23,5 @@ interface GeoJsonFeatureItemType {
|
|
|
22
23
|
feature: PrimitiveItem;
|
|
23
24
|
}
|
|
24
25
|
/** 左键单击回调函数类型:参数为 CesiumLeftClickParams,返回值为 void(无返回) */
|
|
25
|
-
export type CesiumEventCallback = (feature: PrimitiveItemType | EntityItemType | GeoJsonFeatureItemType | undefined, position: Cartesian3 | undefined, windowPosition: Cartesian2) => void;
|
|
26
|
+
export type CesiumEventCallback = (feature: PrimitiveItemType | EntityItemType | GeoJsonFeatureItemType | undefined, position: Cartesian3 | undefined, windowPosition: Cartesian2, modifier?: KeyboardEventModifier | null) => void;
|
|
26
27
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../src/core/CesiumAlphaEvent/type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../src/core/CesiumAlphaEvent/type.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B;;OAEG;IACH,gDAAwB,CAAA;AAC5B,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B"}
|
|
@@ -46,7 +46,7 @@ export function createLineString(geoJsonLayer, geoJson, feature, options) {
|
|
|
46
46
|
let positions = feature.geometry.coordinates.map((coord) => {
|
|
47
47
|
return crsFunction(coord);
|
|
48
48
|
});
|
|
49
|
-
let noid = nanoid();
|
|
49
|
+
let noid = feature.id || nanoid();
|
|
50
50
|
let lineLength = length(feature);
|
|
51
51
|
const midpoint = along(feature, lineLength / 2);
|
|
52
52
|
let center = crsFunction(midpoint.geometry.coordinates);
|
|
@@ -95,7 +95,7 @@ export function createPolygon(geoJsonLayer, geoJson, feature, options) {
|
|
|
95
95
|
let positions = feature.geometry.coordinates[0].map((coord) => {
|
|
96
96
|
return crsFunction(coord);
|
|
97
97
|
});
|
|
98
|
-
let noid = nanoid();
|
|
98
|
+
let noid = feature.id || nanoid();
|
|
99
99
|
var center = centerOfMass(feature);
|
|
100
100
|
geoJsonLayer.addPolygon({
|
|
101
101
|
type: "Polygon",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGraphic.js","sourceRoot":"","sources":["../../../../../src/core/CesiumAlphaGeoJsonLayer/method/createGraphic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createGraphic.js","sourceRoot":"","sources":["../../../../../src/core/CesiumAlphaGeoJsonLayer/method/createGraphic.ts"],"names":[],"mappings":"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"}
|