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

news2024/10/9 18:45:13

系列文章目录

  1. 【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.coloradmin.cn/o/2199731.html

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

相关文章

现场直击!2023望繁信科技产品发布会精彩回顾

2023望繁信科技产品发布会圆满结束。 感谢200余名企业代表、合作伙伴、媒体到场参会&#xff0c;感谢3万多位关注望繁信科技和流程挖掘的朋友在线观看直播。 在会上&#xff0c;我们正式分享了望繁信科技多年深耕流程挖掘领域的思考、积累和部署&#xff0c;发布了过去一年在…

Pyppeteer:如何在 Python 中使用 Puppeteer 和 Browserless?

Python 中的 Pyppeteer 是什么&#xff1f; Pyppeteer 是流行的 Node.js 库 Puppeteer 的 Python 移植版本&#xff0c;用于以编程方式控制无头 Chrome 或 Chromium 浏览器。 本质上&#xff0c;Pyppeteer 允许 Python 开发人员在 Web 浏览器中自动执行任务&#xff0c;例如抓…

webm格式怎么转换成mp4?值得给你推荐的几种简单方法

webm格式怎么转换成mp4&#xff1f;MP4支持多种音频和视频编解码器&#xff0c;如H.264和AAC&#xff0c;用户可以根据需要调整视频和音频质量&#xff0c;以满足不同需求。同时&#xff0c;许多视频编辑软件广泛支持MP4格式&#xff0c;使得剪辑、合成和特效处理变得更加便捷。…

人工智能、人机交互和机器人国际学术会议

第三届人工智能、人机交互和机器人国际学术会议 &#xff08;AIHCIR 2024&#xff09;组委会热忱地邀请您参与本届大会。本届大会旨在聚集领先的科学家、研究人员和学者&#xff0c;共同交流和分享在人工智能、人机交互和机器人各个方面的经验和研究成果&#xff0c;为研究人员…

【C++】模板(初识):函数模板、类模板

本篇主要介绍C中的模板初阶的一些知识。模板分为函数模板和类模板&#xff0c;我们一个一个来看。 1.函数模板 1.1函数模板概念 函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实际的参数类型产生函数特定版本。…

LSTM时间序列模型实战——预测上证指数走势

LSTM时间序列模型实战——预测上证指数走势 关于作者 作者&#xff1a;小白熊 作者简介&#xff1a;精通python、matlab、c#语言&#xff0c;擅长机器学习&#xff0c;深度学习&#xff0c;机器视觉&#xff0c;目标检测&#xff0c;图像分类&#xff0c;姿态识别&#xff0c;…

五款软件助你秒变职场达人

✨ 每天忙碌于工作&#xff0c;却感觉事半功倍&#xff1f;别担心&#xff0c;今天就为大家揭秘5款高效工作软件&#xff0c;让你秒变职场达人&#xff0c;效率直线飙升&#xff01;&#x1f389; 1️⃣ 亿可达 &#x1f3d7;️ 软件连接神器 &#x1f3af; 特点&#xff1a…

Java后端面试很水的,7天就能搞定!

随着Java的越来越卷&#xff0c;面试也直接上难度了&#xff0c;从以前的八股文到场景题了&#xff0c;尤其是有经验的去面试&#xff0c;场景题都是会问的&#xff0c;近期面试过的应该都深有体会&#xff01; 场景题230道&#xff1a; 1.分布式锁加锁失败后的等待逻辑是如何…

项目管理全流程包括哪些环节,一文读懂项目管理全流程

项目管理全流程是一个系统性、阶段性的过程&#xff0c;旨在确保项目从启动到完成的高效运行。该流程包括以下几个关键阶段&#xff1a;项目管理全流程是确保项目从启动到完成顺利进行的一系列阶段和活动的总称。 以下是基于项目管理全流程对项目管理的描述&#xff1a; 一、…

单路测径仪的详细介绍

蓝鹏测控单路测径仪是一种高精度、高效率的在线检测设备&#xff0c;广泛应用于线缆、电缆、电线、胶管、塑料管、金属丝等行业的生产过程中。以下是对该产品的详细介绍&#xff1a; 一、核心技术与工作原理 蓝鹏测控单路测径仪以光电检测为核心&#xff0c;结合单片机、LED灯、…

Qt-QStatusBar窗口状态栏相关操作(48)

目录 描述 使用 设置临时消息 添加子控件 添加 Labe 添加 进度条 从右边添加 按钮 描述 状态栏是应⽤程序中输出简要信息的区域。⼀般位于主窗⼝的最底部&#xff0c;⼀个窗⼝中最多只能有⼀个状态栏。在 Qt 中&#xff0c;状态栏是通过 QStatusBar类 来实现的。在状态…

Linux-处理用户输入

命令行参数 特殊参数变量 移动变量 处理选项-查找选项 处理选项-使用getopt命令 获得用户输入

讲座在线预约管理系统的设计与实现使用SpringBootSSM框架开发

目录 摘要 1 引言 2 系统需求分析 3 技术选型 4 系统架构设计 5 核心功能实现 5.1 用户管理 5.2 讲座管理 5.3 预约管理 5.4 评论系统 6 安全性考虑 7 测试 8 结论 摘要 本文旨在设计和实现一个基于Spring Boot SSM框架的讲座在线预约管理系统&#xff0c;并结合…

【Linux进程间通信】深入探索:Linux下的命名管道与System V共享内存

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;Linux “ 登神长阶 ” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀Linux进程间通信 &#x1f4d2;1. 命名管道&#x1f4d9;2. 命名管道实现server&client通…

环境变量及命令行参数

目录 一、环境变量的概念和基本命令 二、环境变量的组织结构及获取环境变量的方式 &#xff08;1&#xff09;组织结构 &#xff08;2&#xff09;获取环境变量 命令行第三个参数 通过第三方变量environ获取 通过系统调用getenv获取 三、命令行参数 一、环境变量的概念和…

Go语言对接微信支付与退款全流程指南

在互联网技术日益发展的今天&#xff0c;线上支付已成为不可或缺的一部分。作为一门简洁高效的编程语言&#xff0c;Go&#xff08;又称Golang&#xff09;凭借其强大的并发处理能力和高效性能&#xff0c;在后端开发领域越来越受到开发者的青睐。本文将详细介绍如何使用Go语言…

学习干货IF=93.6!开发临床预测模型:分步指南

预测患者未来结果对临床实践至关重要&#xff0c;有助于医生做出明智决策。尽管每年发布大量预测模型&#xff0c;但许多研究存在方法学局限&#xff0c;如样本量不足和模型验证不充分&#xff0c;这削弱了模型的实际应用价值。因此&#xff0c;必须深入探讨并改进这些局限性&a…

电力央企数智化转型中的大模型构建及智能巡检机器人的应用

在全球经济数字化转型的大背景下&#xff0c;电力行业面临着多重挑战&#xff0c;包括能源结构的转型、市场竞争的加剧以及环境保护的压力。电力央企作为国家能源供应的中坚力量&#xff0c;亟需通过数智化转型提升竞争力和服务水平。 随着今年年初我国首次将“开展‘人工智能行…

第十四届蓝桥杯嵌入式省赛程序设计题解析(基于HAL库)

一.题目分析 &#xff08;1&#xff09;.题目 &#xff08;2&#xff09;.题目分析 1.PWM输出分析 模式切换时&#xff0c;占空比要不变&#xff0c; 在五秒之内就要变化成目标频率&#xff0c;同时要求频率的步进值要小于200hz 为了使步进值小于200hz,那么在五秒的时间之内…

AI绘画:人工智能颠覆艺术创作的新时代

*AI绘画的震撼与魅力* 你是否曾幻想过&#xff0c;手握画笔便能创造出前所未有的艺术作品&#xff1f;当我们谈及艺术&#xff0c;总会联想到那份独特的创意和灵感。而如今&#xff0c;随着人工智能的迅猛发展&#xff0c;AI绘画正以其独特的方式&#xff0c;颠覆着传统的艺术…