cesium开发入门(vue2)

一、cesium介绍

Cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎。Cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区域,并提供良好的触摸支持,且支持绝大多数的浏览器和mobile。

中文文档

官网

二、创建项目 vue2 + cesium

  1. 创建项目vue create cesiumdemo
  2. 选择vue2
  3. 启动项目npm run serve
  4. 安装一下cesium插件 npm i cesium
  5. 配置vue.config.js,然后重启项目
// vue.config.js
const { defineConfig } = require('@vue/cli-service')
const path = require("path");
const webpack = require("webpack");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const cesiumSource = "./node_modules/cesium/Source";
const cesiumWorkers = "../Build/Cesium/Workers";
module.exports = defineConfig({
  transpileDependencies: true,
  configureWebpack: (config) => {
    const base = {
      output: {
        sourcePrefix: " ",
      },
      amd: {
        toUrlUndefined: true,
      },
      resolve: {
        alias: {
          vue$: "vue/dist/vue.esm.js",
          "@": path.resolve("./src"),
          cesium: path.resolve(__dirname, cesiumSource),
          "@com": path.resolve("./src/components"),
        },
      },
      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("./"),
        }),
      ],
      module: {
        unknownContextRegExp: /^.\/.*$/,
        unknownContextCritical: false,
        rules: [
	        { test: /\.map$/, use: "json-loader" },
	        {
	           test: /\.mjs$/,
	           include: /node_modules/,
	           type: "javascript/auto"
	         }
        ],
      },
    }
    return base;
  },
})

三、初始化地球

展示页面

<template>
  <!-- 容器 -->
  <div id="container"></div>
</template>

<script>
import * as Cesium from 'cesium/Cesium' // api导入
import "cesium/Widgets/widgets.css" // 样式导入
export default {
  mounted() {
    this.initModel()
  },
  data() {
    return {

    }
  },
  methods: {
    initModel() {
      // defaultAccessToken是访问的token,没有的要去官网注册账户
      Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwZDMzMWQzYi01NDcyLTQzZDYtYmNmNy1iNDdmYzJlNTZkNTEiLCJpZCI6MTY0MzEwLCJpYXQiOjE2OTM4MTM1NDl9.l2Mocdo0ZiRjzLC9INU7p_Y6wZuiRXJ3T1eW3s0aB7c';
      // 初始化球体
      new Cesium.Viewer('container')
    }
  }
}
</script>

<style scoped>
  #container{
    width: 100vw;
    height: 100vh;
  }
</style>

效果图:在这里插入图片描述

defaultAccessToken获取

在这里插入图片描述

四、默认配置,隐藏不必要的工具

<template>
  <!-- 容器 -->
  <div id="container"></div>
</template>

<script>
import * as Cesium from 'cesium/Cesium' // api导入
import "cesium/Widgets/widgets.css" // 样式导入
export default {
  mounted() {
    this.initModel()
  },
  data() {
    return {

    }
  },
  methods: {
    initModel() {
      Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwZDMzMWQzYi01NDcyLTQzZDYtYmNmNy1iNDdmYzJlNTZkNTEiLCJpZCI6MTY0MzEwLCJpYXQiOjE2OTM4MTM1NDl9.l2Mocdo0ZiRjzLC9INU7p_Y6wZuiRXJ3T1eW3s0aB7c';
      // 初始化球体
      new Cesium.Viewer('container', {
        timeline: false, //时间轴控件
        animation: false,//动画控件
        geocoder: false, // 搜索控件
        homeButton: false, // 主页控件
        sceneModePicker: false,//投影方式按钮
        baseLayerPicker: false,// 图层选择按钮
        navigationHelpButton: false,//帮助助手按钮
        fullscreenButton: false, // 全屏按钮
      })
    }
  }
}
</script>

<style scoped>
  #container{
    width: 100vw;
    height: 100vh;
    overflow: hidden;
  }

</style>

效果图:

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Vue Cesium 是一个基于 Vue 框架的 Cesium 库,可以用于开发地形应用。Cesium 是一个强大的开源地理可视化引擎,能够展示三维地理数据,并提供一系列地图功能。 使用 Vue Cesium 开发地形应用,可以通过引入 Vue Cesium 库以及 Cesium 库,实现地图数据的可视化和交互。通过在 Vue 组件中嵌入 Cesium 的场景(Scene)对象,可以加载地形数据,如高程模型、卫星图像等。Vue Cesium 提供了一系列的组件和指令,可以方便地进行地图视图的布局和控制。 Vue Cesium 还提供了许多插件和工具,可以进行常用的地图操作,如平移、缩放、旋转等,并提供地图控制面板,方便用户进行交互操作。同时,开发者还可以根据自己的需求,自定义样式、添加标记、绘制图形等,丰富地展示地图数据。 在开发过程中,Vue Cesium 提供的状态管理机制和响应式设计,可以方便地与 Vue 的数据绑定和组件通信相结合,实现地图的动态更新和事件响应。 总之,通过 Vue Cesium 开发地形应用,可以充分发挥 Vue 框架和 Cesium 强大的功能,实现地图数据的可视化展示和交互操作。无论是开发行业地图、旅游地图还是教育地图等各种应用,都可以利用 Vue Cesium 进行快速、灵活的开发。 ### 回答2: Vue Cesium是一个基于Vue.js框架和Cesium的地理空间可视化库,用于开发地形应用程序。它结合了Vue.js的简洁、高效的数据绑定特性和Cesium的强大的地理空间可视化能力,为用户提供了丰富的交互体验和灵活的地图功能。 开发地形应用程序时,Vue Cesium为用户提供了多种地形数据加载的方式,包括DEM高程数据、地形瓦片和基于矢量数据的三维建模。用户可以根据具体需求选择合适的地形数据加载方式,并通过Vue.js的数据绑定机制动态展示地形信息。 同时,Vue Cesium还提供了丰富的地图操作和交互功能,包括缩放、平移、旋转、拾取、测量等。用户可以通过简单的配置即可实现这些交互功能,并与地形数据进行结合展示,增强用户的操作体验。 此外,Vue Cesium还支持地图标注、线段绘制、面积计算、路径规划等功能,使用户能够在地图上进行更加精细化的定位和操作。用户可以根据项目需求,灵活运用这些功能,开发出符合自身业务需求的地形应用程序。 总之,Vue Cesium作为一个强大的地理空间可视化库,有助于开发人员在Vue.js框架下快速构建高效、具有丰富交互功能的地形应用程序。它为用户提供了丰富的数据加载方式和交互功能,使得地形应用的开发变得更加便捷和灵活。 ### 回答3: Vue Cesium 是一种基于 Vue.js 的开源项目,它提供了与 Cesium.js 类似的功能,用于在 Web 端开发地形应用程序。Vue Cesium 结合了 Vue.js 的易用性和灵活性以及 Cesium.js 的强大地理可视化能力,使开发者能够更轻松地构建出交互性强、功能丰富的地形应用。 在 Vue Cesium 中,我们可以使用 Cesium.js 提供的各种地理数据源,如卫星图像、地形数据等,来展示真实的地球表面;我们还可以通过插件系统来扩展 Vue Cesium 的功能,例如添加地理定位功能、轨迹展示功能等。此外,Vue Cesium 也提供了丰富的可视化组件,用于绘制线条、面片、点云等,从而实现地形的渲染和交互。 在开发地形应用时,我们可以使用 Vue Cesium 提供的组件来构建 UI 界面,并通过绑定地理数据和用户交互事件来实现地形的展示和编辑。例如,我们可以使用 Cesium3DTileset 组件来加载地形瓦片数据,使用 Primitive 组件来绘制地形多边形,使用 Entity 组件来展示地标等。 使用 Vue Cesium 进行地形应用的开发具有很多优势。首先,Vue Cesium 的接口简单易用,文档完善,使得开发者能够更快速地上手;其次,Vue Cesium 结合了 Vue.js 的组件化开发方式,使得代码结构清晰,易于维护和扩展;最后,Vue Cesium 基于 Cesium.js,拥有强大的地理可视化功能,能够满足不同场景下的需求。 总而言之,Vue Cesium 是一个适用于地形应用开发的优秀工具,它能够帮助开发者快速构建出功能丰富、交互性强的地形应用程序。无论是进行地理数据可视化、地形分析还是地理定位等领域的开发Vue Cesium 都是一个值得推荐的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值