Exemplo n.º 1
0
        public CommonEph.eceft CalSat(int satNum, CommonEph.EphData eph, int sys)
        {
            double tTime = 30000;

            sat_res = CommonEph.SatPosCal(satNum, tTime, eph, sys, (int)eph.week);
            return(sat_res);
        }
Exemplo n.º 2
0
        // 开始计算
        private void button1_Click(object sender, EventArgs e)
        {
            SatInfo[] sat_list = new SatInfo[tnum];

            // 测试数据
            SatInfo[] dataDemo = new SatInfo[sat_inview];

            double[] tmp    = new double[3];
            double[] tmplla = new double[3];
            tmp[0] = 1e3; tmp[1] = 2e3; tmp[2] = 3e3;
            CommonEph.eceft ecef_tmp = new CommonEph.eceft();


            CommonEph.ReadEph();  // 读取星历,放入d_eph[]和d_ephBD[]中
            int satNum = 1;


            for (int i = 0; i < sat_inview; i++)
            {
                dataDemo[i] = new SatInfo();
                satNum      = i + 1;

                CommonEph.EphData eph = CommonEph.d_ephBD[satNum - 1];   // 下面要使用的星历
                ecef_tmp = dataDemo[0].CalSat(satNum, eph, 1);
                tmp[0]   = ecef_tmp.x; tmp[1] = ecef_tmp.y; tmp[2] = ecef_tmp.z;

                SatInfo.ecef2pos(tmp, tmplla);
                tmplla[0]  = tmplla[0] * 180 / Math.PI;
                tmplla[1]  = tmplla[1] * 180 / Math.PI;
                lla[i].lat = tmplla[0];
                lla[i].lon = tmplla[1];
                lla[i].alt = tmplla[2];

                dataDemo[i].setSatInfo(i, 0, tmplla, tmp);
            }

            UpdateGrid(dataDemo);
            Convert2JS();
        }