hj-gis-sdk 1.0.0 → 1.0.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/README.md +50 -59
- package/dev-dist/animation.esm.js +152 -0
- package/dev-dist/animation.esm.js.map +1 -0
- package/dev-dist/animation.js +154 -0
- package/dev-dist/animation.js.map +1 -0
- package/dev-dist/building.esm.js +85 -0
- package/dev-dist/building.esm.js.map +1 -0
- package/dev-dist/building.js +87 -0
- package/dev-dist/building.js.map +1 -0
- package/dev-dist/common.esm.js +16159 -0
- package/dev-dist/common.esm.js.map +1 -0
- package/dev-dist/common.js +16163 -0
- package/dev-dist/common.js.map +1 -0
- package/dev-dist/fence.esm.js +100 -0
- package/dev-dist/fence.esm.js.map +1 -0
- package/dev-dist/fence.js +102 -0
- package/dev-dist/fence.js.map +1 -0
- package/dev-dist/ghost.esm.js +53 -0
- package/dev-dist/ghost.esm.js.map +1 -0
- package/dev-dist/ghost.js +55 -0
- package/dev-dist/ghost.js.map +1 -0
- package/dev-dist/heatmap.esm.js +103 -0
- package/dev-dist/heatmap.esm.js.map +1 -0
- package/dev-dist/heatmap.js +105 -0
- package/dev-dist/heatmap.js.map +1 -0
- package/dev-dist/index.esm.js +21 -0
- package/dev-dist/index.esm.js.map +1 -0
- package/dev-dist/index.esm2.js +4272 -0
- package/dev-dist/index.esm2.js.map +1 -0
- package/dev-dist/index.js +26 -0
- package/dev-dist/index.js.map +1 -0
- package/dev-dist/index2.js +4280 -0
- package/dev-dist/index2.js.map +1 -0
- package/dev-dist/keyframe.esm.js +95 -0
- package/dev-dist/keyframe.esm.js.map +1 -0
- package/dev-dist/keyframe.js +97 -0
- package/dev-dist/keyframe.js.map +1 -0
- package/dev-dist/measurement.esm.js +57 -0
- package/dev-dist/measurement.esm.js.map +1 -0
- package/dev-dist/measurement.js +59 -0
- package/dev-dist/measurement.js.map +1 -0
- package/dev-dist/scatter.esm.js +85 -0
- package/dev-dist/scatter.esm.js.map +1 -0
- package/dev-dist/scatter.js +87 -0
- package/dev-dist/scatter.js.map +1 -0
- package/dev-dist/src.esm.js +289 -0
- package/dev-dist/src.esm.js.map +1 -0
- package/dev-dist/src.js +291 -0
- package/dev-dist/src.js.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/animate-clip.d.ts +39 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/animate-clip.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/animation-action.d.ts +31 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/animation-action.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/animation-mixer.d.ts +18 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/animation-mixer.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/index.d.ts +5 -0
- package/dev-dist/types/hj-gis-sdk/addons/animation/index.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/camera.d.ts +59 -0
- package/dev-dist/types/hj-gis-sdk/addons/camera.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/clock.d.ts +40 -0
- package/dev-dist/types/hj-gis-sdk/addons/clock.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/commander/context.d.ts +24 -0
- package/dev-dist/types/hj-gis-sdk/addons/commander/context.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/commander/dispatcher.d.ts +43 -0
- package/dev-dist/types/hj-gis-sdk/addons/commander/dispatcher.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/commander/excutor/base.d.ts +22 -0
- package/dev-dist/types/hj-gis-sdk/addons/commander/excutor/base.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/loader/index.d.ts +6 -0
- package/dev-dist/types/hj-gis-sdk/addons/loader/index.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/loader/loader.d.ts +4 -0
- package/dev-dist/types/hj-gis-sdk/addons/loader/loader.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/node/base.d.ts +63 -0
- package/dev-dist/types/hj-gis-sdk/addons/node/base.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/node/ue-node.d.ts +82 -0
- package/dev-dist/types/hj-gis-sdk/addons/node/ue-node.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/proxy.d.ts +83 -0
- package/dev-dist/types/hj-gis-sdk/addons/proxy.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/base.d.ts +7 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/base.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/building.d.ts +36 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/building.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/daytime.d.ts +7 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/daytime.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/fence.d.ts +61 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/fence.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/ghost.d.ts +14 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/ghost.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/heat-map.d.ts +65 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/heat-map.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/index.d.ts +26 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/index.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/match-view.d.ts +7 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/match-view.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/measurement.d.ts +13 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/measurement.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/pick-cast.d.ts +26 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/pick-cast.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/scatter.d.ts +57 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/scatter.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/weather.d.ts +31 -0
- package/dev-dist/types/hj-gis-sdk/addons/tools/weather.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/transform.d.ts +91 -0
- package/dev-dist/types/hj-gis-sdk/addons/transform.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/addons/world.d.ts +76 -0
- package/dev-dist/types/hj-gis-sdk/addons/world.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/core/ue-rpc.d.ts +54 -0
- package/dev-dist/types/hj-gis-sdk/core/ue-rpc.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/index.d.ts +27 -0
- package/dev-dist/types/hj-gis-sdk/index.d.ts.map +1 -0
- package/dev-dist/types/hj-gis-sdk/utils.d.ts +16 -0
- package/dev-dist/types/hj-gis-sdk/utils.d.ts.map +1 -0
- package/dev-dist/types/src/animation.d.ts +2 -0
- package/dev-dist/types/src/animation.d.ts.map +1 -0
- package/dev-dist/types/src/building.d.ts +2 -0
- package/dev-dist/types/src/building.d.ts.map +1 -0
- package/dev-dist/types/src/common.d.ts +5 -0
- package/dev-dist/types/src/common.d.ts.map +1 -0
- package/dev-dist/types/src/fence.d.ts +2 -0
- package/dev-dist/types/src/fence.d.ts.map +1 -0
- package/dev-dist/types/src/ghost.d.ts +2 -0
- package/dev-dist/types/src/ghost.d.ts.map +1 -0
- package/dev-dist/types/src/heatmap.d.ts +2 -0
- package/dev-dist/types/src/heatmap.d.ts.map +1 -0
- package/dev-dist/types/src/index.d.ts +2 -0
- package/dev-dist/types/src/index.d.ts.map +1 -0
- package/dev-dist/types/src/keyframe.d.ts +2 -0
- package/dev-dist/types/src/keyframe.d.ts.map +1 -0
- package/dev-dist/types/src/measurement.d.ts +2 -0
- package/dev-dist/types/src/measurement.d.ts.map +1 -0
- package/dev-dist/types/src/scatter.d.ts +2 -0
- package/dev-dist/types/src/scatter.d.ts.map +1 -0
- package/dev-dist/types/src/weather.d.ts +2 -0
- package/dev-dist/types/src/weather.d.ts.map +1 -0
- package/dev-dist/weather.esm.js +68 -0
- package/dev-dist/weather.esm.js.map +1 -0
- package/dev-dist/weather.js +70 -0
- package/dev-dist/weather.js.map +1 -0
- package/dist/sdk.esm.js +19 -6
- package/dist/sdk.esm.js.map +1 -1
- package/dist/sdk.js +19 -6
- package/dist/sdk.js.map +1 -1
- package/dist/sdk.umd.js +1 -1
- package/dist/sdk.umd.js.map +1 -1
- package/dist/types/hj-gis-sdk/addons/tools/scatter.d.ts.map +1 -1
- package/dist/types/src/common.d.ts.map +1 -1
- package/hj-gis-sdk/addons/animation/animate-clip.ts +93 -0
- package/hj-gis-sdk/addons/animation/animation-action.ts +93 -0
- package/hj-gis-sdk/addons/animation/animation-mixer.ts +51 -0
- package/hj-gis-sdk/addons/animation/index.ts +17 -0
- package/hj-gis-sdk/addons/camera.ts +173 -0
- package/hj-gis-sdk/addons/clock.ts +85 -0
- package/hj-gis-sdk/addons/commander/context.ts +70 -0
- package/hj-gis-sdk/addons/commander/dispatcher.ts +68 -0
- package/hj-gis-sdk/addons/commander/excutor/base.ts +26 -0
- package/hj-gis-sdk/addons/loader/index.ts +7 -0
- package/hj-gis-sdk/addons/loader/loader.ts +3 -0
- package/hj-gis-sdk/addons/node/base.ts +131 -0
- package/hj-gis-sdk/addons/node/ue-node.ts +147 -0
- package/hj-gis-sdk/addons/proxy.ts +200 -0
- package/hj-gis-sdk/addons/tools/base.ts +11 -0
- package/hj-gis-sdk/addons/tools/building.ts +84 -0
- package/hj-gis-sdk/addons/tools/daytime.ts +14 -0
- package/hj-gis-sdk/addons/tools/fence.ts +105 -0
- package/hj-gis-sdk/addons/tools/ghost.ts +31 -0
- package/hj-gis-sdk/addons/tools/heat-map.ts +95 -0
- package/hj-gis-sdk/addons/tools/index.ts +25 -0
- package/hj-gis-sdk/addons/tools/match-view.ts +35 -0
- package/hj-gis-sdk/addons/tools/measurement.ts +25 -0
- package/hj-gis-sdk/addons/tools/pick-cast.ts +67 -0
- package/hj-gis-sdk/addons/tools/scatter.ts +230 -0
- package/hj-gis-sdk/addons/tools/weather.ts +40 -0
- package/hj-gis-sdk/addons/transform.ts +126 -0
- package/hj-gis-sdk/addons/world.ts +173 -0
- package/hj-gis-sdk/core/ue-rpc.ts +234 -0
- package/hj-gis-sdk/index.ts +26 -0
- package/hj-gis-sdk/utils.ts +52 -0
- package/index.html +48 -0
- package/package-lock.json +7368 -0
- package/package.json +17 -4
- package/rollup.config.dev.js +107 -0
- package/rollup.config.js +52 -0
- package/src/animation.ts +175 -0
- package/src/building.ts +114 -0
- package/src/common.ts +47 -0
- package/src/fence.ts +131 -0
- package/src/ghost.ts +70 -0
- package/src/heatmap.ts +125 -0
- package/src/index.ts +350 -0
- package/src/keyframe.ts +113 -0
- package/src/measurement.ts +80 -0
- package/src/scatter.ts +105 -0
- package/src/weather.ts +86 -0
- package/tsconfig.json +30 -0
- package/yarn.lock +3108 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
import { G as GUI, i as initializeApp } from './common.esm.js';
|
|
4
|
+
import { L as Logger, c as LogLevel } from './index.esm2.js';
|
|
5
|
+
|
|
6
|
+
/// 电子围栏
|
|
7
|
+
Logger.InitLogging(LogLevel.Info, false);
|
|
8
|
+
let world;
|
|
9
|
+
let camera;
|
|
10
|
+
async function _initializeApp() {
|
|
11
|
+
// const url = `ws://120.27.198.158:9001/player`
|
|
12
|
+
const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`;
|
|
13
|
+
const AppElement = document.querySelector('#ue');
|
|
14
|
+
let result = await initializeApp(url, AppElement);
|
|
15
|
+
world = result.world;
|
|
16
|
+
camera = result.camera;
|
|
17
|
+
// 加载地图 并 调整 camera 的站位
|
|
18
|
+
await world.loadLevelByName('plgz');
|
|
19
|
+
camera.transform.rotation.pitch = -24.621778868125325;
|
|
20
|
+
camera.transform.rotation.yaw = -105.8061416023954;
|
|
21
|
+
camera.transform.rotation.roll = -0.000008784850083129122;
|
|
22
|
+
camera.transform.position.set(-237278.78546608693, -3452.7198396154936, 18918.349286794506);
|
|
23
|
+
}
|
|
24
|
+
// 判断 window 是否初始化完成
|
|
25
|
+
if (document.readyState === 'loading') {
|
|
26
|
+
// 文档正在加载,等待DOMContentLoaded事件
|
|
27
|
+
document.addEventListener('DOMContentLoaded', _initializeApp);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// 文档已经加载完成,直接初始化应用
|
|
31
|
+
_initializeApp();
|
|
32
|
+
}
|
|
33
|
+
let handler;
|
|
34
|
+
const gui = new GUI();
|
|
35
|
+
async function createFence() {
|
|
36
|
+
if (pickPoint.length < 4) {
|
|
37
|
+
Logger.Error(`请先点选电子围栏坐标 必须大于 4 个点'`);
|
|
38
|
+
alert('请先点选电子围栏坐标 必须大于 4 个点');
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (handler) {
|
|
42
|
+
await handler.remove();
|
|
43
|
+
handler = undefined;
|
|
44
|
+
}
|
|
45
|
+
handler = await world.tools.fence.create({
|
|
46
|
+
vectorArray: pickPoint,
|
|
47
|
+
height: fenceConfig.height,
|
|
48
|
+
color: fenceConfig.color
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// GUI 配置参数
|
|
52
|
+
const fenceConfig = {
|
|
53
|
+
height: 2000, // 默认高度
|
|
54
|
+
color: {
|
|
55
|
+
R: 0,
|
|
56
|
+
G: 0,
|
|
57
|
+
B: 255,
|
|
58
|
+
A: 255
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
// 默认的数据
|
|
62
|
+
let pickPoint = [
|
|
63
|
+
{ X: -246221.0796922246, Y: -32072.524457131625, Z: 1745.0013945392457 },
|
|
64
|
+
{ X: -243099.5648544035, Y: -21702.59371692306, Z: 1744.9990816078753 },
|
|
65
|
+
{ X: -239620.4587922823, Y: -23366.489133662646, Z: 1745.0001235060408 },
|
|
66
|
+
{ X: -241704.08632315777, Y: -33198.77387552471, Z: 1745.000323218097 }
|
|
67
|
+
];
|
|
68
|
+
// 添加高度控制
|
|
69
|
+
gui.add(fenceConfig, 'height', 0, 50000, 1).name('围栏高度');
|
|
70
|
+
// 添加颜色控制
|
|
71
|
+
const colorFolder = gui.addFolder('围栏颜色');
|
|
72
|
+
colorFolder.add(fenceConfig.color, 'R', 0, 255, 1).name('红色');
|
|
73
|
+
colorFolder.add(fenceConfig.color, 'G', 0, 255, 1).name('绿色');
|
|
74
|
+
colorFolder.add(fenceConfig.color, 'B', 0, 255, 1).name('蓝色');
|
|
75
|
+
colorFolder.add(fenceConfig.color, 'A', 0, 255, 1).name('透明度');
|
|
76
|
+
colorFolder.open();
|
|
77
|
+
gui
|
|
78
|
+
.add({
|
|
79
|
+
// 通过点选坐标,自定义生成围栏
|
|
80
|
+
pick: async () => {
|
|
81
|
+
pickPoint.length = 0;
|
|
82
|
+
world.tools.pickCast.pick((data) => {
|
|
83
|
+
pickPoint.push(data.World);
|
|
84
|
+
}, 1000000, true);
|
|
85
|
+
}
|
|
86
|
+
}, 'pick')
|
|
87
|
+
.name('点选电子围栏坐标');
|
|
88
|
+
gui
|
|
89
|
+
.add({
|
|
90
|
+
fence: createFence
|
|
91
|
+
}, 'fence')
|
|
92
|
+
.name('生成电子围栏');
|
|
93
|
+
gui
|
|
94
|
+
.add({
|
|
95
|
+
destroy() {
|
|
96
|
+
handler && handler.remove();
|
|
97
|
+
}
|
|
98
|
+
}, 'destroy')
|
|
99
|
+
.name('销毁电子围栏');
|
|
100
|
+
//# sourceMappingURL=fence.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fence.esm.js","sources":["../src/fence.ts"],"sourcesContent":["/// 电子围栏\n\nimport { PerspectiveCamera } from 'hj-gis-sdk/addons/camera'\nimport { initializeApp } from './common'\nimport { Addons } from 'hj-gis-sdk'\nimport GUI from 'lil-gui'\nimport { Logger, LogLevel } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5'\nconst { World } = Addons\n\nLogger.InitLogging(LogLevel.Info, false)\nlet world: InstanceType<typeof World>\nlet camera: InstanceType<typeof PerspectiveCamera>\nasync function _initializeApp() {\n // const url = `ws://120.27.198.158:9001/player`\n const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`\n const AppElement = document.querySelector('#ue')! as HTMLElement\n let result = await initializeApp(url, AppElement)\n world = result.world\n camera = result.camera\n\n // 加载地图 并 调整 camera 的站位\n await world!.loadLevelByName('plgz')\n\n camera!.transform.rotation.pitch = -24.621778868125325\n camera!.transform.rotation.yaw = -105.8061416023954\n camera!.transform.rotation.roll = -0.000008784850083129122\n camera!.transform.position.set(\n -237278.78546608693,\n -3452.7198396154936,\n 18918.349286794506\n )\n}\n\n// 判断 window 是否初始化完成\nif (document.readyState === 'loading') {\n // 文档正在加载,等待DOMContentLoaded事件\n document.addEventListener('DOMContentLoaded', _initializeApp)\n} else {\n // 文档已经加载完成,直接初始化应用\n _initializeApp()\n}\n\nlet handler: Awaited<ReturnType<typeof world.tools.fence.create>> | undefined\nconst gui = new GUI()\n\nasync function createFence() {\n if (pickPoint.length < 4) {\n Logger.Error(`请先点选电子围栏坐标 必须大于 4 个点'`)\n alert('请先点选电子围栏坐标 必须大于 4 个点')\n return\n }\n if (handler) {\n await handler.remove()\n handler = undefined\n }\n\n handler = await world.tools.fence.create({\n vectorArray: pickPoint,\n height: fenceConfig.height,\n color: fenceConfig.color\n })\n}\n\n// GUI 配置参数\nconst fenceConfig = {\n height: 2000, // 默认高度\n color: {\n R: 0,\n G: 0,\n B: 255,\n A: 255\n }\n}\n\n// 默认的数据\nlet pickPoint = [\n { X: -246221.0796922246, Y: -32072.524457131625, Z: 1745.0013945392457 },\n { X: -243099.5648544035, Y: -21702.59371692306, Z: 1744.9990816078753 },\n { X: -239620.4587922823, Y: -23366.489133662646, Z: 1745.0001235060408 },\n { X: -241704.08632315777, Y: -33198.77387552471, Z: 1745.000323218097 }\n]\n\n// 添加高度控制\ngui.add(fenceConfig, 'height', 0, 50000, 1).name('围栏高度')\n\n// 添加颜色控制\nconst colorFolder = gui.addFolder('围栏颜色')\ncolorFolder.add(fenceConfig.color, 'R', 0, 255, 1).name('红色')\ncolorFolder.add(fenceConfig.color, 'G', 0, 255, 1).name('绿色')\ncolorFolder.add(fenceConfig.color, 'B', 0, 255, 1).name('蓝色')\ncolorFolder.add(fenceConfig.color, 'A', 0, 255, 1).name('透明度')\ncolorFolder.open()\n\ngui\n .add(\n {\n // 通过点选坐标,自定义生成围栏\n pick: async () => {\n pickPoint.length = 0\n world.tools.pickCast.pick(\n (data) => {\n pickPoint.push(data.World)\n },\n 1_000_000,\n true\n )\n }\n },\n 'pick'\n )\n .name('点选电子围栏坐标')\n\ngui\n .add(\n {\n fence: createFence\n },\n 'fence'\n )\n .name('生成电子围栏')\n\ngui\n .add(\n {\n destroy() {\n handler && handler.remove()\n }\n },\n 'destroy'\n )\n .name('销毁电子围栏')\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var common = require('./common.js');
|
|
6
|
+
var index = require('./index2.js');
|
|
7
|
+
|
|
8
|
+
/// 电子围栏
|
|
9
|
+
index.Logger.InitLogging(index.LogLevel.Info, false);
|
|
10
|
+
let world;
|
|
11
|
+
let camera;
|
|
12
|
+
async function _initializeApp() {
|
|
13
|
+
// const url = `ws://120.27.198.158:9001/player`
|
|
14
|
+
const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`;
|
|
15
|
+
const AppElement = document.querySelector('#ue');
|
|
16
|
+
let result = await common.initializeApp(url, AppElement);
|
|
17
|
+
world = result.world;
|
|
18
|
+
camera = result.camera;
|
|
19
|
+
// 加载地图 并 调整 camera 的站位
|
|
20
|
+
await world.loadLevelByName('plgz');
|
|
21
|
+
camera.transform.rotation.pitch = -24.621778868125325;
|
|
22
|
+
camera.transform.rotation.yaw = -105.8061416023954;
|
|
23
|
+
camera.transform.rotation.roll = -0.000008784850083129122;
|
|
24
|
+
camera.transform.position.set(-237278.78546608693, -3452.7198396154936, 18918.349286794506);
|
|
25
|
+
}
|
|
26
|
+
// 判断 window 是否初始化完成
|
|
27
|
+
if (document.readyState === 'loading') {
|
|
28
|
+
// 文档正在加载,等待DOMContentLoaded事件
|
|
29
|
+
document.addEventListener('DOMContentLoaded', _initializeApp);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// 文档已经加载完成,直接初始化应用
|
|
33
|
+
_initializeApp();
|
|
34
|
+
}
|
|
35
|
+
let handler;
|
|
36
|
+
const gui = new common.GUI();
|
|
37
|
+
async function createFence() {
|
|
38
|
+
if (pickPoint.length < 4) {
|
|
39
|
+
index.Logger.Error(`请先点选电子围栏坐标 必须大于 4 个点'`);
|
|
40
|
+
alert('请先点选电子围栏坐标 必须大于 4 个点');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (handler) {
|
|
44
|
+
await handler.remove();
|
|
45
|
+
handler = undefined;
|
|
46
|
+
}
|
|
47
|
+
handler = await world.tools.fence.create({
|
|
48
|
+
vectorArray: pickPoint,
|
|
49
|
+
height: fenceConfig.height,
|
|
50
|
+
color: fenceConfig.color
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
// GUI 配置参数
|
|
54
|
+
const fenceConfig = {
|
|
55
|
+
height: 2000, // 默认高度
|
|
56
|
+
color: {
|
|
57
|
+
R: 0,
|
|
58
|
+
G: 0,
|
|
59
|
+
B: 255,
|
|
60
|
+
A: 255
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
// 默认的数据
|
|
64
|
+
let pickPoint = [
|
|
65
|
+
{ X: -246221.0796922246, Y: -32072.524457131625, Z: 1745.0013945392457 },
|
|
66
|
+
{ X: -243099.5648544035, Y: -21702.59371692306, Z: 1744.9990816078753 },
|
|
67
|
+
{ X: -239620.4587922823, Y: -23366.489133662646, Z: 1745.0001235060408 },
|
|
68
|
+
{ X: -241704.08632315777, Y: -33198.77387552471, Z: 1745.000323218097 }
|
|
69
|
+
];
|
|
70
|
+
// 添加高度控制
|
|
71
|
+
gui.add(fenceConfig, 'height', 0, 50000, 1).name('围栏高度');
|
|
72
|
+
// 添加颜色控制
|
|
73
|
+
const colorFolder = gui.addFolder('围栏颜色');
|
|
74
|
+
colorFolder.add(fenceConfig.color, 'R', 0, 255, 1).name('红色');
|
|
75
|
+
colorFolder.add(fenceConfig.color, 'G', 0, 255, 1).name('绿色');
|
|
76
|
+
colorFolder.add(fenceConfig.color, 'B', 0, 255, 1).name('蓝色');
|
|
77
|
+
colorFolder.add(fenceConfig.color, 'A', 0, 255, 1).name('透明度');
|
|
78
|
+
colorFolder.open();
|
|
79
|
+
gui
|
|
80
|
+
.add({
|
|
81
|
+
// 通过点选坐标,自定义生成围栏
|
|
82
|
+
pick: async () => {
|
|
83
|
+
pickPoint.length = 0;
|
|
84
|
+
world.tools.pickCast.pick((data) => {
|
|
85
|
+
pickPoint.push(data.World);
|
|
86
|
+
}, 1000000, true);
|
|
87
|
+
}
|
|
88
|
+
}, 'pick')
|
|
89
|
+
.name('点选电子围栏坐标');
|
|
90
|
+
gui
|
|
91
|
+
.add({
|
|
92
|
+
fence: createFence
|
|
93
|
+
}, 'fence')
|
|
94
|
+
.name('生成电子围栏');
|
|
95
|
+
gui
|
|
96
|
+
.add({
|
|
97
|
+
destroy() {
|
|
98
|
+
handler && handler.remove();
|
|
99
|
+
}
|
|
100
|
+
}, 'destroy')
|
|
101
|
+
.name('销毁电子围栏');
|
|
102
|
+
//# sourceMappingURL=fence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fence.js","sources":["../src/fence.ts"],"sourcesContent":["/// 电子围栏\n\nimport { PerspectiveCamera } from 'hj-gis-sdk/addons/camera'\nimport { initializeApp } from './common'\nimport { Addons } from 'hj-gis-sdk'\nimport GUI from 'lil-gui'\nimport { Logger, LogLevel } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5'\nconst { World } = Addons\n\nLogger.InitLogging(LogLevel.Info, false)\nlet world: InstanceType<typeof World>\nlet camera: InstanceType<typeof PerspectiveCamera>\nasync function _initializeApp() {\n // const url = `ws://120.27.198.158:9001/player`\n const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`\n const AppElement = document.querySelector('#ue')! as HTMLElement\n let result = await initializeApp(url, AppElement)\n world = result.world\n camera = result.camera\n\n // 加载地图 并 调整 camera 的站位\n await world!.loadLevelByName('plgz')\n\n camera!.transform.rotation.pitch = -24.621778868125325\n camera!.transform.rotation.yaw = -105.8061416023954\n camera!.transform.rotation.roll = -0.000008784850083129122\n camera!.transform.position.set(\n -237278.78546608693,\n -3452.7198396154936,\n 18918.349286794506\n )\n}\n\n// 判断 window 是否初始化完成\nif (document.readyState === 'loading') {\n // 文档正在加载,等待DOMContentLoaded事件\n document.addEventListener('DOMContentLoaded', _initializeApp)\n} else {\n // 文档已经加载完成,直接初始化应用\n _initializeApp()\n}\n\nlet handler: Awaited<ReturnType<typeof world.tools.fence.create>> | undefined\nconst gui = new GUI()\n\nasync function createFence() {\n if (pickPoint.length < 4) {\n Logger.Error(`请先点选电子围栏坐标 必须大于 4 个点'`)\n alert('请先点选电子围栏坐标 必须大于 4 个点')\n return\n }\n if (handler) {\n await handler.remove()\n handler = undefined\n }\n\n handler = await world.tools.fence.create({\n vectorArray: pickPoint,\n height: fenceConfig.height,\n color: fenceConfig.color\n })\n}\n\n// GUI 配置参数\nconst fenceConfig = {\n height: 2000, // 默认高度\n color: {\n R: 0,\n G: 0,\n B: 255,\n A: 255\n }\n}\n\n// 默认的数据\nlet pickPoint = [\n { X: -246221.0796922246, Y: -32072.524457131625, Z: 1745.0013945392457 },\n { X: -243099.5648544035, Y: -21702.59371692306, Z: 1744.9990816078753 },\n { X: -239620.4587922823, Y: -23366.489133662646, Z: 1745.0001235060408 },\n { X: -241704.08632315777, Y: -33198.77387552471, Z: 1745.000323218097 }\n]\n\n// 添加高度控制\ngui.add(fenceConfig, 'height', 0, 50000, 1).name('围栏高度')\n\n// 添加颜色控制\nconst colorFolder = gui.addFolder('围栏颜色')\ncolorFolder.add(fenceConfig.color, 'R', 0, 255, 1).name('红色')\ncolorFolder.add(fenceConfig.color, 'G', 0, 255, 1).name('绿色')\ncolorFolder.add(fenceConfig.color, 'B', 0, 255, 1).name('蓝色')\ncolorFolder.add(fenceConfig.color, 'A', 0, 255, 1).name('透明度')\ncolorFolder.open()\n\ngui\n .add(\n {\n // 通过点选坐标,自定义生成围栏\n pick: async () => {\n pickPoint.length = 0\n world.tools.pickCast.pick(\n (data) => {\n pickPoint.push(data.World)\n },\n 1_000_000,\n true\n )\n }\n },\n 'pick'\n )\n .name('点选电子围栏坐标')\n\ngui\n .add(\n {\n fence: createFence\n },\n 'fence'\n )\n .name('生成电子围栏')\n\ngui\n .add(\n {\n destroy() {\n handler && handler.remove()\n }\n },\n 'destroy'\n )\n .name('销毁电子围栏')\n"],"names":["Logger","LogLevel","initializeApp","GUI"],"mappings":";;;;;;;AAAA;AASAA,YAAM,CAAC,WAAW,CAACC,cAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACxC,IAAI,KAAiC,CAAA;AACrC,IAAI,MAA8C,CAAA;AAClD,eAAe,cAAc,GAAA;;IAE3B,MAAM,GAAG,GAAG,CAAA,4CAAA,CAA8C,CAAA;IAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAiB,CAAA;IAChE,IAAI,MAAM,GAAG,MAAMC,oBAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;AACjD,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;AACpB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;;AAGtB,IAAA,MAAM,KAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAEpC,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,kBAAkB,CAAA;IACtD,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAA;IACnD,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,uBAAuB,CAAA;AAC1D,IAAA,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAC5B,CAAC,kBAAkB,EACnB,CAAC,kBAAkB,EACnB,kBAAkB,CACnB,CAAA;AACH,CAAC;AAED;AACA,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;;AAErC,IAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;AAC/D,CAAC;KAAM;;AAEL,IAAA,cAAc,EAAE,CAAA;AAClB,CAAC;AAED,IAAI,OAAyE,CAAA;AAC7E,MAAM,GAAG,GAAG,IAAIC,UAAG,EAAE,CAAA;AAErB,eAAe,WAAW,GAAA;AACxB,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,QAAAH,YAAM,CAAC,KAAK,CAAC,CAAA,qBAAA,CAAuB,CAAC,CAAA;QACrC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAC7B,OAAM;KACP;IACD,IAAI,OAAO,EAAE;AACX,QAAA,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;QACtB,OAAO,GAAG,SAAS,CAAA;KACpB;IAED,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AACvC,QAAA,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;AACzB,KAAA,CAAC,CAAA;AACJ,CAAC;AAED;AACA,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,IAAI;AACZ,IAAA,KAAK,EAAE;AACL,QAAA,CAAC,EAAE,CAAC;AACJ,QAAA,CAAC,EAAE,CAAC;AACJ,QAAA,CAAC,EAAE,GAAG;AACN,QAAA,CAAC,EAAE,GAAG;AACP,KAAA;CACF,CAAA;AAED;AACA,IAAI,SAAS,GAAG;AACd,IAAA,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,EAAE;AACxE,IAAA,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,kBAAkB,EAAE;AACvE,IAAA,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,EAAE;AACxE,IAAA,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE;CACxE,CAAA;AAED;AACA,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAExD;AACA,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AACzC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7D,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7D,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7D,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC9D,WAAW,CAAC,IAAI,EAAE,CAAA;AAElB,GAAG;AACA,KAAA,GAAG,CACF;;IAEE,IAAI,EAAE,YAAW;AACf,QAAA,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;QACpB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CACvB,CAAC,IAAI,KAAI;AACP,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC5B,SAAC,EACD,OAAS,EACT,IAAI,CACL,CAAA;KACF;AACF,CAAA,EACD,MAAM,CACP;KACA,IAAI,CAAC,UAAU,CAAC,CAAA;AAEnB,GAAG;AACA,KAAA,GAAG,CACF;AACE,IAAA,KAAK,EAAE,WAAW;AACnB,CAAA,EACD,OAAO,CACR;KACA,IAAI,CAAC,QAAQ,CAAC,CAAA;AAEjB,GAAG;AACA,KAAA,GAAG,CACF;IACE,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;KAC5B;AACF,CAAA,EACD,SAAS,CACV;KACA,IAAI,CAAC,QAAQ,CAAC;;"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
import { G as GUI, i as initializeApp } from './common.esm.js';
|
|
4
|
+
import { L as Logger, c as LogLevel } from './index.esm2.js';
|
|
5
|
+
|
|
6
|
+
Logger.InitLogging(LogLevel.Info, false);
|
|
7
|
+
let world;
|
|
8
|
+
let camera;
|
|
9
|
+
let ghostNode;
|
|
10
|
+
async function _initializeApp() {
|
|
11
|
+
// const url = `ws://120.27.198.158:9001/player`
|
|
12
|
+
const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`;
|
|
13
|
+
const AppElement = document.querySelector('#ue');
|
|
14
|
+
let result = await initializeApp(url, AppElement);
|
|
15
|
+
world = result.world;
|
|
16
|
+
camera = result.camera;
|
|
17
|
+
// 确保加载了正确的蓝图对象
|
|
18
|
+
ghostNode = await world.spawnLocalBlueprintActor({
|
|
19
|
+
assetPath: '/Game/Mesh/Lou/Lou.Lou'
|
|
20
|
+
});
|
|
21
|
+
camera.transform.position.x = -80;
|
|
22
|
+
}
|
|
23
|
+
// 判断 window 是否初始化完成
|
|
24
|
+
if (document.readyState === 'loading') {
|
|
25
|
+
// 文档正在加载,等待DOMContentLoaded事件
|
|
26
|
+
document.addEventListener('DOMContentLoaded', _initializeApp);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// 文档已经加载完成,直接初始化应用
|
|
30
|
+
_initializeApp();
|
|
31
|
+
}
|
|
32
|
+
// 创建GUI控制面板
|
|
33
|
+
const gui = new GUI();
|
|
34
|
+
let handle;
|
|
35
|
+
gui
|
|
36
|
+
.add({
|
|
37
|
+
ghost: async () => {
|
|
38
|
+
handle = await world.tools.ghost.ghost(ghostNode);
|
|
39
|
+
}
|
|
40
|
+
}, 'ghost')
|
|
41
|
+
.name('虚化');
|
|
42
|
+
gui
|
|
43
|
+
.add({
|
|
44
|
+
restore: async () => {
|
|
45
|
+
if (!handle) {
|
|
46
|
+
alert('请先虚化');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
handle.restore();
|
|
50
|
+
}
|
|
51
|
+
}, 'restore')
|
|
52
|
+
.name('还原');
|
|
53
|
+
//# sourceMappingURL=ghost.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghost.esm.js","sources":["../src/ghost.ts"],"sourcesContent":["import { Addons } from 'hj-gis-sdk'\n\n/// 幽灵效果示例\n\nimport { PerspectiveCamera } from 'hj-gis-sdk/addons/camera'\nimport { initializeApp } from './common'\n\nimport GUI from 'lil-gui'\nimport { Logger, LogLevel } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5'\n\nLogger.InitLogging(LogLevel.Info, false)\nconst { UERPCNode } = Addons\n\nlet world: InstanceType<typeof Addons.World>\nlet camera: InstanceType<typeof PerspectiveCamera>\n\nlet ghostNode: InstanceType<typeof UERPCNode>\n\nasync function _initializeApp() {\n // const url = `ws://120.27.198.158:9001/player`\n const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`\n const AppElement = document.querySelector('#ue')! as HTMLElement\n let result = await initializeApp(url, AppElement)\n world = result.world\n camera = result.camera\n\n // 确保加载了正确的蓝图对象\n ghostNode = await world.spawnLocalBlueprintActor({\n assetPath: '/Game/Mesh/Lou/Lou.Lou'\n })\n camera.transform.position.x = -80\n}\n\n// 判断 window 是否初始化完成\nif (document.readyState === 'loading') {\n // 文档正在加载,等待DOMContentLoaded事件\n document.addEventListener('DOMContentLoaded', _initializeApp)\n} else {\n // 文档已经加载完成,直接初始化应用\n _initializeApp()\n}\n\n// 创建GUI控制面板\nconst gui = new GUI()\nlet handle: Awaited<ReturnType<typeof world.tools.ghost.ghost>>\ngui\n .add(\n {\n ghost: async () => {\n handle = await world.tools.ghost.ghost(ghostNode)\n }\n },\n 'ghost'\n )\n .name('虚化')\n\ngui\n .add(\n {\n restore: async () => {\n if (!handle) {\n alert('请先虚化')\n return\n }\n handle.restore()\n }\n },\n 'restore'\n )\n .name('还原')\n"],"names":[],"mappings":";;;;;AAUA,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAGxC,IAAI,KAAwC,CAAA;AAC5C,IAAI,MAA8C,CAAA;AAElD,IAAI,SAAyC,CAAA;AAE7C,eAAe,cAAc,GAAA;;IAE3B,MAAM,GAAG,GAAG,CAAA,4CAAA,CAA8C,CAAA;IAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAiB,CAAA;IAChE,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;AACjD,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;AACpB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;;AAGtB,IAAA,SAAS,GAAG,MAAM,KAAK,CAAC,wBAAwB,CAAC;AAC/C,QAAA,SAAS,EAAE,wBAAwB;AACpC,KAAA,CAAC,CAAA;IACF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;AACnC,CAAC;AAED;AACA,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;;AAErC,IAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;AAC/D,CAAC;KAAM;;AAEL,IAAA,cAAc,EAAE,CAAA;AAClB,CAAC;AAED;AACA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;AACrB,IAAI,MAA2D,CAAA;AAC/D,GAAG;AACA,KAAA,GAAG,CACF;IACE,KAAK,EAAE,YAAW;AAChB,QAAA,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;KAClD;AACF,CAAA,EACD,OAAO,CACR;KACA,IAAI,CAAC,IAAI,CAAC,CAAA;AAEb,GAAG;AACA,KAAA,GAAG,CACF;IACE,OAAO,EAAE,YAAW;QAClB,IAAI,CAAC,MAAM,EAAE;YACX,KAAK,CAAC,MAAM,CAAC,CAAA;YACb,OAAM;SACP;QACD,MAAM,CAAC,OAAO,EAAE,CAAA;KACjB;AACF,CAAA,EACD,SAAS,CACV;KACA,IAAI,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var common = require('./common.js');
|
|
6
|
+
var index = require('./index2.js');
|
|
7
|
+
|
|
8
|
+
index.Logger.InitLogging(index.LogLevel.Info, false);
|
|
9
|
+
let world;
|
|
10
|
+
let camera;
|
|
11
|
+
let ghostNode;
|
|
12
|
+
async function _initializeApp() {
|
|
13
|
+
// const url = `ws://120.27.198.158:9001/player`
|
|
14
|
+
const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`;
|
|
15
|
+
const AppElement = document.querySelector('#ue');
|
|
16
|
+
let result = await common.initializeApp(url, AppElement);
|
|
17
|
+
world = result.world;
|
|
18
|
+
camera = result.camera;
|
|
19
|
+
// 确保加载了正确的蓝图对象
|
|
20
|
+
ghostNode = await world.spawnLocalBlueprintActor({
|
|
21
|
+
assetPath: '/Game/Mesh/Lou/Lou.Lou'
|
|
22
|
+
});
|
|
23
|
+
camera.transform.position.x = -80;
|
|
24
|
+
}
|
|
25
|
+
// 判断 window 是否初始化完成
|
|
26
|
+
if (document.readyState === 'loading') {
|
|
27
|
+
// 文档正在加载,等待DOMContentLoaded事件
|
|
28
|
+
document.addEventListener('DOMContentLoaded', _initializeApp);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// 文档已经加载完成,直接初始化应用
|
|
32
|
+
_initializeApp();
|
|
33
|
+
}
|
|
34
|
+
// 创建GUI控制面板
|
|
35
|
+
const gui = new common.GUI();
|
|
36
|
+
let handle;
|
|
37
|
+
gui
|
|
38
|
+
.add({
|
|
39
|
+
ghost: async () => {
|
|
40
|
+
handle = await world.tools.ghost.ghost(ghostNode);
|
|
41
|
+
}
|
|
42
|
+
}, 'ghost')
|
|
43
|
+
.name('虚化');
|
|
44
|
+
gui
|
|
45
|
+
.add({
|
|
46
|
+
restore: async () => {
|
|
47
|
+
if (!handle) {
|
|
48
|
+
alert('请先虚化');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
handle.restore();
|
|
52
|
+
}
|
|
53
|
+
}, 'restore')
|
|
54
|
+
.name('还原');
|
|
55
|
+
//# sourceMappingURL=ghost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghost.js","sources":["../src/ghost.ts"],"sourcesContent":["import { Addons } from 'hj-gis-sdk'\n\n/// 幽灵效果示例\n\nimport { PerspectiveCamera } from 'hj-gis-sdk/addons/camera'\nimport { initializeApp } from './common'\n\nimport GUI from 'lil-gui'\nimport { Logger, LogLevel } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5'\n\nLogger.InitLogging(LogLevel.Info, false)\nconst { UERPCNode } = Addons\n\nlet world: InstanceType<typeof Addons.World>\nlet camera: InstanceType<typeof PerspectiveCamera>\n\nlet ghostNode: InstanceType<typeof UERPCNode>\n\nasync function _initializeApp() {\n // const url = `ws://120.27.198.158:9001/player`\n const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`\n const AppElement = document.querySelector('#ue')! as HTMLElement\n let result = await initializeApp(url, AppElement)\n world = result.world\n camera = result.camera\n\n // 确保加载了正确的蓝图对象\n ghostNode = await world.spawnLocalBlueprintActor({\n assetPath: '/Game/Mesh/Lou/Lou.Lou'\n })\n camera.transform.position.x = -80\n}\n\n// 判断 window 是否初始化完成\nif (document.readyState === 'loading') {\n // 文档正在加载,等待DOMContentLoaded事件\n document.addEventListener('DOMContentLoaded', _initializeApp)\n} else {\n // 文档已经加载完成,直接初始化应用\n _initializeApp()\n}\n\n// 创建GUI控制面板\nconst gui = new GUI()\nlet handle: Awaited<ReturnType<typeof world.tools.ghost.ghost>>\ngui\n .add(\n {\n ghost: async () => {\n handle = await world.tools.ghost.ghost(ghostNode)\n }\n },\n 'ghost'\n )\n .name('虚化')\n\ngui\n .add(\n {\n restore: async () => {\n if (!handle) {\n alert('请先虚化')\n return\n }\n handle.restore()\n }\n },\n 'restore'\n )\n .name('还原')\n"],"names":["Logger","LogLevel","initializeApp","GUI"],"mappings":";;;;;;;AAUAA,YAAM,CAAC,WAAW,CAACC,cAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAGxC,IAAI,KAAwC,CAAA;AAC5C,IAAI,MAA8C,CAAA;AAElD,IAAI,SAAyC,CAAA;AAE7C,eAAe,cAAc,GAAA;;IAE3B,MAAM,GAAG,GAAG,CAAA,4CAAA,CAA8C,CAAA;IAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAiB,CAAA;IAChE,IAAI,MAAM,GAAG,MAAMC,oBAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;AACjD,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;AACpB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;;AAGtB,IAAA,SAAS,GAAG,MAAM,KAAK,CAAC,wBAAwB,CAAC;AAC/C,QAAA,SAAS,EAAE,wBAAwB;AACpC,KAAA,CAAC,CAAA;IACF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;AACnC,CAAC;AAED;AACA,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;;AAErC,IAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;AAC/D,CAAC;KAAM;;AAEL,IAAA,cAAc,EAAE,CAAA;AAClB,CAAC;AAED;AACA,MAAM,GAAG,GAAG,IAAIC,UAAG,EAAE,CAAA;AACrB,IAAI,MAA2D,CAAA;AAC/D,GAAG;AACA,KAAA,GAAG,CACF;IACE,KAAK,EAAE,YAAW;AAChB,QAAA,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;KAClD;AACF,CAAA,EACD,OAAO,CACR;KACA,IAAI,CAAC,IAAI,CAAC,CAAA;AAEb,GAAG;AACA,KAAA,GAAG,CACF;IACE,OAAO,EAAE,YAAW;QAClB,IAAI,CAAC,MAAM,EAAE;YACX,KAAK,CAAC,MAAM,CAAC,CAAA;YACb,OAAM;SACP;QACD,MAAM,CAAC,OAAO,EAAE,CAAA;KACjB;AACF,CAAA,EACD,SAAS,CACV;KACA,IAAI,CAAC,IAAI,CAAC;;"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
import { G as GUI, A as Addons, i as initializeApp } from './common.esm.js';
|
|
4
|
+
import { L as Logger, c as LogLevel } from './index.esm2.js';
|
|
5
|
+
|
|
6
|
+
/// 热力图
|
|
7
|
+
const { World, Transform } = Addons;
|
|
8
|
+
Logger.InitLogging(LogLevel.Info, false);
|
|
9
|
+
let world;
|
|
10
|
+
let camera;
|
|
11
|
+
async function _initializeApp() {
|
|
12
|
+
// const url = `ws://192.168.14.186`
|
|
13
|
+
const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`;
|
|
14
|
+
const AppElement = document.querySelector('#ue');
|
|
15
|
+
let result = await initializeApp(url, AppElement);
|
|
16
|
+
world = result.world;
|
|
17
|
+
camera = result.camera;
|
|
18
|
+
// 加载地图 并 调整 camera 的站位
|
|
19
|
+
await world.loadLevelByName('plgz');
|
|
20
|
+
camera.transform.position.z = 60;
|
|
21
|
+
camera.transform.position.x = -80;
|
|
22
|
+
// camera!.transform.position.y = 000
|
|
23
|
+
// camera!.transform.rotation.pitch = -24.621778868125325
|
|
24
|
+
// camera!.transform.rotation.yaw = -105.8061416023954
|
|
25
|
+
// camera!.transform.rotation.roll = -0.000008784850083129122
|
|
26
|
+
// camera!.transform.position.set(
|
|
27
|
+
// -237278.78546608693,
|
|
28
|
+
// -3452.7198396154936,
|
|
29
|
+
// 18918.349286794506
|
|
30
|
+
// )
|
|
31
|
+
}
|
|
32
|
+
// 判断 window 是否初始化完成
|
|
33
|
+
if (document.readyState === 'loading') {
|
|
34
|
+
// 文档正在加载,等待DOMContentLoaded事件
|
|
35
|
+
document.addEventListener('DOMContentLoaded', _initializeApp);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// 文档已经加载完成,直接初始化应用
|
|
39
|
+
_initializeApp();
|
|
40
|
+
}
|
|
41
|
+
let handler;
|
|
42
|
+
const gui = new GUI();
|
|
43
|
+
// 添加基本的 GUI 控制
|
|
44
|
+
// 这里可以根据热力图的具体功能添加相应的控制项
|
|
45
|
+
// 生成热力图按钮
|
|
46
|
+
gui
|
|
47
|
+
.add({
|
|
48
|
+
generate: async () => {
|
|
49
|
+
// 热力图生成逻辑
|
|
50
|
+
if (handler) {
|
|
51
|
+
await handler.remove();
|
|
52
|
+
handler = undefined;
|
|
53
|
+
}
|
|
54
|
+
let transform = Transform.default();
|
|
55
|
+
transform.scale.scale(5);
|
|
56
|
+
// world.tools.heatMap.create()
|
|
57
|
+
handler = await world.tools.heatMap.create({
|
|
58
|
+
url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,
|
|
59
|
+
transform: transform
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}, 'generate')
|
|
63
|
+
.name('生成图像热力图');
|
|
64
|
+
// gui
|
|
65
|
+
// .add(
|
|
66
|
+
// {
|
|
67
|
+
// generate2: async () => {
|
|
68
|
+
// // 热力图生成逻辑
|
|
69
|
+
// if (handler) {
|
|
70
|
+
// await handler.remove()
|
|
71
|
+
// handler = undefined
|
|
72
|
+
// }
|
|
73
|
+
// // 热力图(点集)
|
|
74
|
+
// const points = [
|
|
75
|
+
// { x: 10, y: 20, count: 5 },
|
|
76
|
+
// { x: 30, y: 40, count: 15 }
|
|
77
|
+
// ]
|
|
78
|
+
// let transform = Transform.default()
|
|
79
|
+
// transform.scale.scale(5)
|
|
80
|
+
// // world.tools.heatMap.create()
|
|
81
|
+
// handler = await world.tools.heatMap.create({
|
|
82
|
+
// // url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,
|
|
83
|
+
// transform: transform,
|
|
84
|
+
// heatMapPoints: points
|
|
85
|
+
// })
|
|
86
|
+
// }
|
|
87
|
+
// },
|
|
88
|
+
// 'generate2'
|
|
89
|
+
// )
|
|
90
|
+
// .name('生成点热力图')
|
|
91
|
+
// 销毁热力图按钮
|
|
92
|
+
gui
|
|
93
|
+
.add({
|
|
94
|
+
destroy: async () => {
|
|
95
|
+
if (handler) {
|
|
96
|
+
await handler.remove();
|
|
97
|
+
handler = undefined;
|
|
98
|
+
console.log('热力图已销毁');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}, 'destroy')
|
|
102
|
+
.name('销毁热力图');
|
|
103
|
+
//# sourceMappingURL=heatmap.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap.esm.js","sources":["../src/heatmap.ts"],"sourcesContent":["/// 热力图\n\nimport { PerspectiveCamera } from 'hj-gis-sdk/addons/camera'\nimport { initializeApp } from './common'\nimport { Addons } from 'hj-gis-sdk'\nimport GUI from 'lil-gui'\nimport { Logger, LogLevel } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5'\nimport UERPCNode from 'hj-gis-sdk/addons/node/ue-node'\n\nconst { World, Transform } = Addons\n\nLogger.InitLogging(LogLevel.Info, false)\nlet world: InstanceType<typeof World>\nlet camera: InstanceType<typeof PerspectiveCamera>\nasync function _initializeApp() {\n // const url = `ws://192.168.14.186`\n const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`\n const AppElement = document.querySelector('#ue')! as HTMLElement\n let result = await initializeApp(url, AppElement)\n world = result.world\n camera = result.camera\n\n // 加载地图 并 调整 camera 的站位\n await world!.loadLevelByName('plgz')\n\n camera!.transform.position.z = 60\n camera!.transform.position.x = -80\n // camera!.transform.position.y = 000\n\n // camera!.transform.rotation.pitch = -24.621778868125325\n // camera!.transform.rotation.yaw = -105.8061416023954\n // camera!.transform.rotation.roll = -0.000008784850083129122\n // camera!.transform.position.set(\n // -237278.78546608693,\n // -3452.7198396154936,\n // 18918.349286794506\n // )\n}\n\n// 判断 window 是否初始化完成\nif (document.readyState === 'loading') {\n // 文档正在加载,等待DOMContentLoaded事件\n document.addEventListener('DOMContentLoaded', _initializeApp)\n} else {\n // 文档已经加载完成,直接初始化应用\n _initializeApp()\n}\n\nlet handler: UERPCNode | undefined\nconst gui = new GUI()\n\n// GUI 配置参数\nconst heatmapConfig = {\n // 可以根据需要添加热力图的配置参数\n}\n\n// 添加基本的 GUI 控制\n// 这里可以根据热力图的具体功能添加相应的控制项\n\n// 生成热力图按钮\ngui\n .add(\n {\n generate: async () => {\n // 热力图生成逻辑\n if (handler) {\n await handler.remove()\n handler = undefined\n }\n let transform = Transform.default()\n transform.scale.scale(5)\n // world.tools.heatMap.create()\n handler = await world.tools.heatMap.create({\n url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,\n transform: transform\n })\n }\n },\n 'generate'\n )\n .name('生成图像热力图')\n\n// gui\n// .add(\n// {\n// generate2: async () => {\n// // 热力图生成逻辑\n// if (handler) {\n// await handler.remove()\n// handler = undefined\n// }\n// // 热力图(点集)\n// const points = [\n// { x: 10, y: 20, count: 5 },\n// { x: 30, y: 40, count: 15 }\n// ]\n// let transform = Transform.default()\n// transform.scale.scale(5)\n// // world.tools.heatMap.create()\n// handler = await world.tools.heatMap.create({\n// // url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,\n// transform: transform,\n// heatMapPoints: points\n// })\n// }\n// },\n// 'generate2'\n// )\n// .name('生成点热力图')\n\n// 销毁热力图按钮\ngui\n .add(\n {\n destroy: async () => {\n if (handler) {\n await handler.remove()\n handler = undefined\n console.log('热力图已销毁')\n }\n }\n },\n 'destroy'\n )\n .name('销毁热力图')\n"],"names":[],"mappings":";;;;;AAAA;AASA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;AAEnC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACxC,IAAI,KAAiC,CAAA;AACrC,IAAI,MAA8C,CAAA;AAClD,eAAe,cAAc,GAAA;;IAE3B,MAAM,GAAG,GAAG,CAAA,4CAAA,CAA8C,CAAA;IAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAiB,CAAA;IAChE,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;AACjD,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;AACpB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;;AAGtB,IAAA,MAAM,KAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAEpC,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAA;IACjC,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;;;;;;;;;;AAWpC,CAAC;AAED;AACA,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;;AAErC,IAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;AAC/D,CAAC;KAAM;;AAEL,IAAA,cAAc,EAAE,CAAA;AAClB,CAAC;AAED,IAAI,OAA8B,CAAA;AAClC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;AAOrB;AACA;AAEA;AACA,GAAG;AACA,KAAA,GAAG,CACF;IACE,QAAQ,EAAE,YAAW;;QAEnB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;YACtB,OAAO,GAAG,SAAS,CAAA;SACpB;AACD,QAAA,IAAI,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,CAAA;AACnC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;;QAExB,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACzC,YAAA,GAAG,EAAE,CAAiF,+EAAA,CAAA;AACtF,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA,CAAC,CAAA;KACH;AACF,CAAA,EACD,UAAU,CACX;KACA,IAAI,CAAC,SAAS,CAAC,CAAA;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,GAAG;AACA,KAAA,GAAG,CACF;IACE,OAAO,EAAE,YAAW;QAClB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;YACtB,OAAO,GAAG,SAAS,CAAA;AACnB,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;SACtB;KACF;AACF,CAAA,EACD,SAAS,CACV;KACA,IAAI,CAAC,OAAO,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var common = require('./common.js');
|
|
6
|
+
var index = require('./index2.js');
|
|
7
|
+
|
|
8
|
+
/// 热力图
|
|
9
|
+
const { World, Transform } = common.Addons;
|
|
10
|
+
index.Logger.InitLogging(index.LogLevel.Info, false);
|
|
11
|
+
let world;
|
|
12
|
+
let camera;
|
|
13
|
+
async function _initializeApp() {
|
|
14
|
+
// const url = `ws://192.168.14.186`
|
|
15
|
+
const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`;
|
|
16
|
+
const AppElement = document.querySelector('#ue');
|
|
17
|
+
let result = await common.initializeApp(url, AppElement);
|
|
18
|
+
world = result.world;
|
|
19
|
+
camera = result.camera;
|
|
20
|
+
// 加载地图 并 调整 camera 的站位
|
|
21
|
+
await world.loadLevelByName('plgz');
|
|
22
|
+
camera.transform.position.z = 60;
|
|
23
|
+
camera.transform.position.x = -80;
|
|
24
|
+
// camera!.transform.position.y = 000
|
|
25
|
+
// camera!.transform.rotation.pitch = -24.621778868125325
|
|
26
|
+
// camera!.transform.rotation.yaw = -105.8061416023954
|
|
27
|
+
// camera!.transform.rotation.roll = -0.000008784850083129122
|
|
28
|
+
// camera!.transform.position.set(
|
|
29
|
+
// -237278.78546608693,
|
|
30
|
+
// -3452.7198396154936,
|
|
31
|
+
// 18918.349286794506
|
|
32
|
+
// )
|
|
33
|
+
}
|
|
34
|
+
// 判断 window 是否初始化完成
|
|
35
|
+
if (document.readyState === 'loading') {
|
|
36
|
+
// 文档正在加载,等待DOMContentLoaded事件
|
|
37
|
+
document.addEventListener('DOMContentLoaded', _initializeApp);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// 文档已经加载完成,直接初始化应用
|
|
41
|
+
_initializeApp();
|
|
42
|
+
}
|
|
43
|
+
let handler;
|
|
44
|
+
const gui = new common.GUI();
|
|
45
|
+
// 添加基本的 GUI 控制
|
|
46
|
+
// 这里可以根据热力图的具体功能添加相应的控制项
|
|
47
|
+
// 生成热力图按钮
|
|
48
|
+
gui
|
|
49
|
+
.add({
|
|
50
|
+
generate: async () => {
|
|
51
|
+
// 热力图生成逻辑
|
|
52
|
+
if (handler) {
|
|
53
|
+
await handler.remove();
|
|
54
|
+
handler = undefined;
|
|
55
|
+
}
|
|
56
|
+
let transform = Transform.default();
|
|
57
|
+
transform.scale.scale(5);
|
|
58
|
+
// world.tools.heatMap.create()
|
|
59
|
+
handler = await world.tools.heatMap.create({
|
|
60
|
+
url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,
|
|
61
|
+
transform: transform
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}, 'generate')
|
|
65
|
+
.name('生成图像热力图');
|
|
66
|
+
// gui
|
|
67
|
+
// .add(
|
|
68
|
+
// {
|
|
69
|
+
// generate2: async () => {
|
|
70
|
+
// // 热力图生成逻辑
|
|
71
|
+
// if (handler) {
|
|
72
|
+
// await handler.remove()
|
|
73
|
+
// handler = undefined
|
|
74
|
+
// }
|
|
75
|
+
// // 热力图(点集)
|
|
76
|
+
// const points = [
|
|
77
|
+
// { x: 10, y: 20, count: 5 },
|
|
78
|
+
// { x: 30, y: 40, count: 15 }
|
|
79
|
+
// ]
|
|
80
|
+
// let transform = Transform.default()
|
|
81
|
+
// transform.scale.scale(5)
|
|
82
|
+
// // world.tools.heatMap.create()
|
|
83
|
+
// handler = await world.tools.heatMap.create({
|
|
84
|
+
// // url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,
|
|
85
|
+
// transform: transform,
|
|
86
|
+
// heatMapPoints: points
|
|
87
|
+
// })
|
|
88
|
+
// }
|
|
89
|
+
// },
|
|
90
|
+
// 'generate2'
|
|
91
|
+
// )
|
|
92
|
+
// .name('生成点热力图')
|
|
93
|
+
// 销毁热力图按钮
|
|
94
|
+
gui
|
|
95
|
+
.add({
|
|
96
|
+
destroy: async () => {
|
|
97
|
+
if (handler) {
|
|
98
|
+
await handler.remove();
|
|
99
|
+
handler = undefined;
|
|
100
|
+
console.log('热力图已销毁');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}, 'destroy')
|
|
104
|
+
.name('销毁热力图');
|
|
105
|
+
//# sourceMappingURL=heatmap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap.js","sources":["../src/heatmap.ts"],"sourcesContent":["/// 热力图\n\nimport { PerspectiveCamera } from 'hj-gis-sdk/addons/camera'\nimport { initializeApp } from './common'\nimport { Addons } from 'hj-gis-sdk'\nimport GUI from 'lil-gui'\nimport { Logger, LogLevel } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5'\nimport UERPCNode from 'hj-gis-sdk/addons/node/ue-node'\n\nconst { World, Transform } = Addons\n\nLogger.InitLogging(LogLevel.Info, false)\nlet world: InstanceType<typeof World>\nlet camera: InstanceType<typeof PerspectiveCamera>\nasync function _initializeApp() {\n // const url = `ws://192.168.14.186`\n const url = `wss://kdyjs-proxy.metamaker.cn/proxy_gis_sdk`\n const AppElement = document.querySelector('#ue')! as HTMLElement\n let result = await initializeApp(url, AppElement)\n world = result.world\n camera = result.camera\n\n // 加载地图 并 调整 camera 的站位\n await world!.loadLevelByName('plgz')\n\n camera!.transform.position.z = 60\n camera!.transform.position.x = -80\n // camera!.transform.position.y = 000\n\n // camera!.transform.rotation.pitch = -24.621778868125325\n // camera!.transform.rotation.yaw = -105.8061416023954\n // camera!.transform.rotation.roll = -0.000008784850083129122\n // camera!.transform.position.set(\n // -237278.78546608693,\n // -3452.7198396154936,\n // 18918.349286794506\n // )\n}\n\n// 判断 window 是否初始化完成\nif (document.readyState === 'loading') {\n // 文档正在加载,等待DOMContentLoaded事件\n document.addEventListener('DOMContentLoaded', _initializeApp)\n} else {\n // 文档已经加载完成,直接初始化应用\n _initializeApp()\n}\n\nlet handler: UERPCNode | undefined\nconst gui = new GUI()\n\n// GUI 配置参数\nconst heatmapConfig = {\n // 可以根据需要添加热力图的配置参数\n}\n\n// 添加基本的 GUI 控制\n// 这里可以根据热力图的具体功能添加相应的控制项\n\n// 生成热力图按钮\ngui\n .add(\n {\n generate: async () => {\n // 热力图生成逻辑\n if (handler) {\n await handler.remove()\n handler = undefined\n }\n let transform = Transform.default()\n transform.scale.scale(5)\n // world.tools.heatMap.create()\n handler = await world.tools.heatMap.create({\n url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,\n transform: transform\n })\n }\n },\n 'generate'\n )\n .name('生成图像热力图')\n\n// gui\n// .add(\n// {\n// generate2: async () => {\n// // 热力图生成逻辑\n// if (handler) {\n// await handler.remove()\n// handler = undefined\n// }\n// // 热力图(点集)\n// const points = [\n// { x: 10, y: 20, count: 5 },\n// { x: 30, y: 40, count: 15 }\n// ]\n// let transform = Transform.default()\n// transform.scale.scale(5)\n// // world.tools.heatMap.create()\n// handler = await world.tools.heatMap.create({\n// // url: `https://img.metamaker.cn/resources/e9ac18042d969b607917e6b378867c83c80294d7.TGA`,\n// transform: transform,\n// heatMapPoints: points\n// })\n// }\n// },\n// 'generate2'\n// )\n// .name('生成点热力图')\n\n// 销毁热力图按钮\ngui\n .add(\n {\n destroy: async () => {\n if (handler) {\n await handler.remove()\n handler = undefined\n console.log('热力图已销毁')\n }\n }\n },\n 'destroy'\n )\n .name('销毁热力图')\n"],"names":["Addons","Logger","LogLevel","initializeApp","GUI"],"mappings":";;;;;;;AAAA;AASA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAGA,aAAM,CAAA;AAEnCC,YAAM,CAAC,WAAW,CAACC,cAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACxC,IAAI,KAAiC,CAAA;AACrC,IAAI,MAA8C,CAAA;AAClD,eAAe,cAAc,GAAA;;IAE3B,MAAM,GAAG,GAAG,CAAA,4CAAA,CAA8C,CAAA;IAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAiB,CAAA;IAChE,IAAI,MAAM,GAAG,MAAMC,oBAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;AACjD,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;AACpB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;;AAGtB,IAAA,MAAM,KAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAEpC,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAA;IACjC,MAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;;;;;;;;;;AAWpC,CAAC;AAED;AACA,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;;AAErC,IAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;AAC/D,CAAC;KAAM;;AAEL,IAAA,cAAc,EAAE,CAAA;AAClB,CAAC;AAED,IAAI,OAA8B,CAAA;AAClC,MAAM,GAAG,GAAG,IAAIC,UAAG,EAAE,CAAA;AAOrB;AACA;AAEA;AACA,GAAG;AACA,KAAA,GAAG,CACF;IACE,QAAQ,EAAE,YAAW;;QAEnB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;YACtB,OAAO,GAAG,SAAS,CAAA;SACpB;AACD,QAAA,IAAI,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,CAAA;AACnC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;;QAExB,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACzC,YAAA,GAAG,EAAE,CAAiF,+EAAA,CAAA;AACtF,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA,CAAC,CAAA;KACH;AACF,CAAA,EACD,UAAU,CACX;KACA,IAAI,CAAC,SAAS,CAAC,CAAA;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,GAAG;AACA,KAAA,GAAG,CACF;IACE,OAAO,EAAE,YAAW;QAClB,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;YACtB,OAAO,GAAG,SAAS,CAAA;AACnB,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;SACtB;KACF;AACF,CAAA,EACD,SAAS,CACV;KACA,IAAI,CAAC,OAAO,CAAC;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
import { W as World, T as Transform, P as PerspectiveCamera, U as UERPCNode, a as WeatherType, M as MeasurementType, A as Animation, b as UERPC } from './index.esm2.js';
|
|
4
|
+
|
|
5
|
+
const Core = {
|
|
6
|
+
UERPC
|
|
7
|
+
};
|
|
8
|
+
const Addons = {
|
|
9
|
+
World,
|
|
10
|
+
Transform,
|
|
11
|
+
PerspectiveCamera,
|
|
12
|
+
UERPCNode,
|
|
13
|
+
WeatherType,
|
|
14
|
+
MeasurementType,
|
|
15
|
+
Animation: {
|
|
16
|
+
...Animation
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { Addons, Core };
|
|
21
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../hj-gis-sdk/index.ts"],"sourcesContent":["import { UERPC } from './core/ue-rpc'\r\nimport World from './addons/world'\r\nimport { Transform } from './addons/transform'\r\nimport { PerspectiveCamera } from './addons/camera'\r\nimport UERPCNode from './addons/node/ue-node'\r\nimport { Clock } from './addons/clock'\r\nimport { WeatherType } from './addons/tools/weather'\r\nimport { MeasurementType } from './addons/tools/measurement'\r\nimport * as Animation from './addons/animation'\r\nconst Core = {\r\n UERPC\r\n}\r\n\r\nconst Addons = {\r\n World,\r\n Transform,\r\n PerspectiveCamera,\r\n UERPCNode,\r\n WeatherType,\r\n MeasurementType,\r\n Animation: {\r\n ...Animation\r\n }\r\n}\r\n\r\nexport { Core, Addons }"],"names":[],"mappings":";;;;AASA,MAAM,IAAI,GAAG;IACX,KAAK;EACN;AAED,MAAM,MAAM,GAAG;IACb,KAAK;IACL,SAAS;IACT,iBAAiB;IACjB,SAAS;IACT,WAAW;IACX,eAAe;AACf,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,SAAS;AACb,KAAA;;;;;"}
|