js实现卫星天线方位角和仰角
来源:互联网 发布:图片识别算法 编辑:程序博客网 时间:2024/05/02 17:19
参数含义:
SATLONG:经度
SATLAT:维度
function CalculateAZ(SATLONG,SATLAT) { var DTOR, RTOD, A, B, F, RSAT, ESHEIGHT, ESLAT, ESLONG, SATLAT, SATLONG, XS, YS, ZS, EE, BETA, RHO; var TXS, TYS, TZS, DIST, AZ, XS2, YS2, ZS2, TXS2, TYS2, TZS2, DIST2, RANGE; DTOR=Math.PI/180; RTOD=180/Math.PI; A=6378.3880; B=6356.9120; F=1/297; RSAT=Math.pow((6028.82*((24*60)-4)), 2/3); /*Check(window.document.Form.ESH, "0"); Check(window.document.Form.ESLA, "0"); Check(window.document.Form.ESLO, "0"); Check(window.document.Form.SATLA, "0"); Check(window.document.Form.SATLO, "0");*/ //以北京为观测点 ESHEIGHT=0;//高度 ESLAT=40;//维度 ESLONG=116;//经度 /*SATLAT=1.7282723; SATLONG=58.78332;*/ XS=RSAT*Math.cos(DTOR*SATLAT)*Math.cos(DTOR*SATLONG); XS2=RSAT*Math.cos(-SATLAT*DTOR)*Math.cos(SATLONG*DTOR); YS=RSAT*Math.cos(DTOR*SATLAT)*Math.sin(DTOR*SATLONG); YS2=RSAT*Math.cos(-SATLAT*DTOR)*Math.sin(SATLONG*DTOR); ZS=RSAT*Math.sin(DTOR*SATLAT); ZS2=-RSAT*Math.sin(DTOR*SATLAT); EE=2*F - Math.pow(F, 2); BETA=Math.atan((1-EE)*Math.tan(ESLAT*DTOR)); RHO=A*(1-F)/Math.sqrt(1-(2-F)*F*Math.cos(ESLAT*DTOR)*Math.cos(ESLAT*DTOR)); TXS=(XS*Math.cos(ESLONG*DTOR)+YS*Math.sin(ESLONG*DTOR)-RHO*Math.cos(BETA))*Math.sin(ESLAT*DTOR)-(ZS-RHO*Math.sin(BETA))*Math.cos(ESLAT*DTOR); TXS2=(XS2*Math.cos(ESLONG*DTOR)+YS2*Math.sin(ESLONG*DTOR)-RHO*Math.cos(BETA))*Math.sin(ESLAT*DTOR)-(ZS2-RHO*Math.sin(BETA))*Math.cos(ESLAT*DTOR); TYS=-XS*Math.sin(ESLONG*DTOR)+YS*Math.cos(ESLONG*DTOR); TYS2=-XS2*Math.sin(ESLONG*DTOR)+YS2*Math.cos(ESLONG*DTOR); TZS=(XS*Math.cos(ESLONG*DTOR)+YS*Math.sin(ESLONG*DTOR)-RHO*Math.cos(BETA))*Math.cos(ESLAT*DTOR)+(ZS-RHO*Math.sin(BETA))*Math.sin(ESLAT*DTOR)-(ESHEIGHT/1000); TZS2=(XS2*Math.cos(ESLONG*DTOR)+YS2*Math.sin(ESLONG*DTOR)-RHO*Math.cos(BETA))*Math.cos(ESLAT*DTOR)+(ZS2-RHO*Math.sin(BETA))*Math.sin(ESLAT*DTOR)-(ESHEIGHT/1000); DIST=Math.sqrt(TXS*TXS+TYS*TYS+TZS*TZS); DIST2=Math.sqrt(TXS2*TXS2+TYS2*TYS2+TZS2*TZS2) AZ=180-RTOD*ATAN2(TXS,TYS); EL=Math.asin(TZS/DIST)*RTOD; RANGE=Math.max(DIST, DIST2); var m=[]; m[0]=round(AZ, 3);//方位角 m[1]=round(EL, 3);//仰角 //round(RANGE, 3);//最大距离,单位km return m;}function Check(obRef, def) { if ((obRef.value == null) || (obRef.value == "")) { obRef.value = def; }}function ATAN2(x, y) { var tmp; if (y == 0) { if (x > 0) { tmp = 0; } else { if (x < 0) { tmp = Math.PI; } else { tmp = 1/0; } } } else { if (y > 0) { tmp = (Math.PI/2) - Math.atan(x/y); } else { tmp = -(Math.PI/2) - Math.atan(x/y); } } return tmp}function round(val, places) { val = val * Math.pow(10, places) val = Math.round(val) val = val / Math.pow(10, places) return val}
调用方式:
var am = [];am=CalculateAZ("经度","维度");alert("仰角"+am[1]);alert("方位角"+am[0]);
0 0
- js实现卫星天线方位角和仰角
- 太阳 仰角和方位角(Elevation and Azimuth)
- 根据卫星仰角和方位角使用html5绘制天空图(投影图)
- 卫星天线
- python实现两个经纬度点之间的距离和方位角
- 象限角和方位角
- 由初速度和仰角求射程
- javascript-由初速度和仰角求射程
- 大连卫星天线
- 四元数仰角和俯角的转换(第一人称视角)
- 震中距和方位角的求法
- 震中距和方位角的求法
- LTE的方位角和下倾角区别和测量
- 根据两点的经纬度求方位角和距离,等
- 根据两点的经纬度求方位角和距离,等
- 根据两点的经纬度求方位角和距离,等
- 根据两点的经纬度求方位角和距离,等
- 转载]根据两点的经纬度求方位角和距离
- 页面优化
- Linux进程间通信 -3内存共享
- MySQL数据库结构同步
- java中整行读取文件内容
- 运维架构体系
- js实现卫星天线方位角和仰角
- 第八周练习--求倒数和
- python读写文件
- 实现一个自己的类jq函数库
- 设计模式之行为模式---状态模式
- 算法-第四版-练习1.3.28解答
- Runtime-来自简书
- extern C 写的不错的一个
- Memcached的CAS机制的实现