cesium-xs-sdk 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -7
- package/dist/cesium-xs-sdk.cjs.js +4 -0
- package/dist/cesium-xs-sdk.cjs.js.map +1 -1
- package/dist/cesium-xs-sdk.esm.js +4 -0
- package/dist/cesium-xs-sdk.esm.js.map +1 -1
- package/dist/cesium-xs-sdk.umd.js +1 -1
- package/dist/cesium-xs-sdk.umd.js.map +1 -1
- package/package.json +5 -1
- package/src/index.d.ts +18 -1
- package/src/index.js +4 -0
- package/src/vite-plugin.d.ts +16 -0
- package/src/vite-plugin.js +133 -0
package/README.md
CHANGED
|
@@ -36,17 +36,49 @@ npm install cesium-xs-sdk cesium
|
|
|
36
36
|
</script>
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
### Vue 3
|
|
39
|
+
### Vue 3 / Vite(推荐 SDK 内置插件)
|
|
40
|
+
|
|
41
|
+
Vite 打包环境下,Cesium 运行时需要额外静态资源(如 `ApproximateTerrainHeights.json`、纹理、Worker 等)。使用 SDK 内置的 Vite 插件,无需手动把 Cesium 复制到 `public/`,开发时自动从 `node_modules/cesium` serve 资源,构建时自动复制到产物目录,离线可用。
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install cesium-xs-sdk cesium
|
|
45
|
+
```
|
|
40
46
|
|
|
41
47
|
```js
|
|
48
|
+
// vite.config.js
|
|
49
|
+
import { defineConfig } from 'vite';
|
|
50
|
+
import vue from '@vitejs/plugin-vue';
|
|
51
|
+
import { cesiumXsSdkPlugin } from 'cesium-xs-sdk/vite';
|
|
52
|
+
|
|
53
|
+
export default defineConfig({
|
|
54
|
+
plugins: [
|
|
55
|
+
vue(),
|
|
56
|
+
cesiumXsSdkPlugin({ cesiumBaseUrl: '/Cesium/' })
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
```js
|
|
62
|
+
// 组件中
|
|
42
63
|
import { useXs3d } from 'cesium-xs-sdk/vue';
|
|
43
64
|
|
|
44
|
-
const { sdk, sceneModule, graphicModule, isReady } = useXs3d('cesiumContainer', {
|
|
45
|
-
cesiumToken: 'your-token'
|
|
65
|
+
const { sdk, sceneModule, graphicModule, controlModule, isReady } = useXs3d('cesiumContainer', {
|
|
66
|
+
cesiumToken: 'your-token',
|
|
67
|
+
cesiumBaseUrl: '/Cesium/',
|
|
68
|
+
controls: {
|
|
69
|
+
locationBar: true,
|
|
70
|
+
zoom: true,
|
|
71
|
+
compass: true,
|
|
72
|
+
distanceLegend: true
|
|
73
|
+
}
|
|
46
74
|
});
|
|
47
75
|
```
|
|
48
76
|
|
|
49
|
-
|
|
77
|
+
> 插件默认从项目 `node_modules/cesium` 读取资源;若 Cesium 安装位置不同,可传 `cesiumPackageRoot: '/path/to/cesium'`。
|
|
78
|
+
|
|
79
|
+
如果不使用内置插件,也可以手动复制 `node_modules/cesium/Build/Cesium/` 到 `public/Cesium/`,但内置插件能避免维护这些静态文件。
|
|
80
|
+
|
|
81
|
+
### Vue 2 / Vue CLI
|
|
50
82
|
|
|
51
83
|
```js
|
|
52
84
|
import { useXs3d } from 'cesium-xs-sdk/vue2';
|
|
@@ -54,13 +86,16 @@ import { useXs3d } from 'cesium-xs-sdk/vue2';
|
|
|
54
86
|
export default {
|
|
55
87
|
setup() {
|
|
56
88
|
const { sdk, sceneModule, graphicModule } = useXs3d('cesiumContainer', {
|
|
57
|
-
cesiumToken: 'your-token'
|
|
89
|
+
cesiumToken: 'your-token',
|
|
90
|
+
cesiumBaseUrl: '/Cesium/'
|
|
58
91
|
});
|
|
59
92
|
return { sdk, sceneModule, graphicModule };
|
|
60
93
|
}
|
|
61
94
|
};
|
|
62
95
|
```
|
|
63
96
|
|
|
97
|
+
> Vue CLI 项目请将 `node_modules/cesium/Build/Cesium/` 复制到 `public/Cesium/`。
|
|
98
|
+
|
|
64
99
|
### React
|
|
65
100
|
|
|
66
101
|
```jsx
|
|
@@ -68,12 +103,15 @@ import { useXs3d } from 'cesium-xs-sdk/react';
|
|
|
68
103
|
|
|
69
104
|
function Map() {
|
|
70
105
|
const { sdk, isReady } = useXs3d('cesiumContainer', {
|
|
71
|
-
cesiumToken: 'your-token'
|
|
106
|
+
cesiumToken: 'your-token',
|
|
107
|
+
cesiumBaseUrl: '/Cesium/'
|
|
72
108
|
});
|
|
73
109
|
return <div id="cesiumContainer" style={{ width: '100%', height: '100%' }} />;
|
|
74
110
|
}
|
|
75
111
|
```
|
|
76
112
|
|
|
113
|
+
> React + Vite/CRA 项目同样需要将 `node_modules/cesium/Build/Cesium/` 复制到 `public/Cesium/`。
|
|
114
|
+
|
|
77
115
|
## 构建产物
|
|
78
116
|
|
|
79
117
|
```text
|
|
@@ -92,10 +130,30 @@ dist/
|
|
|
92
130
|
| `GraphicModule` | 点、线、面、模型、文字、标绘图元创建与管理 |
|
|
93
131
|
| `EventModule` | 鼠标、键盘、场景事件订阅与发布 |
|
|
94
132
|
| `EditorModule` | 绘制、编辑、选择、删除等交互工具 |
|
|
133
|
+
| `ControlModule` | 地图控件管理(状态栏、缩放、指南针、比例尺等) |
|
|
134
|
+
|
|
135
|
+
## 控件系统
|
|
136
|
+
|
|
137
|
+
SDK 内置参考 Mars3D 的地图控件,可在 `xs3d.init` 时通过 `controls` 配置自动挂载:
|
|
138
|
+
|
|
139
|
+
```js
|
|
140
|
+
const sdk = xs3d.init('cesiumContainer', {
|
|
141
|
+
cesiumToken: 'your-ion-token',
|
|
142
|
+
controls: {
|
|
143
|
+
locationBar: { showFPS: true },
|
|
144
|
+
zoom: true,
|
|
145
|
+
compass: true,
|
|
146
|
+
distanceLegend: true
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
支持的控件:`LocationBar`、`Zoom`、`Compass`、`DistanceLegend`。详见 [控件系统使用文档](docs/controls.md)。
|
|
95
152
|
|
|
96
153
|
## 文档
|
|
97
154
|
|
|
98
|
-
- [SDK 开发指南](
|
|
155
|
+
- [SDK 开发指南](CLAUDE.md)
|
|
156
|
+
- [控件系统使用文档](docs/controls.md)
|
|
99
157
|
- [军事标绘集成计划](docs/military-plot-sdk-integration-plan.md)
|
|
100
158
|
- [变更记录](docs/change-log/)
|
|
101
159
|
|
|
@@ -8589,6 +8589,10 @@ class GeoCalcUtil {
|
|
|
8589
8589
|
const xs3d = {
|
|
8590
8590
|
// 初始化 SDK
|
|
8591
8591
|
init: (container, config = {}) => {
|
|
8592
|
+
// 设置 Cesium 资源基础路径(在创建 Viewer 之前生效)
|
|
8593
|
+
if (config.cesiumBaseUrl && window.Cesium?.buildModuleUrl) {
|
|
8594
|
+
window.Cesium.buildModuleUrl.setBaseUrl(config.cesiumBaseUrl);
|
|
8595
|
+
}
|
|
8592
8596
|
// 设置 Cesium Token(提前处理,避免内部模块重复设置)
|
|
8593
8597
|
if (config.cesiumToken) {
|
|
8594
8598
|
window.Cesium.Ion.defaultAccessToken = config.cesiumToken;
|