获取圆上点的坐标:
var circle = new Cesium.CircleOutlineGeometry({
center : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
radius : 100000.0,
granularity : Math.PI / 2
});
var geometry = Cesium.CircleOutlineGeometry.createGeometry(circle);
var float64ArrayPositions = geometry.attributes.position.values;
var positions = [].slice.call(float64ArrayPositions);
<*-----------------------------------------------------------------------------------------------------------------------------*>
用polyline画圆
var circleIn = new Cesium.CircleOutlineGeometry({
center : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
radius : 150000.0,
granularity:0.001
});
var geometryIn = Cesium.CircleOutlineGeometry.createGeometry(circleIn);
var float64ArrayPositionsIn = geometryIn.attributes.position.values;
var positionsIn = [].slice.call(float64ArrayPositionsIn);
var oneArrL1 = positionsIn.length;
// 将一维数组转换成三维数组istrack
var erArrL1 = positionsIn.length / 3;
var er1 = new Array();
for (var p = 0; p < erArrL1; p++) {
er1[p] = new Array();
}
var k1 = 0;
for (var o = 0; o < erArrL1; o++) {
for (var u = 0; u < 3; u++) {
er1[o][u] = positionsIn[k1];
k1++;
if (k1 > oneArrL1 - 1) {
break;
}
}
}
var posCir1=[];
for(var i=0;i<er1.length;i++){
posCir1.push(new Cesium.Cartesian3(er1[i][0],er1[i][1],er1[i][2]))
}
var redLine = viewer.entities.add({
id:'wanglei',
name : 'Red line on the surface',
polyline : {
positions :posCir1,
width : 2,
material : Cesium.Color.BLACK
}
});
// Sandcastle.finishedLoading(console.log('666'));
viewer.zoomTo(viewer.entities.getById('wanglei'));
<*-----------------------------------------------------------------------------------------------------------------------------*>