@zhangdali1996/lr-map-viewer 0.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 +537 -0
- package/dist/lr-map-viewer.css +2 -0
- package/dist/lr-map-viewer.js +3948 -0
- package/package.json +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
# @zhangdali1996/lr-map-viewer
|
|
2
|
+
|
|
3
|
+
`@zhangdali1996/lr-map-viewer` 是面向 Vue 3 项目的地图组件库,提供统一的二维、三维地图承载能力,以及基于组件实例的视角控制与模型信息查询能力。
|
|
4
|
+
|
|
5
|
+
主要能力:
|
|
6
|
+
|
|
7
|
+
- 支持 Vue 3 项目中以组件方式挂载地图容器。
|
|
8
|
+
- 支持龙软三维 SDK 的运行时加载。
|
|
9
|
+
- 支持基于 `@longruan/lr-map` 的二维图纸显示。
|
|
10
|
+
- 支持通过运行时配置传入云 GIS 参数。
|
|
11
|
+
- 支持按需显示区域显隐面板和调试面板。
|
|
12
|
+
- 支持 `2d / 3d` 模式切换壳层。
|
|
13
|
+
- 支持通过组件实例调用 `moveView(x, y, z)` 移动三维视角。
|
|
14
|
+
- 支持通过组件实例注册 `registerModelInfoQuery(callback)` 查询点击模型信息。
|
|
15
|
+
|
|
16
|
+
## 安装
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install @zhangdali1996/lr-map-viewer
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`vue` 和 `element-plus` 作为 `peerDependencies` 提供,要求使用方项目自行安装。
|
|
23
|
+
|
|
24
|
+
## 静态资源放置
|
|
25
|
+
|
|
26
|
+
该包不会携带龙软 SDK 的大体积静态资源。以下目录需要由实施方单独提供给客户:
|
|
27
|
+
|
|
28
|
+
- `editorapp`
|
|
29
|
+
- `resource`
|
|
30
|
+
|
|
31
|
+
推荐放置到客户项目的 `public` 目录:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
public/
|
|
35
|
+
editorapp/
|
|
36
|
+
resource/
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
对应默认访问路径:
|
|
40
|
+
|
|
41
|
+
- `/editorapp/editorapp.bundle.js`
|
|
42
|
+
- `/resource/js/three.min.js`
|
|
43
|
+
- `/resource/js/vue.2.6.11.js`
|
|
44
|
+
- `/resource/js/element_ui.js`
|
|
45
|
+
- `/resource/js/jquery-3.1.1.min.js`
|
|
46
|
+
|
|
47
|
+
如果客户项目的静态资源目录不是根路径,需要通过 `lr3dConfig.sdk` 自定义覆盖路径。
|
|
48
|
+
|
|
49
|
+
## 最小接入示例
|
|
50
|
+
|
|
51
|
+
```vue
|
|
52
|
+
<script setup>
|
|
53
|
+
import { LrMapViewer } from '@zhangdali1996/lr-map-viewer'
|
|
54
|
+
|
|
55
|
+
const lr3dConfig = {
|
|
56
|
+
sdk: {
|
|
57
|
+
// 龙软三维 SDK 静态资源根路径
|
|
58
|
+
basePath: '/editorapp',
|
|
59
|
+
// 龙软三维主入口脚本地址
|
|
60
|
+
scriptSrc: '/editorapp/editorapp.bundle.js',
|
|
61
|
+
// SDK 挂载到 window 上的全局对象名
|
|
62
|
+
globalNames: ['lr3dapp', 'EditorApp'],
|
|
63
|
+
dependencies: [
|
|
64
|
+
{
|
|
65
|
+
// THREE 依赖脚本地址
|
|
66
|
+
src: '/resource/js/three.min.js',
|
|
67
|
+
// THREE 挂载到 window 上的全局对象名
|
|
68
|
+
globalNames: ['THREE'],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
// SDK 依赖的 Vue2 脚本地址
|
|
72
|
+
src: '/resource/js/vue.2.6.11.js',
|
|
73
|
+
globalNames: ['Vue'],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
// SDK 依赖的 element-ui 脚本地址
|
|
77
|
+
src: '/resource/js/element_ui.js',
|
|
78
|
+
globalNames: ['ELEMENT'],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
// SDK 依赖的 jQuery 脚本地址
|
|
82
|
+
src: '/resource/js/jquery-3.1.1.min.js',
|
|
83
|
+
globalNames: ['jQuery', '$'],
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
scene: {
|
|
88
|
+
// 三维容器 ID,需要保证当前页面内唯一
|
|
89
|
+
containerId: 'customer-lr3d-viewer',
|
|
90
|
+
// 窗口尺寸变化时是否自动触发 resize
|
|
91
|
+
autoResize: true,
|
|
92
|
+
},
|
|
93
|
+
initOptions: {
|
|
94
|
+
// 是否显示 SDK 默认菜单
|
|
95
|
+
showMenu: false,
|
|
96
|
+
// 是否显示 SDK 默认工具栏
|
|
97
|
+
showToolbar: false,
|
|
98
|
+
// 是否显示 SDK 默认侧边栏
|
|
99
|
+
showSidebar: false,
|
|
100
|
+
// SDK 场景主题
|
|
101
|
+
theme: 'shallow',
|
|
102
|
+
// 初始 basePoint,组件内部会在加载云 GIS 数据后按地图范围重新计算
|
|
103
|
+
basePoint: { x: 0, y: 0, z: 0 },
|
|
104
|
+
},
|
|
105
|
+
dataSource: {
|
|
106
|
+
// 数据源类型,使用云 GIS 时传 cloud
|
|
107
|
+
type: 'cloud',
|
|
108
|
+
// 是否在场景初始化成功后自动加载云 GIS 数据
|
|
109
|
+
autoLoad: false,
|
|
110
|
+
// 数据加载模式,workfaceOnly 表示按工作面/区域/巷道组合加载
|
|
111
|
+
loadMode: 'workfaceOnly',
|
|
112
|
+
cloud: {
|
|
113
|
+
// 云 GIS 服务地址
|
|
114
|
+
server: '',
|
|
115
|
+
// 地图服务地址,用于获取地图元数据和范围
|
|
116
|
+
mapServerUrl: '',
|
|
117
|
+
// 云 GIS 用户名
|
|
118
|
+
username: '',
|
|
119
|
+
// 云 GIS 密码
|
|
120
|
+
password: '',
|
|
121
|
+
// 数据源 guid
|
|
122
|
+
dsGuid: '',
|
|
123
|
+
// 数据源名称
|
|
124
|
+
dsname: '',
|
|
125
|
+
laneSize: {
|
|
126
|
+
// 巷道渲染宽度
|
|
127
|
+
width: 10,
|
|
128
|
+
// 巷道渲染高度
|
|
129
|
+
height: 10,
|
|
130
|
+
},
|
|
131
|
+
// 需要加载的巷道图层名数组
|
|
132
|
+
// 不传时按服务返回结果处理,传入后会按图层名过滤
|
|
133
|
+
layers: [],
|
|
134
|
+
// 需要加载的煤层图层名数组
|
|
135
|
+
coalLayers: [],
|
|
136
|
+
// 需要加载的断层图层名数组
|
|
137
|
+
geofaultLayers: [],
|
|
138
|
+
// 工作面要素编码数组
|
|
139
|
+
workfaceFeatureTypes: ['0202030030'],
|
|
140
|
+
// 区域要素编码数组
|
|
141
|
+
regionFeatureTypes: ['0202030030', '0106020009', '0202030004', '0202030006'],
|
|
142
|
+
// 是否启用掘进辅助数据
|
|
143
|
+
enableRegionAssist: false,
|
|
144
|
+
// 是否启用巷道加载
|
|
145
|
+
enableLane: true,
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
}
|
|
149
|
+
</script>
|
|
150
|
+
|
|
151
|
+
<template>
|
|
152
|
+
<div style="height: 100vh;">
|
|
153
|
+
<LrMapViewer :lr3d-config="lr3dConfig" />
|
|
154
|
+
</div>
|
|
155
|
+
</template>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
如果你需要默认显示右上角区域显隐面板和调试面板:
|
|
159
|
+
|
|
160
|
+
```vue
|
|
161
|
+
<LrMapViewer
|
|
162
|
+
:lr3d-config="lr3dConfig"
|
|
163
|
+
:show-region-panel="true"
|
|
164
|
+
:show-debug-panel="true"
|
|
165
|
+
/>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## 二维图纸最小接入示例
|
|
169
|
+
|
|
170
|
+
`2d` 模式通过传入图纸运行参数完成初始化,使用方直接提供所需配置即可。
|
|
171
|
+
|
|
172
|
+
```vue
|
|
173
|
+
<script setup>
|
|
174
|
+
import { LrMapViewer } from '@zhangdali1996/lr-map-viewer'
|
|
175
|
+
|
|
176
|
+
const map2dConfig = {
|
|
177
|
+
behavior: {
|
|
178
|
+
// 初始化后是否自动创建默认图层
|
|
179
|
+
autoInitLayer: true,
|
|
180
|
+
// 初始化后是否自动显示默认图层
|
|
181
|
+
autoShowLayer: true,
|
|
182
|
+
// 是否捕获图层树结构
|
|
183
|
+
captureLayerTree: true,
|
|
184
|
+
},
|
|
185
|
+
options: {
|
|
186
|
+
// 云 GIS 数据源 guid
|
|
187
|
+
ygis_dsGuid: 'your_ygis_ds_guid',
|
|
188
|
+
// 云 GIS 服务地址
|
|
189
|
+
ygis_url: 'https://your-cloud-gis-server/',
|
|
190
|
+
// 地图服务地址
|
|
191
|
+
Url: 'https://your-map-server/',
|
|
192
|
+
// 二维图层名称
|
|
193
|
+
layerName: 'your_layer_name',
|
|
194
|
+
// 图层编码,不需要时可留空
|
|
195
|
+
layerCode: '',
|
|
196
|
+
// 初始显示范围
|
|
197
|
+
extent: 'minX,minY,maxX,maxY',
|
|
198
|
+
// 云 GIS 用户名
|
|
199
|
+
ygis_username: 'your_username',
|
|
200
|
+
// 云 GIS 密码
|
|
201
|
+
ygis_password: 'your_password',
|
|
202
|
+
// 是否旋转视图
|
|
203
|
+
rotate: false,
|
|
204
|
+
// 是否开启平移动画
|
|
205
|
+
animate: false,
|
|
206
|
+
// 是否开启缩放动画
|
|
207
|
+
zoomAnimation: false,
|
|
208
|
+
// 是否开启 marker 缩放动画
|
|
209
|
+
markerZoomAnimation: false,
|
|
210
|
+
// 是否开启淡入淡出动画
|
|
211
|
+
fadeAnimation: false,
|
|
212
|
+
},
|
|
213
|
+
}
|
|
214
|
+
</script>
|
|
215
|
+
|
|
216
|
+
<template>
|
|
217
|
+
<div style="height: 100vh;">
|
|
218
|
+
<LrMapViewer mode="2d" :modes="['2d', '3d']" :map2d-config="map2dConfig" />
|
|
219
|
+
</div>
|
|
220
|
+
</template>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
如果你使用 token 鉴权,可以用 `token` 替代 `ygis_username / ygis_password`。
|
|
224
|
+
|
|
225
|
+
## 推荐接入方式
|
|
226
|
+
|
|
227
|
+
推荐直接按需引入组件:
|
|
228
|
+
|
|
229
|
+
```js
|
|
230
|
+
import { LrMapViewer } from '@zhangdali1996/lr-map-viewer'
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
也支持作为插件安装:
|
|
234
|
+
|
|
235
|
+
```js
|
|
236
|
+
import { createApp } from 'vue'
|
|
237
|
+
import LrMapViewerPlugin from '@zhangdali1996/lr-map-viewer'
|
|
238
|
+
import App from './App.vue'
|
|
239
|
+
|
|
240
|
+
createApp(App).use(LrMapViewerPlugin).mount('#app')
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## 公开能力
|
|
244
|
+
|
|
245
|
+
组件 Props:
|
|
246
|
+
|
|
247
|
+
- `mode`
|
|
248
|
+
组件显示模式,支持 `2d` 或 `3d`。
|
|
249
|
+
- `modes`
|
|
250
|
+
当前实例允许使用的模式集合。
|
|
251
|
+
- `lr3dConfig`
|
|
252
|
+
龙软三维运行时配置。
|
|
253
|
+
- `map2dConfig`
|
|
254
|
+
二维地图运行时配置对象。
|
|
255
|
+
- `showRegionPanel`
|
|
256
|
+
是否显示区域显隐面板,默认 `false`。
|
|
257
|
+
- `showDebugPanel`
|
|
258
|
+
是否显示调试面板,默认 `false`。
|
|
259
|
+
|
|
260
|
+
组件 expose:
|
|
261
|
+
|
|
262
|
+
- `switchMode(mode)`
|
|
263
|
+
- `getCurrentMode()`
|
|
264
|
+
- `getCurrentEngine()`
|
|
265
|
+
- `get2dInstance()`
|
|
266
|
+
- `get3dInstance()`
|
|
267
|
+
- `resize()`
|
|
268
|
+
- `refreshScene()`
|
|
269
|
+
- `moveView(x, y, z)`
|
|
270
|
+
- `registerModelInfoQuery(callback)`
|
|
271
|
+
|
|
272
|
+
说明:
|
|
273
|
+
|
|
274
|
+
- `get2dInstance()` 返回二维适配层实例,内部包含 `map`、`layerTree`、`options` 等信息。
|
|
275
|
+
- `refreshScene()` 仅对 `3d` 模式有效。
|
|
276
|
+
- `moveView(x, y, z)` 传入的是绝对三维坐标,组件内部会自动换算成相对 `basePoint` 坐标后调用聚焦接口。
|
|
277
|
+
- `registerModelInfoQuery(callback)` 会在用户点击三维中的模型对象时触发回调。
|
|
278
|
+
- 模型信息查询返回 4 个字段:`id`、`name`、`layerName`、`position`。
|
|
279
|
+
|
|
280
|
+
## 接口示例
|
|
281
|
+
|
|
282
|
+
推荐通过 `ref` 调用组件实例方法:
|
|
283
|
+
|
|
284
|
+
```vue
|
|
285
|
+
<script setup>
|
|
286
|
+
import { ref, watch } from 'vue'
|
|
287
|
+
import { LrMapViewer } from '@zhangdali1996/lr-map-viewer'
|
|
288
|
+
|
|
289
|
+
const viewerRef = ref(null)
|
|
290
|
+
|
|
291
|
+
function handleMoveView() {
|
|
292
|
+
viewerRef.value?.moveView?.(
|
|
293
|
+
// x 坐标(绝对坐标)
|
|
294
|
+
37515326.469929,
|
|
295
|
+
// y 坐标(绝对坐标)
|
|
296
|
+
4412734.214238,
|
|
297
|
+
// z 坐标(绝对坐标)
|
|
298
|
+
1311.15,
|
|
299
|
+
)
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
watch(
|
|
303
|
+
viewerRef,
|
|
304
|
+
(viewer) => {
|
|
305
|
+
if (!viewer?.registerModelInfoQuery) {
|
|
306
|
+
return
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
viewer.registerModelInfoQuery((payload) => {
|
|
310
|
+
// payload 为点击模型后返回的模型信息
|
|
311
|
+
console.log('model info', payload)
|
|
312
|
+
})
|
|
313
|
+
},
|
|
314
|
+
{ immediate: true },
|
|
315
|
+
)
|
|
316
|
+
</script>
|
|
317
|
+
|
|
318
|
+
<template>
|
|
319
|
+
<div style="height: 100vh;">
|
|
320
|
+
<button type="button" @click="handleMoveView">移动视角</button>
|
|
321
|
+
<LrMapViewer ref="viewerRef" :lr3d-config="lr3dConfig" />
|
|
322
|
+
</div>
|
|
323
|
+
</template>
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
模型信息查询回调返回结构:
|
|
327
|
+
|
|
328
|
+
```js
|
|
329
|
+
{
|
|
330
|
+
// 模型或实体标识
|
|
331
|
+
id: '...',
|
|
332
|
+
// 模型或实体名称
|
|
333
|
+
name: '...',
|
|
334
|
+
// 所属图层名
|
|
335
|
+
layerName: '...',
|
|
336
|
+
position: {
|
|
337
|
+
// 模型本地坐标 x
|
|
338
|
+
x: 0,
|
|
339
|
+
// 模型本地坐标 y
|
|
340
|
+
y: 0,
|
|
341
|
+
// 模型本地坐标 z
|
|
342
|
+
z: 0,
|
|
343
|
+
},
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
## 云 GIS 配置说明
|
|
348
|
+
|
|
349
|
+
组件库不再内置任何真实云 GIS 账号或数据源信息。以下字段必须由接入方按项目实际情况传入:
|
|
350
|
+
|
|
351
|
+
- `server`
|
|
352
|
+
- `mapServerUrl`
|
|
353
|
+
- `username`
|
|
354
|
+
- `password`
|
|
355
|
+
- `dsGuid`
|
|
356
|
+
- `dsname`
|
|
357
|
+
|
|
358
|
+
可选字段:
|
|
359
|
+
|
|
360
|
+
- `laneSize.width`
|
|
361
|
+
巷道渲染宽度,默认 `10`
|
|
362
|
+
- `laneSize.height`
|
|
363
|
+
巷道渲染高度,默认 `10`
|
|
364
|
+
|
|
365
|
+
如果开启:
|
|
366
|
+
|
|
367
|
+
```js
|
|
368
|
+
dataSource: {
|
|
369
|
+
autoLoad: true
|
|
370
|
+
}
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
则组件初始化成功后会自动尝试加载云 GIS 数据。
|
|
374
|
+
|
|
375
|
+
如果不希望默认自动加载,请将其设为 `false`,再通过你的业务流程手动触发三维数据加载。
|
|
376
|
+
|
|
377
|
+
## 示例配置
|
|
378
|
+
|
|
379
|
+
下面这份三维配置可直接作为联调参考:
|
|
380
|
+
|
|
381
|
+
```js
|
|
382
|
+
const playgroundLr3dConfig = {
|
|
383
|
+
sdk: {
|
|
384
|
+
// 龙软三维 SDK 静态资源根路径
|
|
385
|
+
basePath: '/editorapp',
|
|
386
|
+
// 龙软三维主入口脚本地址
|
|
387
|
+
scriptSrc: '/editorapp/editorapp.bundle.js',
|
|
388
|
+
// SDK 挂载到 window 上的全局对象名
|
|
389
|
+
globalNames: ['lr3dapp', 'EditorApp'],
|
|
390
|
+
dependencies: [
|
|
391
|
+
{
|
|
392
|
+
// THREE 依赖脚本地址
|
|
393
|
+
src: '/resource/js/three.min.js',
|
|
394
|
+
globalNames: ['THREE'],
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
// SDK 依赖的 Vue2 脚本地址
|
|
398
|
+
src: '/resource/js/vue.2.6.11.js',
|
|
399
|
+
globalNames: ['Vue'],
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
// SDK 依赖的 element-ui 脚本地址
|
|
403
|
+
src: '/resource/js/element_ui.js',
|
|
404
|
+
globalNames: ['ELEMENT'],
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
// SDK 依赖的 jQuery 脚本地址
|
|
408
|
+
src: '/resource/js/jquery-3.1.1.min.js',
|
|
409
|
+
globalNames: ['jQuery', '$'],
|
|
410
|
+
},
|
|
411
|
+
],
|
|
412
|
+
},
|
|
413
|
+
scene: {
|
|
414
|
+
// playground 中三维容器 ID
|
|
415
|
+
containerId: 'playground-lr3d-viewer',
|
|
416
|
+
// 窗口尺寸变化时自动触发 resize
|
|
417
|
+
autoResize: true,
|
|
418
|
+
},
|
|
419
|
+
initOptions: {
|
|
420
|
+
// 不显示 SDK 默认菜单
|
|
421
|
+
showMenu: false,
|
|
422
|
+
// 不显示 SDK 默认工具栏
|
|
423
|
+
showToolbar: false,
|
|
424
|
+
// 不显示 SDK 默认侧边栏
|
|
425
|
+
showSidebar: false,
|
|
426
|
+
// 场景主题
|
|
427
|
+
theme: 'shallow',
|
|
428
|
+
basePoint: {
|
|
429
|
+
x: 0,
|
|
430
|
+
y: 0,
|
|
431
|
+
z: 0,
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
dataSource: {
|
|
435
|
+
// 数据源类型
|
|
436
|
+
type: 'cloud',
|
|
437
|
+
// 初始化完成后自动加载云 GIS 数据
|
|
438
|
+
autoLoad: true,
|
|
439
|
+
// 按工作面模式加载
|
|
440
|
+
loadMode: 'workfaceOnly',
|
|
441
|
+
cloud: {
|
|
442
|
+
// 云 GIS 服务地址
|
|
443
|
+
server: 'https://your-cloud-gis-server/',
|
|
444
|
+
// 地图服务地址
|
|
445
|
+
mapServerUrl: 'https://your-map-server/',
|
|
446
|
+
// 云 GIS 用户名
|
|
447
|
+
username: 'your_username',
|
|
448
|
+
// 云 GIS 密码
|
|
449
|
+
password: 'your_password',
|
|
450
|
+
// 数据源 guid
|
|
451
|
+
dsGuid: 'your_ds_guid',
|
|
452
|
+
// 数据源名称
|
|
453
|
+
dsname: 'your_ds_name',
|
|
454
|
+
// 需要加载的巷道图层名
|
|
455
|
+
layers: ['your_lane_layer_name'],
|
|
456
|
+
laneSize: {
|
|
457
|
+
// 巷道宽度
|
|
458
|
+
width: 10,
|
|
459
|
+
// 巷道高度
|
|
460
|
+
height: 10,
|
|
461
|
+
},
|
|
462
|
+
// 需要加载的煤层图层名
|
|
463
|
+
coalLayers: ['your_coal_layer_name'],
|
|
464
|
+
// 需要加载的断层图层名
|
|
465
|
+
geofaultLayers: [],
|
|
466
|
+
// 工作面要素编码数组
|
|
467
|
+
workfaceFeatureTypes: ['0202030030'],
|
|
468
|
+
// 区域要素编码数组
|
|
469
|
+
regionFeatureTypes: ['0202030030', '0106020009', '0202030004', '0202030006'],
|
|
470
|
+
// 是否启用掘进辅助数据
|
|
471
|
+
enableRegionAssist: false,
|
|
472
|
+
// 是否启用巷道加载
|
|
473
|
+
enableLane: true,
|
|
474
|
+
},
|
|
475
|
+
},
|
|
476
|
+
}
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
## 常见错误排查
|
|
480
|
+
|
|
481
|
+
### 1. 场景初始化失败:SDK 前置依赖加载失败
|
|
482
|
+
|
|
483
|
+
典型错误:
|
|
484
|
+
|
|
485
|
+
```text
|
|
486
|
+
场景初始化失败:SDK 前置依赖加载失败: /resource/js/jquery-3.1.1.min.js
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
排查方向:
|
|
490
|
+
|
|
491
|
+
1. 确认客户项目里确实存在 `public/resource/js/jquery-3.1.1.min.js`。
|
|
492
|
+
2. 确认浏览器访问 `/resource/js/jquery-3.1.1.min.js` 返回 200,而不是 404。
|
|
493
|
+
3. 如果资源目录不在根路径,检查 `lr3dConfig.sdk.dependencies` 里的 `src` 是否已改成真实路径。
|
|
494
|
+
4. 确认 `editorapp` 与 `resource` 属于同一套 SDK 版本,不要混用不同批次文件。
|
|
495
|
+
|
|
496
|
+
### 2. 场景初始化失败:未检测到全局对象
|
|
497
|
+
|
|
498
|
+
这类错误通常表示脚本文件虽然加载了,但脚本执行后没有挂出预期全局变量。
|
|
499
|
+
|
|
500
|
+
排查方向:
|
|
501
|
+
|
|
502
|
+
1. 检查 `globalNames` 配置是否与当前 SDK 版本匹配。
|
|
503
|
+
2. 检查脚本是否被浏览器拦截、跨域策略阻止,或返回了错误 HTML 页面。
|
|
504
|
+
3. 检查依赖加载顺序是否正确,前置依赖必须先于 `editorapp.bundle.js` 完成加载。
|
|
505
|
+
|
|
506
|
+
### 3. 云 GIS 数据源配置缺失
|
|
507
|
+
|
|
508
|
+
典型原因:
|
|
509
|
+
|
|
510
|
+
- 组件库默认配置已不再携带真实业务参数。
|
|
511
|
+
- 接入方没有传入 `server`、`mapServerUrl`、`username`、`password`、`dsGuid`、`dsname`。
|
|
512
|
+
|
|
513
|
+
处理方式:
|
|
514
|
+
|
|
515
|
+
- 在 `lr3dConfig.dataSource.cloud` 中补齐实际项目所需字段。
|
|
516
|
+
|
|
517
|
+
### 4. 切换到 2D 后提示配置不完整
|
|
518
|
+
|
|
519
|
+
当前二维模式要求 `map2dConfig.options` 至少传入:
|
|
520
|
+
|
|
521
|
+
- `ygis_dsGuid`
|
|
522
|
+
- `ygis_url`
|
|
523
|
+
- `Url`
|
|
524
|
+
- `layerName`
|
|
525
|
+
- `token` 或 `ygis_username + ygis_password`
|
|
526
|
+
|
|
527
|
+
如果缺少这些字段,组件会直接在页面顶部提示缺失项,而不会继续初始化二维地图。
|
|
528
|
+
|
|
529
|
+
## 本地联调
|
|
530
|
+
|
|
531
|
+
在仓库根目录执行:
|
|
532
|
+
|
|
533
|
+
```bash
|
|
534
|
+
npm run dev:playground
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
该命令会启动示例工程 [`playground/src/App.vue`](/F:/WorkSpace/jzxy/cloud-gis-3d/playground/src/App.vue),可用于本地联调和接口验证。
|