cesium-xs-sdk 1.0.2 → 1.0.4

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 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
+ ```
46
+
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
+ ```
40
60
 
41
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
- ### Vue 2
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
@@ -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;