前端知识框架 前端知识框架
首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档

BestIdea

首页
基础
框架
插件
Node
地图
更多
前端须知
  • 分类
  • 标签
  • 归档
  • SVG图标组件
  • vue性能
  • vue中使用less全局变量
  • 路由懒加载
  • 生命周期
  • 双向绑定原理
  • 微信网页开发
  • 微信小程序开发(uni-app)
  • 微信小程序开发
  • 微信小程序入门
  • 0与3.0项目对比
  • 预渲染
  • 组件通信方式
  • Vue3.x组合式编程
  • 从零搭建 vite+vue3+ts+pinia 框架
  • Vue-iClient3D-WebGL入门文档
    • Vue-iClient3D-WebGL
      • 安装
      • 内置组件
      • 其他组件
    • Cesium
  • Vite常用配置
  • 框架
郝东建
2023-03-30
目录

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
  • 更改打包配置
  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
  • 引入组件并使用
// 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

# 内置组件

# Viewer

参数

  • sceneUrl:加载场景数据,由 supermap 的 iserver 发布提供的场景
  • s3mScps:加载 s3m 切片
  • collapsed: 开启折叠面板,只有在组合模式时生效

使用

<sm-viewer>
  <sm3d-measure />
</sm-viewer>
1
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

# 其他组件

  • 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
  • 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
  • Primitive

基本体表示场景中的几何体

new Cesium.Primitive({
  geometryInstances: instance,
  appearance: new Cesium.EllipsoidSurfaceAppearance({
    material: Cesium.Material.fromType("Checkerboard"),
  }),
});
1
2
3
4
5
6
上次更新: 2024/01/18, 10:44:15
从零搭建 vite+vue3+ts+pinia 框架
Vite常用配置

← 从零搭建 vite+vue3+ts+pinia 框架 Vite常用配置→

最近更新
01
webpack打包替换类名命名空间
05-01
02
Vite常用配置
02-26
03
crypto前端加密
01-18
更多文章>
Theme by Vdoing | Copyright © 2022-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式