自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 Cesium中实现燕尾箭头、双向箭头等绘制

本文探讨了在Cesium中自定义复杂形状的绘制方法。重点分析了如何通过控制点和形状点构建粗箭头图形,其中控制点用于编辑调整,形状点则确定具体图形。文章提出将复杂图形拆解为简单形状组合的绘制思路,同时指出直接使用点位描述更为高效。此外,还讨论了使用顶点构建自定义Primitive的可能性,并计划实现Visio中的多种图形。文中比较了Cesium与OpenLayers在图形绘制上的差异,指出Cesium中轮廓处理相对复杂,设计上可参考OpenLayers的绘制效果。

2025-12-17 21:17:48 478

原创 Cesium中实现动态扩散圆

本文介绍了在Cesium中实现动态扩散圆效果的实现方法。核心思路是通过控制片元透明度来呈现扩散效果,主要利用czm_frameNumber函数控制动画速度。关键代码展示了如何计算片元到中心点的距离,并基于距离设置透明度渐变效果,使圆形边界逐渐扩散并淡出。该方法通过调节动画速度和边界参数,可以实现不同速度和大小的扩散圆效果,适用于地理信息可视化场景。

2025-12-15 21:57:53 428

原创 Cesium中实现流光线

摘要 本文介绍了在Cesium中实现流动线效果的两种方法。对于Primitive对象,通过自定义Material类SpriteLineMaterial,利用czm_frameNumber等内置函数实现动态效果,核心是通过纹理坐标和时间的计算产生流动感。对于Entity对象,则通过继承MaterialProperty类实现,关键在于将自定义材质添加到Cesium的材质缓存中。两种方法都支持通过参数调整动画速度、基础颜色等属性,最终都能实现线条沿路径流动的视觉效果。文中提供了完整的代码实现,包括材质定义、默认参

2025-12-11 22:13:49 602

原创 Cesium中实现灰度高度图

本文介绍了在Cesium中实现灰度高度图的方法。通过继承Cesium.Primitive类创建TinHeightMapPrimitive,将采样点的高度值归一化到[0,100]区间,并按指定步长划分高度段。每个高度段分配对应的灰度颜色值,颜色深浅与高度值成正比,最终实现高度图的灰度可视化效果。该方法基于三角网面构建,通过颜色渐变直观展示地形高度变化。

2025-12-10 21:48:01 487

原创 Cesium中实现三角网构建的面

本文介绍了在Cesium中使用WebGL构建地形面的方法。通过三角网技术,将点位数据转换为Float64Array类型,并计算边界范围及纹理坐标(ST)。重点说明了两种顶点处理方式:直接顺序索引或去重优化以减少内存占用。最后展示了如何通过高度值设置颜色渐变效果,并使用Cesium.Geometry创建具有层次感的3D地形面。实现代码演示了顶点位置、纹理和颜色的属性设置,以及边界球体计算等关键步骤。

2025-12-09 21:14:17 467

原创 Cesium中实现三角网、三角网Primitive

本文介绍了在Cesium中实现三角网的两种方法:使用turf.tin生成完整三角网和使用Delaunator生成索引再组合。两种方法都需要大量点位数据作为基础,其中turf.tin方法通过网格点映射可避免生成无效小三角,而Delaunator虽速度快但可能产生多余三角面。文章详细展示了Delaunator的实现代码,并比较了两种方法的优缺点。最后提出三角网的应用场景,包括挖填方计算和可视化显示,并建议使用自定义Primitive而非Entity.Polyline来处理大规模数据,以避免浏览器崩溃。

2025-12-08 21:39:11 597

原创 Cesium中实现批量网格采样、轮廓采样

本文探讨了Cesium中批量获取高程数据的方法。文章指出,虽然Cesium提供了sampleHeightMostDetailed等单个点采样方法,但批量采样需要更高效的方案。通过分析Cesium私有类Picking.js,特别是getRayIntersection方法,作者实现了批量网格采样功能。不同于直接扫描获取离散点的方法,作者采用首先生成标准高度网格点,再通过Picking逐行获取真实高程,最后进行Ray交点计算,形成标准网格数据。该方法为后续三角网分析等应用奠定了基础,实现了Cesium中的批量网格

2025-12-05 21:26:28 703

原创 Cesium中实现热力图

摘要:本文介绍在Cesium中实现热力图的方法,通过Canvas绘制后将图像作为材质贴到3D地形上。核心思路是将地理坐标(x,y)转换为Canvas坐标系,z值归一化为透明度。使用径向渐变绘制圆点叠加形成热力分布,最后根据透明度区间映射颜色。该方法成功将2D热力图融入3D地理场景,实现了坐标数据到热力可视化的转换。

2025-12-04 22:23:37 328

原创 Cesium中实现可视域分析

本文介绍了在Cesium中实现可视域分析的方法。主要通过在分析区域上方设置Camera(视高需略高于地形),创建Cesium.ShadowMap实例并将其光源类型设为点光源,再添加到PostProcessStage中实现。文章详细说明了ShadowMap的配置参数,包括光源半径、阴影大小等,并提到可参考ShadowMapShader.js中的czm_shadowVisibility代码或直接调试生成的GLSL代码。特别指出debugShow参数可帮助理解可视域分析效果,默认不可见区域显示为黑色。该方法实现了

2025-12-03 21:48:49 415

原创 Cesium中实现球体裁剪、挖空等功能

本文介绍了在Cesium中实现球体裁剪和挖空功能的方法。核心思路是利用WebGL的discard功能舍弃特定片元,类似Cesium内置的cartographicLimitRectangle属性。通过判断纹理坐标范围,可以限定渲染区域。对于不规则区域,可结合Canvas贴图进行边界判断。这种方法简单高效,可灵活实现多种裁剪效果。

2025-12-02 22:08:16 462

原创 Cesium中局部等高线、带高度等高线的实现

本文介绍了在Cesium中实现局部区域等高线的方法。针对ElevationContour材质只能应用于整个球体的问题,提出两种改造方案:对于规则区域采用边界判断,不规则区域则利用Canvas投影技术。同时探讨了高程数据显示的替代方案,通过本地缓存数据结合IDW插值算法生成网格和等高线,并动态调整网格大小以平衡精度与性能。该方法有效解决了原始材质的功能局限,但算法系数的可靠性仍需进一步验证。

2025-12-01 21:48:54 396

原创 Cesium中的地形采样、抬升、压平等功能实现

本文探讨了在Cesium中实现地形处理功能的两种方法。方法一是通过修改Cesium源码中的顶点着色器来调整地形高度,但维护成本较高;方法二则通过解析CesiumTerrainProvider提供的QuantizedMeshTerrainData数据,将其转换为经纬度和高程信息后进行修改,再重新封装。该方法利用四至判断优化性能,并采用IndexDB存储转换后的数据以提升本地处理效率。文中提供了数据转换与还原的关键代码片段,展示了如何高效地实现地形抬升、压平等功能。

2025-11-28 21:47:41 1049 2

原创 Cesium中的遮罩、掩膜、高亮等功能实现

摘要:本文探讨了在Cesium中实现区域遮罩的两种方法。传统Polygon打孔法存在灵活性差、边界处理困难等问题。方法一采用ClippingPolygon裁剪,但大数据量时性能低下,需通过简化点位和动态加载来优化。方法二基于WebGL重写球体材质,通过离屏Canvas投影判断像素位置,虽存在轻微毛边但效果更优。该功能被统一命名为"凸显",旨在突出显示特定区域。相比传统方法,WebGL方案具有更高灵活性和性能表现。

2025-11-27 22:35:08 448 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除