Vue-iClient3D-WebGL入门文档
# Vue-iClient3D-WebGL
此为 supermap 官方为 vue 提供的组件
- SuperMap (opens new window)
- SuperMap/Vue-iClient3D-WebGL (opens new window)
- cesiumjs (opens new window)
- cesiumjs-api (opens new window)
# 安装
- npm 安装
npm install @supermap/vue-iclient3d-webgl
1
- 引入静态文件
<link href="Cesium/Widgets/widgets.css" rel="stylesheet" />
<script src="Cesium/Cesium.js"></script>
1
2
2
- 更改打包配置
chainWebpack: configParams => {
const config = configParams
config.module
.rule('rules')
.test(/\.(png|jpe?g|gif|svg|cur)(\?.*)?$/)
.use('url-loader')
.loader('url-loader')
.end()
config.resolve.alias
.set('css', path.join(__dirname, 'src/assets/css'))
.set('font', path.join(__dirname, 'src/assets/font'))
.set('img', path.join(__dirname, 'src/assets/img'))
.set('js', path.join(__dirname, 'src/assets/js'))
.set('public', path.join(__dirname, 'public'))
return config
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 引入组件并使用
// vue-iclient3d-webgl组件库
import "@supermap/vue-iclient3d-webgl/dist/styles/vue-iclient3d-webgl.min.css";
import tool from "./tool/index.js";
window.URL_CONFIG = URL_CONFIG;
Vue.config.productionTip = false;
Vue.use(VueiClient);
1
2
3
4
5
6
7
2
3
4
5
6
7
# 内置组件
# Viewer
参数
- sceneUrl:加载场景数据,由 supermap 的 iserver 发布提供的场景
- s3mScps:加载 s3m 切片
- collapsed: 开启折叠面板,只有在组合模式时生效
使用
<sm-viewer>
<sm3d-measure />
</sm-viewer>
1
2
3
2
3
除此之外,开可以使用Cesium进行拓展开发
// 使用本地的一张图片初始化地球,建议图片长宽比2:1
let singleTileImageryProvider = new Cesium.SingleTileImageryProvider({
url: "img/BlackMarble_2016_3km.jpg",
});
viewer.imageryLayers.addImageryProvider(singleTileImageryProvider);
1
2
3
4
5
2
3
4
5
# 其他组件
- measure: 测量
<sm3d-measure></sm3d-measure>
1
- viewshed: 可视域分析
<sm3d-viewshed :spatial-analysis-url="spatialAnalysisUrl"></sm3d-viewshed>
1
- profile: 剖面分析
<sm3d-profile></sm3d-profile>
1
- shadowquery: 阴影分析
<sm3d-shadowquery></sm3d-shadowquery>
1
- sightline: 通视分析
<sm3d-sightline></sm3d-sightline>
1
- sightline: 裁剪 Box
<sm3d-clip-box></sm3d-clip-box>
1
# Cesium
- BingMapsImageryProvider
使用 Bing Maps imagery REST API 提供拼接图像
new Cesium.BingMapsImageryProvider({
url: "https://dev.virtualearth.net",
mapStyle: Cesium.BingMapsStyle.AERIAL,
key: URL_CONFIG.BING_MAP_KEY,
});
1
2
3
4
5
2
3
4
5
- Cartesian3
一个三维笛卡尔点
new Cesium.Cartesian3.fromDegrees(106.3537, 39.0265, 20),
1
- SingleTileImageryProvider
提供单个顶级图像平铺。假设单个图像使用 GeographicTilingSchema
let singleTileImageryProvider = new Cesium.SingleTileImageryProvider({
url: "img/BlackMarble_2016_3km.jpg",
});
1
2
3
2
3
- Primitive
基本体表示场景中的几何体
new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.EllipsoidSurfaceAppearance({
material: Cesium.Material.fromType("Checkerboard"),
}),
});
1
2
3
4
5
6
2
3
4
5
6
上次更新: 2024/01/18, 10:44:15