vue 使用cesium

本文介绍了如何在Vue项目中使用Cesium,包括安装步骤、在main.js中引入、配置vue.config.js,以及实现地图定位和叠加图层功能。通过在methods中编写代码,可以实现三维地球效果,并能根据需求定位特定区域或加载JSON数据划定地图区域。

首先呢 我也是第一次接触哈 所以也有好多不熟练的地方😭多多鼓励 谢谢大家啦

1.首先 第一步 要安装cesium

$ npm install cesium

2.接着在main.js 中引入cesium

// cesium 初始化引入
import "cesium/Build/Cesium/Widgets/widgets.css";
import * as cesium from "cesium";

3. 现在就有点复杂了哈 创建vue.config.js

// const path = require("path");
// eslint-disable-next-line no-unused-vars
// const TerserPlugin = require('terser-webpack-plugin');
 

//这里面设计到webpack  要记得安装webpack
const CopyWebpackPlugin = require("copy-webpack-plugin");
const webpack = require("webpack");
// const cesiumSource = './node_modules/cesium/Source'

// eslint-disable-next-line no-unused-vars
// function resolve(dir) {
//     return path.join(__dirname, dir);
// }
// const { defineConfig } = require("@vue/cli-service");
module.exports = {
  devServer: {
    // port: 8888,
    open: true,
  },
  // defineConfig: {
  //   transplieDependencies: true,
  //   lintOnSave: false,
  // },
  configureWebpack: {
    output: {
      sourcePrefix: "",
    },
    plugins: [
      // 4
      //     // new CopyWebpackPlugin([{ from: p
### 集成和使用 CesiumVue 项目 #### 安装依赖库 为了在 Vue 中集成 Cesium,需要安装 `cesium` 库以及其对应的 TypeScript 类型定义文件。通过 npm 或 yarn 可以轻松完成这一步骤。 ```bash npm install cesium @types/cesium --save ``` 或者使用 Yarn: ```bash yarn add cesium @types/cesium ``` 此操作会下载并配置好所需的全部资源[^1]。 #### 创建 Cesium 组件 创建一个新的 Vue 单文件组件来封装 Cesium 的初始化逻辑。下面是一个简单的例子展示如何实现这一点: ```vue <template> <div id="cesiumContainer"></div> </template> <script lang="ts"> import { defineComponent, onMounted } from 'vue'; // 导入 Cesium 并设置路径 import * as Cesium from 'cesium'; export default defineComponent({ name: 'CesiumViewer', setup() { let viewer; onMounted(() => { // 初始化 Cesium Viewer 实例 viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider: new Cesium.CesiumTerrainProvider({ url: 'https://assets.agi.com/stk-terrain/world' }) }); // 设置默认视角位置 const position = Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222); viewer.camera.flyTo({ destination: position, orientation: { heading: Cesium.Math.toRadians(0), pitch: Cesium.Math.toRadians(-90), roll: 0.0 } }); // 清理工作 function cleanup() { if (viewer) { viewer.destroy(); } } window.addEventListener('unload', cleanup); return () => { cleanup(); }; }); return {}; }, }); </script> <style scoped> #cesiumContainer { width: 100%; height: 100vh; } </style> ``` 这段代码展示了怎样在一个 Vue 组件内部加载 Cesium 地图,并设置了基本的地图视图参数[^2]。 #### 解决潜在问题 当引入 Cesium 后可能会遇到一些性能或样式方面的问题。对于这些问题可以采取如下措施解决: - **优化打包体积**: 使用 Webpack 插件如 `webpack-bundle-analyzer` 来分析构建产物大小,从而针对性地减少不必要的模块。 - **调整 CSS 样式冲突**: 如果页面中有其他框架带来的全局样式影响到了 Cesium 显示效果,则可以通过增加特定的选择器优先级方式修复显示异常情况。 以上方法能够帮助开发者顺利地将 Cesium 整合到基于 Vue 构建的应用程序当中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值