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.
Files changed (194) hide show
  1. package/README.md +50 -59
  2. package/dev-dist/animation.esm.js +152 -0
  3. package/dev-dist/animation.esm.js.map +1 -0
  4. package/dev-dist/animation.js +154 -0
  5. package/dev-dist/animation.js.map +1 -0
  6. package/dev-dist/building.esm.js +85 -0
  7. package/dev-dist/building.esm.js.map +1 -0
  8. package/dev-dist/building.js +87 -0
  9. package/dev-dist/building.js.map +1 -0
  10. package/dev-dist/common.esm.js +16159 -0
  11. package/dev-dist/common.esm.js.map +1 -0
  12. package/dev-dist/common.js +16163 -0
  13. package/dev-dist/common.js.map +1 -0
  14. package/dev-dist/fence.esm.js +100 -0
  15. package/dev-dist/fence.esm.js.map +1 -0
  16. package/dev-dist/fence.js +102 -0
  17. package/dev-dist/fence.js.map +1 -0
  18. package/dev-dist/ghost.esm.js +53 -0
  19. package/dev-dist/ghost.esm.js.map +1 -0
  20. package/dev-dist/ghost.js +55 -0
  21. package/dev-dist/ghost.js.map +1 -0
  22. package/dev-dist/heatmap.esm.js +103 -0
  23. package/dev-dist/heatmap.esm.js.map +1 -0
  24. package/dev-dist/heatmap.js +105 -0
  25. package/dev-dist/heatmap.js.map +1 -0
  26. package/dev-dist/index.esm.js +21 -0
  27. package/dev-dist/index.esm.js.map +1 -0
  28. package/dev-dist/index.esm2.js +4272 -0
  29. package/dev-dist/index.esm2.js.map +1 -0
  30. package/dev-dist/index.js +26 -0
  31. package/dev-dist/index.js.map +1 -0
  32. package/dev-dist/index2.js +4280 -0
  33. package/dev-dist/index2.js.map +1 -0
  34. package/dev-dist/keyframe.esm.js +95 -0
  35. package/dev-dist/keyframe.esm.js.map +1 -0
  36. package/dev-dist/keyframe.js +97 -0
  37. package/dev-dist/keyframe.js.map +1 -0
  38. package/dev-dist/measurement.esm.js +57 -0
  39. package/dev-dist/measurement.esm.js.map +1 -0
  40. package/dev-dist/measurement.js +59 -0
  41. package/dev-dist/measurement.js.map +1 -0
  42. package/dev-dist/scatter.esm.js +85 -0
  43. package/dev-dist/scatter.esm.js.map +1 -0
  44. package/dev-dist/scatter.js +87 -0
  45. package/dev-dist/scatter.js.map +1 -0
  46. package/dev-dist/src.esm.js +289 -0
  47. package/dev-dist/src.esm.js.map +1 -0
  48. package/dev-dist/src.js +291 -0
  49. package/dev-dist/src.js.map +1 -0
  50. package/dev-dist/types/hj-gis-sdk/addons/animation/animate-clip.d.ts +39 -0
  51. package/dev-dist/types/hj-gis-sdk/addons/animation/animate-clip.d.ts.map +1 -0
  52. package/dev-dist/types/hj-gis-sdk/addons/animation/animation-action.d.ts +31 -0
  53. package/dev-dist/types/hj-gis-sdk/addons/animation/animation-action.d.ts.map +1 -0
  54. package/dev-dist/types/hj-gis-sdk/addons/animation/animation-mixer.d.ts +18 -0
  55. package/dev-dist/types/hj-gis-sdk/addons/animation/animation-mixer.d.ts.map +1 -0
  56. package/dev-dist/types/hj-gis-sdk/addons/animation/index.d.ts +5 -0
  57. package/dev-dist/types/hj-gis-sdk/addons/animation/index.d.ts.map +1 -0
  58. package/dev-dist/types/hj-gis-sdk/addons/camera.d.ts +59 -0
  59. package/dev-dist/types/hj-gis-sdk/addons/camera.d.ts.map +1 -0
  60. package/dev-dist/types/hj-gis-sdk/addons/clock.d.ts +40 -0
  61. package/dev-dist/types/hj-gis-sdk/addons/clock.d.ts.map +1 -0
  62. package/dev-dist/types/hj-gis-sdk/addons/commander/context.d.ts +24 -0
  63. package/dev-dist/types/hj-gis-sdk/addons/commander/context.d.ts.map +1 -0
  64. package/dev-dist/types/hj-gis-sdk/addons/commander/dispatcher.d.ts +43 -0
  65. package/dev-dist/types/hj-gis-sdk/addons/commander/dispatcher.d.ts.map +1 -0
  66. package/dev-dist/types/hj-gis-sdk/addons/commander/excutor/base.d.ts +22 -0
  67. package/dev-dist/types/hj-gis-sdk/addons/commander/excutor/base.d.ts.map +1 -0
  68. package/dev-dist/types/hj-gis-sdk/addons/loader/index.d.ts +6 -0
  69. package/dev-dist/types/hj-gis-sdk/addons/loader/index.d.ts.map +1 -0
  70. package/dev-dist/types/hj-gis-sdk/addons/loader/loader.d.ts +4 -0
  71. package/dev-dist/types/hj-gis-sdk/addons/loader/loader.d.ts.map +1 -0
  72. package/dev-dist/types/hj-gis-sdk/addons/node/base.d.ts +63 -0
  73. package/dev-dist/types/hj-gis-sdk/addons/node/base.d.ts.map +1 -0
  74. package/dev-dist/types/hj-gis-sdk/addons/node/ue-node.d.ts +82 -0
  75. package/dev-dist/types/hj-gis-sdk/addons/node/ue-node.d.ts.map +1 -0
  76. package/dev-dist/types/hj-gis-sdk/addons/proxy.d.ts +83 -0
  77. package/dev-dist/types/hj-gis-sdk/addons/proxy.d.ts.map +1 -0
  78. package/dev-dist/types/hj-gis-sdk/addons/tools/base.d.ts +7 -0
  79. package/dev-dist/types/hj-gis-sdk/addons/tools/base.d.ts.map +1 -0
  80. package/dev-dist/types/hj-gis-sdk/addons/tools/building.d.ts +36 -0
  81. package/dev-dist/types/hj-gis-sdk/addons/tools/building.d.ts.map +1 -0
  82. package/dev-dist/types/hj-gis-sdk/addons/tools/daytime.d.ts +7 -0
  83. package/dev-dist/types/hj-gis-sdk/addons/tools/daytime.d.ts.map +1 -0
  84. package/dev-dist/types/hj-gis-sdk/addons/tools/fence.d.ts +61 -0
  85. package/dev-dist/types/hj-gis-sdk/addons/tools/fence.d.ts.map +1 -0
  86. package/dev-dist/types/hj-gis-sdk/addons/tools/ghost.d.ts +14 -0
  87. package/dev-dist/types/hj-gis-sdk/addons/tools/ghost.d.ts.map +1 -0
  88. package/dev-dist/types/hj-gis-sdk/addons/tools/heat-map.d.ts +65 -0
  89. package/dev-dist/types/hj-gis-sdk/addons/tools/heat-map.d.ts.map +1 -0
  90. package/dev-dist/types/hj-gis-sdk/addons/tools/index.d.ts +26 -0
  91. package/dev-dist/types/hj-gis-sdk/addons/tools/index.d.ts.map +1 -0
  92. package/dev-dist/types/hj-gis-sdk/addons/tools/match-view.d.ts +7 -0
  93. package/dev-dist/types/hj-gis-sdk/addons/tools/match-view.d.ts.map +1 -0
  94. package/dev-dist/types/hj-gis-sdk/addons/tools/measurement.d.ts +13 -0
  95. package/dev-dist/types/hj-gis-sdk/addons/tools/measurement.d.ts.map +1 -0
  96. package/dev-dist/types/hj-gis-sdk/addons/tools/pick-cast.d.ts +26 -0
  97. package/dev-dist/types/hj-gis-sdk/addons/tools/pick-cast.d.ts.map +1 -0
  98. package/dev-dist/types/hj-gis-sdk/addons/tools/scatter.d.ts +57 -0
  99. package/dev-dist/types/hj-gis-sdk/addons/tools/scatter.d.ts.map +1 -0
  100. package/dev-dist/types/hj-gis-sdk/addons/tools/weather.d.ts +31 -0
  101. package/dev-dist/types/hj-gis-sdk/addons/tools/weather.d.ts.map +1 -0
  102. package/dev-dist/types/hj-gis-sdk/addons/transform.d.ts +91 -0
  103. package/dev-dist/types/hj-gis-sdk/addons/transform.d.ts.map +1 -0
  104. package/dev-dist/types/hj-gis-sdk/addons/world.d.ts +76 -0
  105. package/dev-dist/types/hj-gis-sdk/addons/world.d.ts.map +1 -0
  106. package/dev-dist/types/hj-gis-sdk/core/ue-rpc.d.ts +54 -0
  107. package/dev-dist/types/hj-gis-sdk/core/ue-rpc.d.ts.map +1 -0
  108. package/dev-dist/types/hj-gis-sdk/index.d.ts +27 -0
  109. package/dev-dist/types/hj-gis-sdk/index.d.ts.map +1 -0
  110. package/dev-dist/types/hj-gis-sdk/utils.d.ts +16 -0
  111. package/dev-dist/types/hj-gis-sdk/utils.d.ts.map +1 -0
  112. package/dev-dist/types/src/animation.d.ts +2 -0
  113. package/dev-dist/types/src/animation.d.ts.map +1 -0
  114. package/dev-dist/types/src/building.d.ts +2 -0
  115. package/dev-dist/types/src/building.d.ts.map +1 -0
  116. package/dev-dist/types/src/common.d.ts +5 -0
  117. package/dev-dist/types/src/common.d.ts.map +1 -0
  118. package/dev-dist/types/src/fence.d.ts +2 -0
  119. package/dev-dist/types/src/fence.d.ts.map +1 -0
  120. package/dev-dist/types/src/ghost.d.ts +2 -0
  121. package/dev-dist/types/src/ghost.d.ts.map +1 -0
  122. package/dev-dist/types/src/heatmap.d.ts +2 -0
  123. package/dev-dist/types/src/heatmap.d.ts.map +1 -0
  124. package/dev-dist/types/src/index.d.ts +2 -0
  125. package/dev-dist/types/src/index.d.ts.map +1 -0
  126. package/dev-dist/types/src/keyframe.d.ts +2 -0
  127. package/dev-dist/types/src/keyframe.d.ts.map +1 -0
  128. package/dev-dist/types/src/measurement.d.ts +2 -0
  129. package/dev-dist/types/src/measurement.d.ts.map +1 -0
  130. package/dev-dist/types/src/scatter.d.ts +2 -0
  131. package/dev-dist/types/src/scatter.d.ts.map +1 -0
  132. package/dev-dist/types/src/weather.d.ts +2 -0
  133. package/dev-dist/types/src/weather.d.ts.map +1 -0
  134. package/dev-dist/weather.esm.js +68 -0
  135. package/dev-dist/weather.esm.js.map +1 -0
  136. package/dev-dist/weather.js +70 -0
  137. package/dev-dist/weather.js.map +1 -0
  138. package/dist/sdk.esm.js +19 -6
  139. package/dist/sdk.esm.js.map +1 -1
  140. package/dist/sdk.js +19 -6
  141. package/dist/sdk.js.map +1 -1
  142. package/dist/sdk.umd.js +1 -1
  143. package/dist/sdk.umd.js.map +1 -1
  144. package/dist/types/hj-gis-sdk/addons/tools/scatter.d.ts.map +1 -1
  145. package/dist/types/src/common.d.ts.map +1 -1
  146. package/hj-gis-sdk/addons/animation/animate-clip.ts +93 -0
  147. package/hj-gis-sdk/addons/animation/animation-action.ts +93 -0
  148. package/hj-gis-sdk/addons/animation/animation-mixer.ts +51 -0
  149. package/hj-gis-sdk/addons/animation/index.ts +17 -0
  150. package/hj-gis-sdk/addons/camera.ts +173 -0
  151. package/hj-gis-sdk/addons/clock.ts +85 -0
  152. package/hj-gis-sdk/addons/commander/context.ts +70 -0
  153. package/hj-gis-sdk/addons/commander/dispatcher.ts +68 -0
  154. package/hj-gis-sdk/addons/commander/excutor/base.ts +26 -0
  155. package/hj-gis-sdk/addons/loader/index.ts +7 -0
  156. package/hj-gis-sdk/addons/loader/loader.ts +3 -0
  157. package/hj-gis-sdk/addons/node/base.ts +131 -0
  158. package/hj-gis-sdk/addons/node/ue-node.ts +147 -0
  159. package/hj-gis-sdk/addons/proxy.ts +200 -0
  160. package/hj-gis-sdk/addons/tools/base.ts +11 -0
  161. package/hj-gis-sdk/addons/tools/building.ts +84 -0
  162. package/hj-gis-sdk/addons/tools/daytime.ts +14 -0
  163. package/hj-gis-sdk/addons/tools/fence.ts +105 -0
  164. package/hj-gis-sdk/addons/tools/ghost.ts +31 -0
  165. package/hj-gis-sdk/addons/tools/heat-map.ts +95 -0
  166. package/hj-gis-sdk/addons/tools/index.ts +25 -0
  167. package/hj-gis-sdk/addons/tools/match-view.ts +35 -0
  168. package/hj-gis-sdk/addons/tools/measurement.ts +25 -0
  169. package/hj-gis-sdk/addons/tools/pick-cast.ts +67 -0
  170. package/hj-gis-sdk/addons/tools/scatter.ts +230 -0
  171. package/hj-gis-sdk/addons/tools/weather.ts +40 -0
  172. package/hj-gis-sdk/addons/transform.ts +126 -0
  173. package/hj-gis-sdk/addons/world.ts +173 -0
  174. package/hj-gis-sdk/core/ue-rpc.ts +234 -0
  175. package/hj-gis-sdk/index.ts +26 -0
  176. package/hj-gis-sdk/utils.ts +52 -0
  177. package/index.html +48 -0
  178. package/package-lock.json +7368 -0
  179. package/package.json +17 -4
  180. package/rollup.config.dev.js +107 -0
  181. package/rollup.config.js +52 -0
  182. package/src/animation.ts +175 -0
  183. package/src/building.ts +114 -0
  184. package/src/common.ts +47 -0
  185. package/src/fence.ts +131 -0
  186. package/src/ghost.ts +70 -0
  187. package/src/heatmap.ts +125 -0
  188. package/src/index.ts +350 -0
  189. package/src/keyframe.ts +113 -0
  190. package/src/measurement.ts +80 -0
  191. package/src/scatter.ts +105 -0
  192. package/src/weather.ts +86 -0
  193. package/tsconfig.json +30 -0
  194. 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":"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"}
@@ -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;;;;;"}