cesium entities 图形绘制

1.正方形绘制 box 方法

官网链接: https://cesium.com/learn/cesiumjs/ref-doc/BoxGraphics.html

box中属性
属性含义值
outline设置指定box是否有轮廓的Property 默认
outlineColor轮廓线颜色
material设置颜色
dimensions设置形状
fill设置填充色显示隐藏
distanceDisplayCondition距相机多远的距离处显示或隐藏
shadowsShadowMode.DISABLED设置投影

示例代码如下

viewer.entities.add({
            name : 'Red box',
            position: Cesium.Cartesian3.fromDegrees(116.39, 39.9),
            box: {
                dimensions: new Cesium.Cartesian3(30000.0, 30000.0, 30000),//设置长宽高
                material : Cesium.Color.GREENYELLOW.withAlpha(0.5), //设置颜色
                outline : true,//设置指定box是否有轮廓的Property 默认false 
                outlineColor : Cesium.Color.BLACK, //设置轮廓线
                //fill:false,//取消填充
                //distanceDisplayCondition: new Cesium.DistanceDisplayCondition( 0.0, 5.5e6 ),
            }
        });

在这里插入图片描述

2.圆角体绘制 corridor 方法

官网链接: https://cesium.com/learn/cesiumjs/ref-doc/CorridorGraphics.html

corridor 中属性
属性含义值
cornerType直角样式: Cesium.CornerType.BEVELED 。 圆角样式: Cesium.CornerType.ROUNDED
extrudedHeightnumber 类型 体积厚度高度
height离地面高度
outline设置指定corridor 是否有轮廓的Property 默认
outlineColor轮廓线颜色
outlineWidth轮廓线宽度
fill设置填充色显示隐藏
distanceDisplayConditionnew Cesium.DistanceDisplayCondition( 0.0, 5.5e6 )距相机多远的距离处显示或隐藏
zIndex图层的优先级
shadowsShadowMode.DISABLED设置投影
showtrue或false实体显示隐藏(动态改变直接改变show就可以)

示例代码如下

viewer.entities.add({
            name : 'Red box with black outline',
            corridor: {
                positions: Cesium.Cartesian3.fromDegreesArray([
                    104.0, 39,
                    102.0, 39,
                    102.0, 35,
                  ]),
                  height: 200000.0,
                  extrudedHeight: 200000.0,//厚度
                  width: 100000.0,
                  cornerType: Cesium.CornerType.ROUNDED ,//Cesium.CornerType.BEVELED,
                  material: Cesium.Color.BLUE.withAlpha(0.5),
                  outline: true, // height or extrudedHeight must be set for outlines to display
                  outlineColor: Cesium.Color.WHITE,
            }
        });

在这里插入图片描述

3.立体线绘制 polylineVolume方法

官网链接: https://cesium.com/learn/cesiumjs/ref-doc/PolylineVolumeGraphics.html

polylineVolume中属性
属性含义值
cornerType直角样式: Cesium.CornerType.BEVELED 。 圆角样式: Cesium.CornerType.ROUNDED
outline设置指定corridor 是否有轮廓的Property 默认
outlineColor轮廓线颜色
outlineWidth轮廓线宽度
fill设置填充色显示隐藏
distanceDisplayConditionnew Cesium.DistanceDisplayCondition( 0.0, 5.5e6 )距相机多远的距离处显示或隐藏
shape设置形状
shadowsShadowMode.DISABLED设置投影
showtrue或false实体显示隐藏(动态改变直接改变show就可以)

示例代码如下

viewer.entities.add({
 polylineVolume: {
   positions: Cesium.Cartesian3.fromDegreesArrayHeights([
     113.39, 35.0, 0.0,
     118.39, 37.0, 0.0,
     119.39, 30.0, 0.0,
   ]),
   shape: computeStar(4, 1000, 30000),
   cornerType: Cesium.CornerType.MITERED,
   material: Cesium.Color.BLUE,
 },
});
function computeStar(arms, rOuter, rInner) {
 var angle = Math.PI / arms;
 var length = 2 * arms;
 var positions = new Array(length);
 for (var i = 0; i < length; i++) {
   var r = i % 2 === 0 ? rOuter : rInner;
   positions[i] = new Cesium.Cartesian2(
     Math.cos(i * angle) * r,
     Math.sin(i * angle) * r
   );
 }
 return positions;
}
function computeCircle(radius) {
 var positions = [];
 for (var i = 0; i < 360; i++) {
   var radians = Cesium.Math.toRadians(i);
   positions.push(
     new Cesium.Cartesian2(
       radius * Math.cos(radians),
       radius * Math.sin(radians)
     )
   );
 }
 return positions;
}

在这里插入图片描述

4.加载圆柱体圆锥体 cylinder方法

官网地址:https://cesium.com/learn/cesiumjs/ref-doc/CylinderGraphics.html

cylinder中属性
属性含义值
bottomRadiusnumber 低部半径大小
topRadiusnumber 顶部半径大小(半径为“0”时为圆锥体)
lengthnumber 高度
material设置材质
numberOfVerticalLinesnumber 沿轮廓的周长绘制的垂直线数
outline设置指定corridor 是否有轮廓的Property 默认
outlineColor轮廓线颜色
outlineWidth轮廓线宽度
fill设置填充色显示隐藏
distanceDisplayConditionnew Cesium.DistanceDisplayCondition( 0.0, 5.5e6 )距相机多远的距离处显示或隐藏
shadowsShadowMode.DISABLED设置投影
showtrue或false实体显示隐藏(动态改变直接改变show就可以)

示例代码

viewer.entities.add({
            position: Cesium.Cartesian3.fromDegrees(113.39, 40.0, 100000.0),
            cylinder: {
                length: 200000.0,
                topRadius: 55000.0,//圆柱顶部大小
                 // topRadius: 0.0,//圆柱顶部大小
                bottomRadius: 55000.0,//圆柱低部大小
                outline: true,
                outlineColor: Cesium.Color.WHITE,
                outlineWidth: 4,
                material: Cesium.Color.YELLOW.withAlpha(0.9),
            },
        });

在这里插入图片描述

5.加载立体墙自带呼吸灯效果 wall方法

官网地址:https://cesium.com/learn/cesiumjs/ref-doc/WallGraphics.html

wall中属性
属性含义值
material设置材质
maximumHeights用于墙顶的高度数组,而不是每个位置的高度
minimumHeights用于墙底的高度数组
outline设置指定corridor 是否有轮廓的Property 默认
outlineColor轮廓线颜色
outlineWidth轮廓线宽度
fill设置填充色显示隐藏
distanceDisplayConditionnew Cesium.DistanceDisplayCondition( 0.0, 5.5e6 )距相机多远的距离处显示或隐藏
shadowsShadowMode.DISABLED设置投影
showtrue或false实体显示隐藏(动态改变直接改变show就可以)

示例代码

var alp = 1;
        var num = 0
        this.viewer.entities.add({
            name: "Green wall from surface with outline",
            wall: {
              positions: Cesium.Cartesian3.fromDegreesArrayHeights([
                -107.0, 43.0, 100000.0,
                -97.0, 43.0, 100000.0, 
                -97.0, 40.0, 100000.0,
                -107.0, 40.0, 100000.0,
                -107.0, 43.0, 100000.0,
              ]),
              material: new Cesium.ImageMaterialProperty({
                image:require("../assets/tu.jpg"),
                transparent:true,
                color:new Cesium.CallbackProperty(function () {
                        if ((num % 2) === 0){
                            alp -=0.05;
                        }else {
                            alp +=0.05;
                        }

                        if (alp <= 0.3){
                            num++;
                        }else if (alp >= 1){
                            num++;
                        }
                        return  Cesium.Color.WHITE.withAlpha(alp)
                        //entity的颜色透明 并不影响材质,并且 entity也会透明
                    },false)
                }),

              outline: true,
            }
        });

在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: Cesium是一个开源的基于Web的三维地理信息系统,可以帮助您使用JavaScript在浏览器中创建交互式三维地图。如果您想在Cesium绘制线,可以使用PolylineGeometry或PolylineVolumeGeometry类。 要使用PolylineGeometry绘制线,需要提供线的端点坐标数组和其他一些可选的参数,如线的颜色、宽度等。例如: ``` var polyline = new Cesium.PolylineGeometry({ positions : Cesium.Cartesian3.fromDegreesArray([ 116.3, 39.9, 117.0, 40.5 ]), width : 10.0, material : new Cesium.ColorMaterial(Cesium.Color.BLUE) }); ``` 要使用PolylineVolumeGeometry绘制线,您还需要提供线的底面和顶面的控制点坐标数组,以及其他一些可选的参数,如线的颜色、底面宽度和顶面宽度等。例如: ``` var polylineVolume = new Cesium.PolylineVolumeGeometry({ vertexFormat : Cesium.VertexFormat.POSITION_AND_NORMAL, positions : Cesium.Cartesian3.fromDegreesArray([ 116.3, 39.9, 117.0, 40.5 ]), shapePositions : [new Cesium.Cartesian2(-10.0, -10.0), new Cesium.Cartesian2(-10.0, 10.0), new Cesium.Cartesian2(10.0, 10.0), new Cesium.Cartesian2(10.0, -10.0)], material : new Cesium.ColorMaterial(Cesium.Color.BLUE) }); ``` 这些几何体可以通过使用Primitive类或GeometryInstance类来呈现。例如,可以使用以下代码呈现PolylineGeometry: ``` viewer.scene.primitives.add(new Cesium.Primitive({ geometryInstances : ### 回答2: Cesium是一个基于Web的开源地理信息系统 (GIS) 开发框架,可以用于在浏览器中展示地球、地图和空间数据。Cesium提供了丰富的功能,包括绘制线形图形。 要在Cesium绘制线,我们可以使用Cesium的Entity API来创建一个Entity对象,然后设置线的相关属性。以下是一个使用Cesium绘制线的示例代码: ```javascript // 创建Cesium Viewer对象 var viewer = new Cesium.Viewer('cesiumContainer'); // 设置视图位置 var position = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 100); viewer.camera.setView({ destination: position, orientation: { heading: Cesium.Math.toRadians(0), pitch: Cesium.Math.toRadians(-90), roll: Cesium.Math.toRadians(0) } }); // 创建一个空间直线 var line = viewer.entities.add({ name: 'Red line', polyline: { positions: Cesium.Cartesian3.fromDegreesArray([ -75, 35, -125, 35 ]), width: 5, material: Cesium.Color.RED } }); // 将视图调整到线的位置 viewer.zoomTo(line); ``` 在这个示例中,我们首先创建了一个Cesium Viewer对象,并设置了初始视图位置。然后,我们通过`viewer.entities.add`方法创建了一个Entity对象,其中设置了线形图形的相关属性。通过`positions`属性,我们指定了线的坐标点,这里是起点和终点的经纬度数组。`width`属性用于设置线的宽度,`material`属性用于设置线的颜色。最后,通过`viewer.zoomTo`方法将视图调整到线的位置。 以上就是使用Cesium交互式绘制线的简单示例。通过调整相关属性,我们可以绘制不同样式的线形图形,并灵活控制其位置和视图展示。 ### 回答3: Cesium是一种开源的虚拟地球和空间可视化引擎,它提供了许多功能,包括绘制各种图形元素。在Cesium中,通过几个步骤可以实现交互式绘制线的功能。 首先,我们需要定义一个用于绘制线的实体对象。在Cesium中,可以使用`PolylineGraphics`来创建线对象。通过设置`positions`属性,我们可以指定线的起始点和结束点的位置信息。 接下来,我们可以通过添加鼠标事件监听器来实现交互式绘制线的功能。例如,我们可以监听鼠标的点击事件,在点击地球上的某个点时创建一个新的`PolylineGraphics`对象,并将其添加到场景中。通过监听鼠标的移动事件,我们可以动态更新线的结束点位置,从而实现线的交互式绘制。 在添加线对象之前,我们需要先创建一个实体对象,将线对象添加到实体的`graphics`属性中。例如,我们可以创建一个新的`Entity`对象,将线对象添加到该实体对象的`graphics`属性中。然后,将该实体对象添加到场景中即可。 最后,我们可以通过设置线对象的样式属性来自定义绘制线的外观。例如,可以设置线的颜色、宽度、材质等属性,以满足不同的需求。 总结起来,通过定义线对象、添加交互事件监听器、创建实体对象并添加到场景中、设置线样式属性,我们可以在Cesium中实现交互式绘制线的功能。这些步骤可以帮助用户在地球上自由绘制线条,并根据实际需求对线条进行样式调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GIS-CL

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

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

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

打赏作者

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

抵扣说明:

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

余额充值