Cesium绘制透明光圈

简介: 这篇文章介绍了如何在Cesium中绘制具有透明度的圆形光圈,并提供了实现这一功能的具体代码和步骤。

这节讲用cesium在地球上绘制一个透明的光圈,常用于标识一片区域等。具体步骤是现在场景中放置一个圆形的几何体,设置圆形几何体的中心点在地球上的经纬度和半径。然后创建几何体实例,引入圆形,并设置颜色,最后设置一些几何体的属性,并加载到场景中,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <!-- Include the CesiumJS JavaScript and CSS files -->
  <script src="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Cesium.js"></script>
  <link href="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
  <div id="cesiumContainer"></div>
  <script>
    // 设置token
    Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjNDgzZGEyYy0yZmFkLTQ3ZGItOWU2My1jZjRkN2ZhNTU0OTAiLCJpZCI6MTYyODM0LCJpYXQiOjE2OTMxMjA4MTB9.xHUQdfmqpl3Iei6Iur_AOYeg2jyDiXZsaYBg33KU_zg';

    // 初始化一个id为 `cesiumContainer`的HTML元素作为我们的容器,这里不传ID传DO .
    const viewer = new Cesium.Viewer('cesiumContainer',{});    

    //绘制一个圆,center是中心点经纬度,radius是半径,vertexFormat是顶点格式
   var circleGeometry = new Cesium.CircleGeometry({
      center: Cesium.Cartesian3.fromDegrees(118.763232, 32.061707),
      radius: 5000,
      vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
    });
    //创建几何体实例,并将上面的圆添加进去,然后设置颜色
    var circleInstance = new Cesium.GeometryInstance({
      geometry: circleGeometry,
      attributes: {
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(new Cesium.Color(1.0, 1.0, 0.0, 0.5))
      }
    });
    //设置透明和封闭属性
    var circlePrimitive = new Cesium.Primitive({
      geometryInstances: [circleInstance],
      appearance: new Cesium.PerInstanceColorAppearance({
        translucent: true,
        closed: true
      })
    });

    viewer.scene.primitives.add(circlePrimitive);

    //飞入效果,其他章节有讲到
    viewer.camera.flyTo({
      destination : Cesium.Cartesian3.fromDegrees(118.763232, 32.061707, 40000),
      orientation : {
        heading : Cesium.Math.toRadians(0),
        pitch : Cesium.Math.toRadians(-90),
      }
    });
  </script>
 </div>
</body>
</html>

效果图1694481688426.jpg 以上如有问题可以在评论区留言

相关文章
cesium添加实体不被地形遮挡的参数设置
disableDepthTestDistance:指定从相机到禁用深度测试的距离,关于深度测试我们将在后面的文章中介绍到,由于深度测试的存在,我们的对象很多时候会被地形挡住,如下:
2840 0
cesium添加实体不被地形遮挡的参数设置
Cesium开发:模型实体高亮
Cesium开发:模型实体高亮
960 0
|
定位技术
干货!解决Cesium中Entity移动漂移的问题
案例场景:在Cesium开发三维场景展示中,肯定会碰到加载Entity的需求,如果在你的gis应用中,带了地形的展示。那么在旋转切换画面时,Entity是否跟着一起动了起来,感觉像漂移一样呢?
4212 0
干货!解决Cesium中Entity移动漂移的问题
|
定位技术 API 网络架构
地图图层接入:从mapbox转向cesium
由于地图坐标系的不统一,地图图商提供的图层服务也各有特色,在图层对接的开发过程中常会遇到许多坑,从二维图层到三维图层,地图引擎mapbox再到cesium,本文将分享笔者在近期地图图层接入过程中总结的一些经验。
4514 10
|
JavaScript 定位技术 异构计算
WebGis——从零开始vue使用cesium添加点线(四)
WebGis——从零开始vue使用cesium添加点线(四)
cesium自带的组件显示与隐藏
这篇文章讲解了如何控制Cesium中自带组件的显示与隐藏,包括了各个组件的属性名称及其对应的显示隐藏操作方法。
435 0
cesium自带的组件显示与隐藏
Cesium给物体添加贴图
这篇文章讲解了在Cesium中如何为3D模型添加贴图,并提供了具体的实现步骤和代码示例。
746 2
|
JSON 数据格式
Cesium绘制一个正方体
这篇文章详细说明了如何在Cesium中创建并精确控制一个厘米级精度的立方体模型。
241 2
Cesium绘制一个正方体
|
JavaScript 前端开发 数据格式
Cesium案例解析(四)——3DModels模型加载
Cesium案例解析(四)——3DModels模型加载
666 0
|
数据可视化 JavaScript 前端开发
Cesium案例解析(五)——3DTilesPhotogrammetry摄影测量3DTiles数据
Cesium案例解析(五)——3DTilesPhotogrammetry摄影测量3DTiles数据
481 0