cesium点聚合点击扩散点位

Cesium 实现点聚合点击扩散效果

在 Cesium 三维地图应用中,当需要展示大量点位数据时,点聚合(Point Clustering)是一种常用的可视化优化技术。然而,聚合后的点位如何高效地展示和交互,成为了一个关键问题。本文将介绍一种简洁而实用的解决方案:点击聚合点后,相机自动飞行并放大到合适的高度,实现聚合点的”扩散”效果,让用户可以清晰查看聚合点包含的所有单独点位。

问题背景

在处理大规模点位数据时,点聚合技术可以有效减少渲染压力,提升应用性能。但这带来了新的交互挑战:

阅读更多

cesium加载3DGS

Cesium 团队很早就已经在 3DTiles1.1 上实现了 3DGS 加载,只是因为这个 KHR_gaussian_splatting 还没有正式成为标准的扩展,一直在一个独立的分支当中(基于 Cesium 的 splat-shader 分支版本的原生渲染。目前 Cesium 针对 3D 高斯泼溅的开发放在了 splat-shader 这个分支版本,想尝鲜的用户可以直接下载这个分支版本,这个版本的案例集合中也自带了一个3d 高斯泼溅渲染的 demo,但是场景规模还比较小。)

加载 3DGS 步骤

1.下载 cesium splat-shader 分支,然后源码编译,npm run build 生成一个可用的包

2.splat 高斯数据转成 3dtiles 可以用 GISBox 或者 Cesiumlab

3.用这个分支生成的包加载这个 3dtiles

阅读更多

Cesium实现积雪

在 Cesium 中实现逼真的积雪效果:基于法线的着色器技术

在三维可视化应用中,积雪效果是增强场景真实感和季节变化的重要元素。特别是在城市规划、景观设计和数字孪生等领域,逼真的积雪效果可以大大提升用户体验。本文将深入探讨如何使用基于法线的着色器技术在 Cesium 中实现高质量的积雪效果,并解析其背后的图形学原理。

在现实世界中,雪的积累有其特定规律:

  • 顶面和向上表面积雪最多
  • 垂直表面(如墙壁)积雪很少或没有
  • 悬挑底面基本没有积雪
  • 积雪在边缘和转角处有平滑过渡
阅读更多

Cesium 自定义 Primitive 实现三角形绘制

在 Cesium 开发中,有时我们需要自定义图形来满足特定的可视化需求。本文将介绍如何通过继承 Cesium 的 Primitive 类来实现自定义三角形绘制,并深入解析 WebGL 底层实现原理。

基本原理

Cesium 提供了丰富的可视化组件,但有些特殊场景下需要我们直接操作 WebGL 来实现定制化的图形渲染。自定义 Primitive 允许我们直接使用 WebGL 着色器程序来控制顶点数据和渲染流程。

代码实现

阅读更多

cesium drawcommand介绍

DrawCommand 是 Cesium 渲染器的核心类,常用的接口 Entity、Primitive、Cesium3DTileSet,以及地形和影像的渲染等等,底层都是一个个 DrawCommand 完成的。在进行扩展开发、视觉特效提升、性能优化、渲染到纹理(RTT),甚至基于 Cesium 封装自己的开发框架,定义独家数据格式等等,都需要开发人员对 DrawCommand 熟练掌握。而这部分接口,Cesium 官方文档没有公开,网上的相关资料也比较少,学习起来比较困难,所以接下来我们用几期文章,由浅入深,实用为主,力求全面地介绍 DrawCommand 及相关类的运用。

阅读更多

cesium加载10万点

Cesium 优化:高效加载 10 万点位的实现方案

在 WebGIS 应用开发中,大量点位标记的高效渲染一直是一个挑战。特别是在 Cesium 这样的三维地图引擎中,当需要同时展示上万甚至十万级别的点位标记时,性能问题尤为突出。本文将分享一种在 Cesium 中高效加载和渲染 10 万级点位的实现方案,重点关注 BillboardCollection 的优化配置。

问题背景

在实际业务中,我们经常需要在地图上展示大量的点位标记,例如:

阅读更多

cesium封装限制相机范围接口

在开发 Cesium 三维应用时,相机控制是用户交互体验的核心部分。有时我们需要限制用户的视角范围,比如在展示特定区域时防止用户迷失方向,或者在虚拟导览中保持合理的观察视角。本文将详细介绍如何在 Cesium 中实现相机约束,限制用户可以浏览的角度、高度和区域范围。

在三维 GIS 应用中,相机约束有多种实用场景:

  1. 导览体验优化:在虚拟导览中,限制视角可以提供更有引导性的体验
  2. 防止无效视角:避免用户旋转到奇怪的角度或者深入地下
阅读更多

cesium 二维下获取相机位置

在 Cesium 应用开发中,获取相机位置是一个非常常见的需求,无论是用于保存当前视图状态、实现自定义导航控制,还是进行位置计算。然而,在 Cesium 的不同显示模式(2D、3D、Columbus View)下,获取相机位置的方法存在一些差异。本文将重点介绍在 2D 模式下如何正确获取相机位置,以及相关坐标系的转换。

Cesium 中的坐标系统

在深入讨论之前,我们需要先了解 Cesium 中的两种主要坐标系统:

  1. 笛卡尔坐标系(Cartesian3):以地球中心为原点的三维直角坐标系,单位为米。
  2. 地理坐标系(Cartographic):使用经度、纬度和高度表示的坐标系,经纬度以弧度为单位。
阅读更多