Cesium
文章平均质量分 91
AIGIS.
一名有趣的giser,致力于gis普适话、大众化、平民化。
展开
-
Cesium自定义Shader中常用的常量、结构体和函数概览
本文列举了Cesium中编写GLSL时常用的常量、结构体及函数,因为Cesium的文档中并没有这些类的描述信息,因此这里列出以备查,方便编写自定义Shader时使用。原创 2024-09-11 19:12:18 · 1138 阅读 · 0 评论 -
Cesium定义并使用国家2000坐标系
自从2017年自然资源部发文要求使用国家2000坐标系以来,各地区各部门已经逐渐开始使用国家2000坐标系(CGCS2000),并逐步实现将已有的北京54、西安80坐标系转换到国家2000坐标系。但是目前最火爆的三维地理信息框架Cesium,其中使用的默认坐标系仍然是WGS84坐标系。为了方便使用,下文中皆称为2000坐标系和84坐标系。本文正是基于此,将坐标系修改为2000坐标系,并对比修改前后的效果。原创 2024-08-23 10:15:05 · 969 阅读 · 0 评论 -
Cesium中的线性代数和计算机图形学知识介绍
在 Cesium(包括 CesiumJS 和用于 Unreal Engine 中的 Cesium for Unreal)中,线性代数和计算机图形学知识被广泛应用于 3D 地理可视化、地形渲染、空间分析等领域,本文将对一些常见的知识进行基本介绍。基本运算:向量加法、减法、标量乘法等,用于表示位置、方向、速度等。点积 (Dot Product):计算两个向量之间的夹角,应用于光照、视图方向等。叉积 (Cross Product):计算两个向量的垂直向量,用于法线计算和旋转。原创 2024-06-21 10:55:58 · 1034 阅读 · 0 评论 -
Cesium源码解析六(3dtiles属性获取、建筑物距离计算、建筑物着色及其原理分析)
在本文中,我们将探讨如何使用 CesiumJS 来加载和显示 3D 建筑物数据,并根据用户点击的位置进行动态着色。我们将使用 CesiumJS 的 OpenStreetMap 建筑物数据集,通过点击地图上的建筑物,根据距离计算并动态地为这些建筑物着色。这不仅增强了地图的交互性,还为用户提供了直观的地理空间数据可视化体验。我们将逐步讲解如何设置 Cesium Viewer,加载 3D 建筑物数据,处理用户点击事件,以及根据距离进行建筑物的颜色处理。原创 2024-06-17 19:51:07 · 1866 阅读 · 0 评论 -
Cesium401 (Unauthorized)https://api.cesium.com/v1/assets/2/endpoint未授权问题
本文我们通过发现问题、分析问题、解决问题的方式,处理了Cesium中401访问未授权问题。系统的分析了无法访问Cesium官网导致的图层加载失败问题,以及给出了解决方案。原创 2024-06-07 10:46:12 · 915 阅读 · 0 评论 -
Cesium源码解析一(搭建开发环境)
其实搭建 CesiumJS 的开发环境非常简单,只需要安装好了 node 环境,其他的都好说,为了能够让零基础的同学入门,我们还是来简单讲一讲。本文通过一步步设置,搭建出了开发环境,没什么难度,如果读者有任何问题,欢迎指正。原创 2023-07-12 11:47:03 · 1335 阅读 · 0 评论 -
Cesium源码解析四(metadata元数据拓展中行列号的分块规则解析)
上一篇我们讲到了 metadataAvailability 的含义,它的值是10,意味着每10级会进行一次四叉树的构建,因此第0级和第10级中才包含有元数据的信息。但是我们并没有讲元数据中行列号的分块规则是什么,这一篇,我们就来详细讲一讲。 我们先来看下 Cesium ion 官方提供的 layer.json 的结构: 相信只要是用过 Cesium 的同学对这个结构应该都不陌生吧。那 available 参数什么意思呢?它自然是代表了每一级全部 terrain 瓦片的行列号。我们再来看看avai原创 2022-07-11 15:37:56 · 1645 阅读 · 0 评论 -
Cesium源码解析五(Quantized-Mesh(.terrain)格式文件在CesiumJS和UE中加载情况的对比)
自从开始做terrain地形文件的管理,就总是会遇到在CesiumJS和UE中同时适配的问题。经过一段时间的尝试,总算找到了规律,特此来记录一下。有很多人估计都是使用CesiumLab提供的工具来生成 terrain 的,并没有关心过这里面的原理。因此本文算是抛砖引玉吧,因为是用C++写的,本人水平太渣,不会写C++,因此只负责搞理论,具体的修改是由写C++的同事负责的。有兴趣的同学可以试一试,回见~原创 2022-11-18 16:38:20 · 2967 阅读 · 0 评论 -
Cesium源码解析二(terrain文件的加载、解析与渲染全过程梳理)
目前市场上三维比较火的实现方案主要有两种,b/s 的方案主要是 Cesium,c/s 的方案主要是 ue(skyline 和 unity 也占一部分份额)。他们分别对应的是 WebGL 和 OpenGL,其最终都是通过 Shader 来实现的,通过图形学来实现的,所以又回到了代码界永远不变的真理,不论什么语言,修炼内功才是王道,修炼数据结构与算法才是王道。b/s 的好处显而易见,不用客户端怎么配置,但是缺点是对于大数据量的加载,存在性能瓶颈。而 c/s 的方案,主要是为了快,但是需要一堆环境配置。所以就原创 2022-06-23 18:03:11 · 7697 阅读 · 5 评论 -
Cesium源码解析三(metadataAvailability的含义)
上一篇中我们梳理了 Cesium 加载、解析、渲染 terrain 的整个流程,这一篇我们就深入细节,看一下 layer.json 中的 metadataAvailability 参数的含义。一般使用 Cesium 的同学可能也注意不到这个参数,之所以要单独拿出来说这个,是因为我们遇到了一个问题,使用 GeoServer 发布的 terrain 服务,在 UE 中加载没问题,在 Cesium 中加载却一直报错: TypeError: Cannot read properties of undefined原创 2022-06-28 18:16:18 · 1880 阅读 · 4 评论