Cesium学习第一天 在Vue中加载Cesium

在Vue中加载Cesium

学习Cesium第一天,在Vue中使用Cesium

  1. 安装Cesium
npm i cesium
npm install --save @types/cesium//安装此可以实现Cesium代码提示
  1. 配置main.js
//引入cesium以及widgets
import Cesium from "cesium/Cesium";
import widgets from "cesium/Widgets/widgets.css";
在Vue原型上配置cesium以及widgets
Vue.prototype.Cesium = Cesium;
Vue.prototype.widgets = widgets;
  1. 配置vue.config.js
    注意 第二行中引入了copy-webpack-plugin,可以使用npm i copy-webpack-plugin安装
const { defineConfig } = require("@vue/cli-service");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const webpack = require("webpack");
const path = require("path");

let cesiumSource = "./node_modules/cesium/Source";
let cesiumWorkers = "../Build/Cesium/Workers";

module.exports = defineConfig({
  transpileDependencies: true,
  // 基本路径
  publicPath: "./",
  // 输出文件目录
  outputDir: "dist",
  // eslint-loader 是否在保存的时候检查
  lintOnSave: false,
  // webpack-dev-server 相关配置
  configureWebpack: {
    output: {
      sourcePrefix: " ",
    },
    amd: {
      toUrlUndefined: true,
    },
    resolve: {
      alias: {
        "@": path.resolve("src"),
        cesium: path.resolve(__dirname, cesiumSource),
      },
      fallback: {
        http: require.resolve("stream-http"),
        https: require.resolve("https-browserify"),
        zlib: require.resolve("browserify-zlib"),
        assert: require.resolve("assert/"),
        stream: require.resolve("stream-browserify"),
        // zlib: require.resolve("browserify-zlib")
      },
    },
    plugins: [
      new CopyWebpackPlugin({
        patterns: [
          { from: path.join(cesiumSource, cesiumWorkers), to: "Workers" },
        ],
      }),
      new CopyWebpackPlugin({
        patterns: [{ from: path.join(cesiumSource, "Assets"), to: "Assets" }],
      }),
      new CopyWebpackPlugin({
        patterns: [{ from: path.join(cesiumSource, "Widgets"), to: "Widgets" }],
      }),
      new CopyWebpackPlugin({
        patterns: [
          {
            from: path.join(cesiumSource, "ThirdParty/Workers"),
            to: "ThirdParty/Workers",
          },
        ],
      }),
      new webpack.DefinePlugin({
        CESIUM_BASE_URL: JSON.stringify("./"),
      }),
    ],
  },
});

以上代码中的

 fallback: {
        http: require.resolve("stream-http"),
        https: require.resolve("https-browserify"),
        zlib: require.resolve("browserify-zlib"),
        assert: require.resolve("assert/"),
        stream: require.resolve("stream-browserify"),
        // zlib: require.resolve("browserify-zlib")
      },

是可能出现错误的情况,需要使用npm进行相应安装
4. 在helloworld.vue文件中

//引入cesium
import * as  Cesium from "cesium" //编写代码时用这一行 注释下一行 这样有代码提示
import * as Cesium from "../../node_modules/cesium"; //运行时打开这一行 注释上一行 运行不报错
//创建cesium viewer 传入div 的id进行展示
 const viewer = new Cesium.Viewer('mycesium')

运行即可看到效果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3项目加载gltf模型到Cesium地球,您需要进行以下步骤: 1. 首先,在Vue项目安装Cesium库。您可以使用 npm 命令来安装它:npm install cesium 2. 打开 Vue 项目的入口文件(比如 main.js),并在顶部导入 Cesium 库。在这之前,确保在项目的 public/index.html 文件引入了 Cesium 的静态资源,以便正确加载 Cesium 的依赖。 3. 创建一个 Cesium 的实例,这样您可以在项目使用它。您可以在 Vue 组件的 mounted 钩子函数进行这个步骤。创建一个 div 元素,并为其设置一个唯一的 id 属性,这个 div 元素将用于显示 Cesium 地球。 4. 在 mounted 钩子函数,使用 Cesium 的 Viewer 类来创建一个地图视图。将要加载模型的场景地球放入到之前创建的 div 元素。您可以设置地图视图的一些属性,例如初始视角、瓦片地图的地址等等。 5. 使用 Cesium 的 Entity 类来创建一个实体对象,用于表示要加载的 gltf 模型。您可以设置模型的位置、方向、缩放等属性。 6. 使用 Cesium 的 Scene 类的方法来加载 gltf 模型。您可以使用 load 方法来加载 gltf 文件,然后将其添加到场景。 7. 配置视图的更新循环以确保地球视图不断更新,以呈现 gltf 模型以及其他地球上的实体。 8. 最后,您可以在 Vue 组件的模板使用之前创建的 div 元素来显示 Cesium 地球。 请注意,上述步骤是一个大致的指南。在实际项目,您可能需要根据具体需求进行一些调整和配置。此外,还可以利用 VueCesium 提供的其他功能和组件来增强您的项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值