直接上代码
//******************************************转换数据********************************************** */
let StateTime = [];
let UtcTime=[];
let Hour=[];
let State_Xr=[];
let State_Yr=[];
let State_Zr=[];
let Path_Czm=[];
for (let i = 0; i < EcefData.length; i++){
StateTime.push(EcefData[i].time);
var B_pos = StateTime[i].indexOf('B');
var hour_data = StateTime[i].substr(B_pos+1,2);
Hour.push(hour_data);
var newhour_data = Hour[i]-8;
var year_month_day = StateTime[i].slice(0,B_pos);
var hour_minute_second = StateTime[i].slice(B_pos+3,EcefData.length);
var new_time = year_month_day+"T"+newhour_data+hour_minute_second+"Z";
UtcTime.push(new_time);//转换后UTC时间
//******************************************转换数据结束****************************************** */
//******************************************坐标转换********************************************* */
var state_px = EcefData[i].Xr;
var state_py = EcefData[i].Yr;
var state_pz = EcefData[i].Zr;
var epsilon = 0.000000000000001;
var d2r = Math.PI / 180;
var r2d = 180 / Math.PI;
var a = 6378137.0; //椭球长半轴
var f_inverse = 298.257223563; //扁率倒数
var b = a - a / f_inverse;
//const double b = 6356752.314245; //椭球短半轴
var e = Math.sqrt(a * a - b * b) / a;//e
var tmpX = state_px;
var temY = state_py ;
var temZ = state_pz;
var curB = 0;
var N = 0;
var calB = Math.atan2(temZ, Math.sqrt(tmpX * tmpX + temY * temY));
var counter = 0;
while (Math.abs(curB - calB) * r2d > epsilon && counter < 25)
{
curB = calB;
N = a / Math.sqrt(1 - e * e * Math.sin(curB) * Math.sin(curB));
calB = Math.atan2(temZ + N * e * e * Math.sin(curB), Math.sqrt(tmpX * tmpX + temY * temY));
counter++;
}
// State_Xr.push(Math.atan2(temY, tmpX) * r2d);//lon
// State_Yr.push(curB * r2d); //lat
// State_Zr.push(temZ / Math.sin(curB) - N * (1 - e * e));//alt
// var State_XrString = State_Xr.toString();
// var State_YrString = State_Yr.toString();
// var State_ZrString = State_Zr.toString();
var State_XrString = Math.atan2(temY, tmpX) * r2d;
var State_YrString = curB * r2d;
var State_ZrString = temZ / Math.sin(curB) - N * (1 - e * e);
Path_Czm.push(State_XrString,State_YrString,State_ZrString);
console.log(Path_Czm)
};
//******************************************坐标转换结束********************************************* */
最后添加一个动态添加czml的链接:http://cesium.xin/wordpress/archives/204.html
设置czml的链接:https://www.freesion.com/article/1108522610/
cesium学习:https://zhuanlan.zhihu.com/p/80904975