【WebGis开发 - Cesium】三维可视化项目教程---初始化场景

系列文章目录

未完待续~

目录

  • 系列文章目录
  • 引言
  • 一、Cesium引入项目
    • 1.1 下载资源
    • 1.2 项目引入Cesium
  • 二、初始化地球
    • 2.1 创建基础文件
      • 2.1.1 创建Cesium工具方法文件
      • 2.1.2 创建主页面
    • 2.2 看下效果
  • 三、总结

引言

本教程主要是围绕Cesium这一开源三维框架开展的可视化项目教程。总结一下相关从业经验,如果有什么疑问或更好的见解,欢迎评论、私聊探讨,共同进步。

就我个人的观点,任何一个三维可视化项目的核心点无非以下几点:

  1. 二维图层、三维模型的加载显示或隐藏的管理(图层树)
  2. 相机视角管理(视点保存、路径漫游)
  3. POI点的展示与点选查询
  4. 简易图形绘制及保存
  5. 利用数学计算及图形绘制表达一些gis分析结果(高阶功能)
  6. shader应用材质(更随心所欲的高阶技巧)

其中我认为1-4点是作为刚入门Webgis开发的工作人员必须要掌握的内容,5、6点作为进阶内容提升自己的核心竞争力。
市面上也有一些较为成熟的Cesium改造产品,例如:超图 。他的优势就是已经将以上六点都完成的非常完善,并且配合功能强大的iserver服务系统,可以让开发人员能够快速交付一个完整的三维可视化系统。

作为一个开发人员我们应该具备什么能力呢?

  • 深入理解js语言,不论是Cesium、Mapbox、Leaflet亦或是高德、百度、腾讯地图等,都可以认为是一个完善的js工具库,你无需对图形学有较深入的理解,只需要做好API战神,按照API介绍即可完成基础开发工作。
  • 更多的业务经验,新手对于Webgis的恐惧往往来源于不熟悉,密密麻麻的API让人看着头疼。只有做了大量的实践,知道如何利用已知API组合实现目标业务场景,你才能真正有所进步。
  • 文档阅读能力,二三维框架会将各种基础能力以API的形式提供给开发人员,我们需要有能力去根据自己的业务需求查询相关API并组合它们。也可以通过博客论坛查询已有的业务实现经验,去复现并适配自己的项目。

一、Cesium引入项目

基于目前项目的VUE前端框架,不论2.0或者3.0版本。

我查询了一些资料,想看看其他人对于Cesium引入项目有什么更好的方式。但是整体思路都是将Cesium的依赖包放置在项目Public目录下,并引入index.html中。例如使用webpack或者vite的copy插件,动态的将cesium依赖的关键内容进行拷贝并引入。

所以我们直接去官网下载cesium放置在项目的public目录,并手动引入index.html文件中。

1.1 下载资源

下载地址:Cesium资源

在这里插入图片描述
下载完成压缩包后,找到合适位置解压,并找到如下目录 \Cesium-1.122\Build 。将目录下的 Cesium 文件夹复制到项目的 public 目录下。Cesium文件夹内容如下:
在这里插入图片描述

1.2 项目引入Cesium

在项目的index.html文件中做如下内容补充:
在这里插入图片描述


二、初始化地球

2.1 创建基础文件

2.1.1 创建Cesium工具方法文件

创建以下目录的文件夹 src/utils/cesium ,在该目录下创建index.js文件

根据项目需求决定是否需要Cesium Ion的服务,去官网申请AccessToken
申请地址:Cesium Ion
在这里插入图片描述

export const initCesiumMap = () => {// 如果需要使用Cesium官方提供的地形服务或地图服务,需要申请// Cesium.Ion.defaultAccessToken = "你在Cesium ion申请的AccessToken";// 初始化场景window.viewer = new Cesium.Viewer("mapContainer", {// 去掉默认点选弹窗infoBox: false,// 去掉左下角动画播放按钮animation: false,// 去掉右上角搜索按钮geocoder: false,// 去掉右上角选择底图按钮baseLayerPicker: false,// 去掉右上角二三维模式切换按钮sceneModePicker: false,// 去掉右上角返回主视角按钮homeButton: false,// 去掉右上角帮助说明按钮navigationHelpButton: false,// 去掉底部时间线timeline: false,// 去掉右下角全屏按钮fullscreenButton: false,});// 去掉底部版本信息viewer.bottomContainer.style.display = "none";
};

2.1.2 创建主页面

以vue3.0框架为例,创建主页面。

<template><div id="mapContainer"></div>
</template><script setup>
import { onMounted } from "vue";
import { initCesiumMap } from "@/utils/cesium/index.js";onMounted(() => {initCesiumMap();console.log("cesium loaded");
});
</script>
<style scoped>
#mapContainer {width: 100vw;height: 100vh;overflow: hidden;
}
</style>

2.2 看下效果

至此你可以获得一个画面干净的地球画面,接下来就是在项目设计下完成工作。
在这里插入图片描述


三、总结

以上即为vue项目如何引入Cesium开发包,并创建一个干净的地球场景。

在接下来的系列文章中,我将围绕本文开头提到的三维可视化项目的六个核心点展开描述相关内容和代码案例。

如果大家感兴趣或者有什么疑问点,欢迎评论或私聊,我们一起探讨研究解决问题。

再接再厉~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1554914.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

银河麒麟服务器镜像完整性验证:MD5校验

银河麒麟服务器镜像完整性验证&#xff1a;MD5校验 步骤一&#xff1a;获取标准MD5值步骤二&#xff1a;计算MD5值步骤三&#xff1a;对比MD5值 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在下载或传输银河麒麟服务器镜像时&#xff0c…

Oracle架构之表空间详解

文章目录 1 表空间介绍1.1 简介1.2 表空间分类1.2.1 SYSTEM 表空间1.2.2 SYSAUX 表空间1.2.3 UNDO 表空间1.2.4 USERS 表空间 1.3 表空间字典与本地管理1.3.1 字典管理表空间&#xff08;Dictionary Management Tablespace&#xff0c;DMT&#xff09;1.3.2 本地管理方式的表空…

Ubuntu 中 Redis ,MySQL 基本使用

1、Redis &#xff08;1&#xff09;启动Redis 服务端客户端命令 服务端 ps aux | grep redis 查看redis服务器进程 sudo kill -9 pid 杀死redis服务器 sudo redis-server /etc/redis/redis.conf 指定加载的配置文件客户端 连接redis&#xff1a; redis-cli运⾏测试命令&am…

《python语言程序设计》2018版第8章19题几何Rectangle2D类(上)--原来我可以直接调用

2024.9.29 玩了好几天游戏。 感觉有点灵感了。还想继续玩游戏。 2024.10.4 今天练习阿斯汤加练完从早上10点睡到下午2点.跑到单位玩游戏玩到晚上10点多. 现在回家突然有了灵感 顺便说一句,因为后弯不好,明天加练一次. 然后去丈母娘家. 加油吧 第一章、追求可以外调的函数draw_r…

【Python】pyenv:管理多版本 Python 环境的利器

pyenv 是一个强大的 Python 版本管理工具&#xff0c;它允许开发者在同一台计算机上轻松安装和管理多个 Python 版本。对于需要在不同项目中使用不同 Python 版本的开发者来说&#xff0c;pyenv 是一个非常有用的工具&#xff0c;因为它可以帮助用户在全局和项目级别控制 Pytho…

C/C++/EasyX——入门图形编程(4)

【说明】紧接上文(&#xff61;&#xff65;ω&#xff65;&#xff61;)&#xff0c;好了&#xff0c;接下来&#xff0c;就让我们开始学习图像处理和获取鼠标消息的函数吧。&#xff08;各位友友们不要着急&#xff0c;想在短时间内就想做小游戏或者写出各种好看的画面是不简…

小白快速上手 Docker 03 | Docker数据卷

数据卷 在前面使用Docker时&#xff0c;可能会遇到以下几个问题&#xff1a; 当Docker 里的容器挂了以后打不开&#xff0c;这时候只有删除该容器了&#xff0c;但删除容器会连容器中的产生的数据也一起删除了&#xff0c;大部分场景下这是不能接受的。Docker容器与容器之间不…

【深度学习基础模型】深度残差网络(Deep Residual Networks, DRN)详细理解并附实现代码。

【深度学习基础模型】深度残差网络&#xff08;Deep Residual Networks, DRN&#xff09;详细理解并附实现代码。 【深度学习基础模型】深度残差网络&#xff08;Deep Residual Networks, DRN&#xff09;详细理解并附实现代码。 文章目录 【深度学习基础模型】深度残差网络&a…

使用前端三剑客实现一个备忘录

一&#xff0c;界面介绍 这个备忘录的界面效果如下&#xff1a; 可以实现任务的增删&#xff0c;并且在任务被勾选后会被放到已完成的下面。 示例&#xff1a; &#xff08;1&#xff09;&#xff0c;增加一个任务 &#xff08;2&#xff09;&#xff0c;勾选任务 &#xff…

Chat登录时出现SSO信息出错的解决方法

目录 1. 问题所示2. 问题所示3. 解决方法 1. 问题所示 此贴主要是总结回顾&#xff0c;对此放置在运维专栏 出现如下问题&#xff0c;很懵&#xff0c;以为是节点挂了还是网址蹦了 一直刷新&#xff0c;登录之后就出现这个问题 2. 问题所示 对于SSO&#xff0c;也就是单点登…

ExcelToWord-Excel套打Word-Word邮件合并工具分享

Excel to Word转换工具分享 在日常工作或学习中&#xff0c;我们常常需要将Excel中的数据导出到Word文档中&#xff0c;以便更好地展示信息。市场上有许多Excel to Word的转换工具&#xff0c;它们各有特色。今天&#xff0c;我们就来推荐几款这样的工具&#xff0c;并探讨一下…

基于Springboot+Vue的教师科研管理系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

用Python实现运筹学——Day 12: 线性规划在物流优化中的应用

一、学习内容 线性规划在物流优化中可以用于解决诸如配送路径优化、货物运输调度等问题。配送中心的路径优化问题本质上是寻找一条最优路径&#xff0c;在满足需求点的需求条件下&#xff0c;最小化配送的总运输成本或时间。常见的物流优化问题包括&#xff1a; 配送中心的货…

Python小示例——质地不均匀的硬币概率统计

在概率论和统计学中&#xff0c;随机事件的行为可以通过大量实验来研究。在日常生活中&#xff0c;我们经常用硬币进行抽样&#xff0c;比如抛硬币来决定某个结果。然而&#xff0c;当我们处理的是“质地不均匀”的硬币时&#xff0c;事情就变得复杂了。质地不均匀的硬币意味着…

【C++】—— 类和对象(中)

【C】—— 类和对象(中) 文章目录 【C】—— 类和对象(中)前言1. 类的默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载 结语 前言 小伙伴们大家好呀&#xff0c;昨天的 【C】——类和对象(上) 大家理解的怎么样了 今天…

网约班车升级手机端退票

背景 作为老古董程序员&#xff0c;不&#xff0c;应该叫互联网人员&#xff0c;因为我现在做的所有的事情&#xff0c;都是处于爱好&#xff0c;更多的时间是在和各行各业的朋友聊市场&#xff0c;聊需求&#xff0c;聊怎么通过IT互联网 改变实体行业的现状&#xff0c;准确的…

卡码网KamaCoder 53. 寻宝

题目来源&#xff1a;53. 寻宝&#xff08;第七期模拟笔试&#xff09; C题解&#xff08;来源代码随想录&#xff09;&#xff1a;最小生成树 prim prim三部曲 第一步&#xff0c;选距离生成树最近节点第二步&#xff0c;最近节点加入生成树第三步&#xff0c;更新非生成树节…

随时随地,轻松翻译:英汉互译软件的便捷之旅

翻译英汉互译工具&#xff0c;就如同一位随时待命的语言助手&#xff0c;在这纷繁复杂的语言世界中为我们搭建起理解与沟通的桥梁。接下来&#xff0c;让我们一同深入了解这些神奇的英汉互译工具&#xff0c;探索它的诸多功能和独特魅力。 1.福晰在线翻译 链接直达>>h…

Python案例--三数排序

一、引言 在信息爆炸的时代&#xff0c;我们每天都会接触到大量的数据。无论是工作中的报表、学习中的数据集&#xff0c;还是日常生活中的购物清单&#xff0c;数据的有序性对于提高效率和决策质量都至关重要。排序算法作为数据处理的基础工具&#xff0c;其重要性不言而喻。…

RTSP协议讲解

1.RTSP协议 rtsp&#xff0c;英文全称 Real Time Streaming Protocol&#xff0c;RFC2326&#xff0c;实时流传输协议&#xff0c;是 TCP/IP 协议体系中的一个应用层协议。 RTSP 交互流程 1&#xff09;OPTIONS C--->S 客户端向服务器端发现 OPTIONS&#xff0c;请求可用…