cesium绘制点,高清点

问题清单

本章内容,我们需要解决以下几个问题:
1 cesium如何绘制点
2 cesium如何绘制高清点

1 点对象PointGraphics

cesium期望我们使用简单的entity去管理点对象

 	var point_options = {
        show: true, //是否展示
        pixelSize: 20, //点的大小
        // heightReference:HeightReference.NONE,//相对高度
        color: Cesium.Color.RED, //颜色
        outlineColor: Cesium.Color.SKYBLUE, //边框颜色
        outlineWidth: 5, //边框宽度
        // scaleByDistance:new Cesium.NearFarScalar(100, 5, 10000, 15), //缩放距离设置
        // translucencyByDistance:new Cesium.NearFarScalar(100, 0.2, 10000, 0.8),//点的半透明设置
        // distanceDisplayCondition:new Cesium.DistanceDisplayCondition(1000, 10000),//点的显隐距离
        // disableDepthTestDistance:5000000,//禁用深度测试距离
    }
    viewer.entities.add({
        position: Cesium.Cartesian3.fromDegrees(113.27, 23.13),
        point: point_options
    });

在这里插入图片描述
我们可以看到,绘制出来的点,效果并不是很好

2 原型点 PointPrimitive

这是cesium最本质的绘制点的方法

	var pointPrimitives = viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection({
        blendOption:Cesium.BlendOption.TRANSLUCENT,//透明混合度,用于大数据量渲染时提高效率
        // debugShowBoundingVolume:true
    }));
    pointPrimitives.add({
        outlineColor : Cesium.Color.WHITE,
        outlineWidth : 2.0,
        pixelSize : 20,
        color : Cesium.Color.YELLOW,
        position : Cesium.Cartesian3.fromDegrees(113.27, 23.13, 1000),
        disableDepthTestDistance:Number.POSITIVE_INFINITY //永远禁用深度测试
    });

这种原始方法适合绘制大数据量的点,但是,我们发现,效果也很一般
在这里插入图片描述### 3 高清点设置
经过上面的测试,我们发现,绘制出来的点都特么又丑又模糊;那么怎么办呢
经过查询资料,我发现,需要做以下两个动作:
1 关闭抗锯齿

viewer.scene.postProcessStages.fxaa.enabled = false;

2 调整分辨率

var supportsImageRenderingPixelated = viewer.cesiumWidget._supportsImageRenderingPixelated;
    if (supportsImageRenderingPixelated) {
        var vtxf_dpr = window.devicePixelRatio;
        while (vtxf_dpr >= 2.0) {
            vtxf_dpr /= 2.0;
        }
        viewer.resolutionScale = vtxf_dpr;
    }

在这里插入图片描述然后效果刚刚的

### 回答1: Cs.js是一个开源的WebGL框架,支持绘制、线和面等3D图形。它提供了一个简单的封装负责管理WebGL渲染流程和带有简单工具库的API。其中,cesium绘制线面封装是其重要的功能之一。 cesium绘制线面封装可以在3D场景中绘制不同的几何形状。它使用CeisumJS的基础结构,通过提供必要的参数,可以生成一个形状对象。这个形状对象可以在场景中随意移动、放大、旋转或者删除。除此之外,绘制、线和面可以使用不同的样式和颜色。 通过cesium绘制线面封装,用户可以创建简单的图形形状或是更加复杂的3D模型。例如,用户可以绘制一个球体、立方体、圆形或者多边形等形状。这些形状可以是实心的、空心的或者半透明的,且可以根据需要进行颜色和纹理的调整。 总的来说,cesium绘制线面封装简化了3D场景的创建和管理流程。同时,它具有强大的可定制性,使得用户可以根据自己的需求和喜好制作精美的3D图形。 ### 回答2: Cesium是一种开放源代码的虚拟地球浏览器,它允许用户在浏览器中查看,操作和交互地理信息。Cesium提供了丰富的API,其中包括绘制多种类型的图形功能。Cesium绘制线面封装,即是通过Cesium提供的API对线面进行封装和自定义样式。 首先,可以使用Cesium的Entity API创建线面,这些基本实体包括、直线、多段线、面以及它们的混合体,如多边形和多面体。通过设置不同的样式和属性,例如颜色、透明度、线宽、面纹理等,可以自定义图形样式。 其次,Cesium还提供了Primitive类型来提高绘制效率和性能。PrimitiveCesium中一种基于WebGL实现的渲染图元,它可以用来绘制所有类型的线面图形。具体而言,可以使用GroundPrimitive类型绘制贴地图形,如粒子云、热力图等;使用ShadowVolume类型绘制视觉效果良好和高效的实时阴影。 最后,Cesium提供了与三维地球视图交互的接口,可以在地球上自由移动、旋转、缩放视图,并支持与用户输入交互。因此,Cesium绘制线面封装可以轻松实现图形可视化和交互性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值