@yangyongtao/gaea 1.1.7 → 1.1.8
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/package.json +1 -1
- package/src/GaeaMethods.js +42 -9
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yangyongtao/gaea",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Gaea 3D visualization component library - Vue 3 components based on Godot WASM engine. Includes WMTS layer loading, camera view control, Vite plugin auto-injection, etc.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
package/src/GaeaMethods.js
CHANGED
|
@@ -23,7 +23,13 @@ const defaultConfig = {
|
|
|
23
23
|
canvasResizePolicy: 2,
|
|
24
24
|
experimentalVK: false,
|
|
25
25
|
focusCanvas: true,
|
|
26
|
-
/**
|
|
26
|
+
/** 是否使用天地图(true 时跳过 getAllServe,直接加载天地图影像) */
|
|
27
|
+
useTianditu: false,
|
|
28
|
+
/** 天地图 token */
|
|
29
|
+
tiandituToken: '63201cfd7df1e1bff7d88bb8baa32151',
|
|
30
|
+
/** 天地图最小/最大层级 */
|
|
31
|
+
tiandituLevelRange: [0, 18],
|
|
32
|
+
/** 默认加载的影像图层(useTianditu=false 时生效) */
|
|
27
33
|
defaultLayers: [
|
|
28
34
|
{ layerName: 'earthland', forMat: 'image/png', min: 0, max: 18, transparency: 0.3 },
|
|
29
35
|
{ layerName: '苍南L19', forMat: 'image/png', min: 5, max: 17 },
|
|
@@ -143,17 +149,44 @@ export class GaeaApp {
|
|
|
143
149
|
|
|
144
150
|
async _initLayers() {
|
|
145
151
|
const cfg = this.config;
|
|
146
|
-
await this.getAllServe();
|
|
147
|
-
|
|
148
|
-
const pos = cfg.defaultCameraPosition;
|
|
149
|
-
if (pos) this.SetPosition(pos);
|
|
150
152
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
if (cfg.useTianditu) {
|
|
154
|
+
// 天地图模式:不走 getAllServe,直接加载天地图
|
|
155
|
+
this.addTianditu();
|
|
156
|
+
} else {
|
|
157
|
+
// WMTS 服务模式
|
|
158
|
+
await this.getAllServe();
|
|
159
|
+
const list = cfg.defaultLayers;
|
|
160
|
+
if (list?.length) {
|
|
161
|
+
for (const layer of list) {
|
|
162
|
+
this.addLayer(layer);
|
|
163
|
+
}
|
|
155
164
|
}
|
|
156
165
|
}
|
|
166
|
+
|
|
167
|
+
const pos = cfg.defaultCameraPosition;
|
|
168
|
+
if (pos) {
|
|
169
|
+
// 等一帧再设相机,确保引擎把图层处理完
|
|
170
|
+
await new Promise(r => requestAnimationFrame(r));
|
|
171
|
+
this.SetPosition(pos);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// ---- 天地图 ----
|
|
176
|
+
|
|
177
|
+
/** 加载天地图影像 */
|
|
178
|
+
addTianditu() {
|
|
179
|
+
const cfg = this.config;
|
|
180
|
+
const store = new Gaea.TDTWMTSImageStore();
|
|
181
|
+
store.ServerUri = cfg.tiandituServerUri || 'https://t{0}.tianditu.gov.cn/img_c/wmts';
|
|
182
|
+
store.FormatString = cfg.tiandituFormatString || 'SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&TILECOL={0}&TILEROW={1}&TILEMATRIX={2}&tk={3}';
|
|
183
|
+
store.ImageExtension = cfg.tiandituImageExtension ?? Gaea.ImageExtensionEnum.JPEG;
|
|
184
|
+
store.TK = cfg.tiandituToken;
|
|
185
|
+
store.Name = '影像底图';
|
|
186
|
+
store.LevelRange = new Gaea.Vector2(cfg.tiandituLevelRange[0], cfg.tiandituLevelRange[1]);
|
|
187
|
+
Gaea.World.Instance.DefaultPyramidTileSet.AddImageStore(store);
|
|
188
|
+
console.log('天地图影像加载成功');
|
|
189
|
+
return store;
|
|
157
190
|
}
|
|
158
191
|
|
|
159
192
|
// ---- 公开方法 ----
|