首页 / 浏览问题 / 三维GIS / 问题详情
Cesium如何画一个扇形
68EXP 2020年10月12日
Cesium如何画一个扇形,提供经纬度高度起始角和终止角,是否有示例

1个回答

6,077EXP 2020年10月12日
我想要一个面,不是一个体
将上下偏角都设置成90

minimumCone : Cesium.Math.toRadians(90),
maximumCone : Cesium.Math.toRadians(90),

我想要一个二维的扇形,但是这个是球体,我应该改哪些属性

调整左右偏角

minimumClock : Cesium.Math.toRadians(-20),
maximumClock : Cesium.Math.toRadians(20), 左右偏角绝对值的和就是扇形内角角度
如果设置为20时就是整个球了,不是扇形
需要设置一正一负一个-20,一个20都设置成20的话就相当于是没有左右偏角,直接是360°
就是有没有不是立体的,就要一个面的扇形就行

var headings = Cesium.Math.toRadians(90);
viewer.entities.add({
    name : '扇形',
    position : Cesium.Cartesian3.fromDegrees(116, 30.0, 20000.0),
    orientation : Cesium.Transforms.headingPitchRollQuaternion(
        Cesium.Cartesian3.fromDegrees(116,30, 20000.0),
        //new Cesium.HeadingPitchRoll(Cesium.Math.PI / 1.5, 0, 0.0)  // 1.5是扇形的朝向
       new Cesium.HeadingPitchRoll(headings, 0, 0.0) 
    ),
    ellipsoid : {
        radii : new Cesium.Cartesian3(5000.0, 5000.0, 5000.0),  // 扇形半径
        innerRadii : new Cesium.Cartesian3(1.0, 1.0, 1.0), // 内半径
        minimumClock : Cesium.Math.toRadians(-20), // 左右偏角
        maximumClock : Cesium.Math.toRadians(20), 
        minimumCone : Cesium.Math.toRadians(90),// 上下偏角  可以都设置为90
        maximumCone : Cesium.Math.toRadians(90),
        material : Cesium.Color.DARKCYAN.withAlpha(0.3),
        outline : true
    }
});

    viewer.scene.camera.setView({
        destination : new Cesium.Cartesian3.fromDegrees(116, 30.0, 20000.0),
        orientation : {
            heading : 1.4059101895600987,
            pitch : -0.20917672793046682,
            roll : 2.708944180085382e-13
        }
    });

我把你这个代码粘在我的代码里,显示出来的就是一个球
方便把您那边的代码通过私信发给我吗,我这边测一下

不好意思,这个项目是涉密的,我就是这么写的

还有没有别的方法,有起始角的数据、终止角数据、经纬度数据,画一个扇形
您这边用的是哪个版本的WebGL包?
怎么看版本号呢?我打开了Cesium.js没发现版本号
您能远程帮我看一下吗
留一个您的联系方式吧。QQ
1257877840
...