Cesium 上手不完全指北

本文是关于Cesium的学习笔记,介绍了如何从环境搭建到项目配置、组件实现,涵盖地图图层、地形、控件、相机、时钟和实体等内容。通过示例代码展示了如何在Vue项目中创建和配置Cesium地图,实现动态效果和三维模型导入。
摘要由CSDN通过智能技术生成

Cesium 上手不完全指北

将最近学习的 CesiumJS 做一个系统梳理,从项目配置开始,记录常用 API 的使用。

环境搭建与安装

首先,什么是 CesiumCesium 是一款开源的基于 JavaScript3D 地图框架,即地图可视化框架。产品基于 WebGL 技术,可以使用 CesiumJS 创建虚拟场景的 3D 地理信息平台。其目标是用于创建以基于 Web 的地图动态数据可视化。在提升平台的性能、准确率、虚拟化能力、易用性方面提供各种支持。

更多介绍和信息可通过官网进行学习。

注册

Cesium ion 是一个提供瓦片图和 3D 地理空间数据的平台,Cesium ion 支持把数据添加到用户自己的 CesiumJS 应用中。使用二三维贴图和世界地形都需要 ion 的支持,如果没有自己的数据源需要 cesium 提供的数据源就需要申请 iontoken,具体可以通过以下链接申请 access token

在创建 Cesium Viewer 的时候,将 access token 填为自己的 access token 即可。

Cesium.Ion.defaultAccessToken = '<YOUR ACCESS TOKEN HERE>';

项目搭建

进入项目搭建过程,项目选择在 Vue 平台上进行实现,首先创建项目安装 cesium 库:

vue create cesium-vue
cd cesium-vue
npm i cesium@1.61 --save

注意:目前使用 webpack 进行配置引用最新版本(1.71) cesium 暂时不能导入,实测 cesium@1.61 版本可以进行 import 导入。

项目配置

根目录下新建 vue.config.js 配置文件,对项目进行基本配置:

const CopyWebpackPlugin = require('copy-webpack-plugin')
const webpack = require('webpack')
const path = require('path')

const debug = process.env.NODE_ENV !== 'production'
let cesiumSource = './node_modules/cesium/Source'
let cesiumWorkers = '../Build/Cesium/Workers'
module.exports = {
   
    publicPath: '',
    devServer: {
   
        port: 9999
    },
    configureWebpack: {
   
        output: {
   
            sourcePrefix: ' '
        },
        amd: {
   
            toUrlUndefined: true
        },
        resolve: {
   
            alias: {
   
                'vue$': 'vue/dist/vue.esm.js',
                '@': path.resolve('src'),
                'cesium': path.resolve(__dirname, cesiumSource)
            }
        },
        plugins: [
            new CopyWebpackPlugin([{
    from: path.join(cesiumSource, cesiumWorkers), to: 'Workers'}]),
            new CopyWebpackPlugin([{
    from: path.join(cesiumSource, 'Assets'), to: 'Assets'}]),
            new CopyWebpackPlugin([{
    from: path.join(cesiumSource, 'Widgets'), to: 'Widgets'}]),
            new CopyWebpackPlugin([{
    from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers'}]),
            new webpack.DefinePlugin({
    CESIUM_BASE_URL: JSON.stringify('./') }),
            new CopyWebpackPlugin([{
    from: path.join('./static', 'model'), to: 'model3D' }]),
            new CopyWebpackPlugin([{
    from: path.join('./static', 'images'), to: 'images' }])
        ]
    }
}

在根目录下创建 static 文件夹用于后续 modelimages 的存放。

组件实现

src/components/ 下新建 CesiumViewer.vue 进行组件实现:

<template>
  <div id="cesiumContainer"></div>
</template>

<script>
import Cesium from 'cesium/Cesium'
import 'cesium/Widgets/widgets.css'
export default {
   
    name: 'CesiumViewer',
    mounted ()
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值