地方坐标转化成世界坐标

var viewer = new Cesium.Viewer('cesiumContainer');

 var n1=[地方坐标数组,比如:0.601,926.498, 6.8099,
  0.601, 933.684 ,6.8099,
  0.5887 ,933.82 ,6.8099,

  。。。。。。  , 。。。  

  ]

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)
,radius * Math.sin(360),radius * Math.sin(360)));
}
return positions;
}


//经纬度转世界坐标 经度,纬度,高度
var position = Cesium.Cartesian3.fromDegrees(114.456585,33.264885,5);
var heading = Cesium.Math.PI * 90 / 180; //标题
var pitch = 0; //俯视
var roll = 0; //滚动
//表示为标题,俯仰和滚动的旋转。标题是围绕负z轴的旋转。间距是围绕负y轴的旋转。Roll是围绕正x轴的旋转。
var hpr = new Cesium.HeadingPitchRoll(heading,pitch,roll);
//用参考坐标系计算四元数,坐标轴以所提供原点为中心的航向 - 俯仰 - 滚转角计算。
// 标题是从正北角向东增加的局部北方的旋转。沥青是从当地东 - 北飞机的旋转。正俯仰角在平面之上。
// 负桨距角低于平面。滚动是关于当地东方轴线应用的第一个旋转。
var orientation = Cesium.Transforms.headingPitchRollQuaternion(position,hpr);
var mat = new Cesium.Matrix4();
var rotateMat = new Cesium.Matrix3();
//从提供的四元数计算3x3旋转矩阵。
Cesium.Matrix3.fromQuaternion(orientation,rotateMat);
//从表示旋转的Matrix3和表示翻译的Cartesian3计算Matrix4实例。
Cesium.Matrix4.fromRotationTranslation(rotateMat,position,mat);



var newary=[];
for (var i=0;i<n1.length;i++)
{
var localtPos = new Cesium.Cartesian3(n1[i],n1[i+1],n1[i+2]);
var worldPos = Cesium.Matrix4.multiplyByPoint(mat,localtPos,new Cesium.Cartesian3);
var ary=worldPos;
newary.push(ary);

console.log(worldPos);
console.log(newary);

i+=2;
}


// var pipeObj = viewer.entities.add({
// polylineVolume : {
// positions : newary,
// shape : computeCircle(0.5),
// material : Cesium.Color.RED,
// material : Cesium.Color.WHITE.withAlpha(0.4)
// }
// });

var volume = new Cesium.PolylineVolumeGeometry({
vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
polylinePositions : Cesium.Cartesian3.fromDegreesArray([
-72.0, 40.0,
-70.0, 35.0
]),
shapePositions : computeCircle(100000.0)
});

var pipeObj = viewer.entities.add(volume);

viewer.zoomTo(pipeObj)

猜你喜欢

转载自www.cnblogs.com/liuruipeng/p/9109186.html