1. 根据网上EXCEL表格给出的关系,生成的C语言代码。计算结果和软件【万能坐标转换980】计算出的结果很接近。
  1. double B = 39.3926;
  2. double L = 117.4514;
  3. //double B = 0;
  4. //double L = 117;
  5. double L0 = ;
  6.  
  7. /*
  8. ************************************************************************************************************************
  9. * Description: This function convert longitude/latitude(xx度xx分xxxxxx秒) to longitude/latitude(xx.xxxxxxxx度).
  10. *
  11. * Arguments : gps_x_y
  12. longitude/latitude(xx度mm分ssssss秒) 输入形式为: xx.mmssssss
  13. *
  14. * Note(s) : none
  15. ************************************************************************************************************************
  16. */
  17. double CALC_GPS_angle(float gps_x_y)
  18. {
  19. /*
  20. double min,sec;
  21. min = (floor(gps_x_y*100)-floor(gps_x_y)*100)/60;
  22. sec = (gps_x_y*10000-floor(gps_x_y*100)*100)/3600;
  23. printf("min = %.6lf\r\n",min);
  24. printf("sec = %.6lf\r\n",sec);
  25. */
  26. return (floor(gps_x_y)+(floor(gps_x_y*)-floor(gps_x_y)*)/+(gps_x_y*-floor(gps_x_y*)*)/);
  27. }
  28.  
  29. /*
  30. ************************************************************************************************************************
  31. * Description: 角度转换为弧度.
  32. *
  33. * Arguments : angle
  34. 输入形式(xx.xxxxxxxx度)
  35. *
  36. * Note(s) : none
  37. ************************************************************************************************************************
  38. */
  39. double Angle2RAD(double angle)
  40. {
  41. return (angle*3.1415926/);
  42. }
  43.  
  44. /*
  45. ************************************************************************************************************************
  46. * Description: 该函数调用以上2个函数完成计算功能.
  47. *
  48. * Arguments : input L : 经度longitude -> (xx度mm分ssssss秒) 输入形式为: xx.mmssssss
  49. input B : 纬度latitude -> (xx度mm分ssssss秒) 输入形式为: xx.mmssssss
  50. input L0: 中央子午线Central meridian -> (xx度mm分ssssss秒) 输入形式为: xx.mmssssss
  51. output X: 坐标系的y轴
  52. output Y 坐标系的x轴
  53. *
  54. * Note(s) : none
  55. ************************************************************************************************************************
  56. */
  57. void GpsGrid2GaussGrid(double L0, double B, double L, double* X, double* Y)
  58. {
  59. double E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2,R2;
  60.  
  61. E2 = CALC_GPS_angle(B);
  62. #ifdef PRINT_DEG
  63. printf("E2 = %.9lf\r\n",E2);
  64. #endif
  65. F2 = CALC_GPS_angle(L);
  66. #ifdef PRINT_DEG
  67. printf("F2 = %.9lf\r\n",F2);
  68. #endif
  69. G2 = F2 - CALC_GPS_angle(L0);
  70. #ifdef PRINT_DEG
  71. printf("2G = %.9lf\r\n",G2);
  72. #endif
  73. H2 = 0.01744444444*G2;
  74. #ifdef PRINT_DEG
  75. printf("H2 = %.9lf\r\n",H2);
  76. #endif
  77. I2 = tan(Angle2RAD(fabs(E2)));
  78. #ifdef PRINT_DEG
  79. printf("I2 = %.9lf\r\n",I2);
  80. #endif
  81. J2 = cos(Angle2RAD(fabs(E2)));
  82. #ifdef PRINT_DEG
  83. printf("J2 = %.9lf\r\n",J2);
  84. #endif
  85. K2 = 0.006738525415*J2*J2;
  86. #ifdef PRINT_DEG
  87. printf("K2 = %.9lf\r\n",K2);
  88. #endif
  89. L2 = I2*I2;
  90. #ifdef PRINT_DEG
  91. printf("L2 = %.9lf\r\n",L2);
  92. #endif
  93. M2 = + K2;
  94. #ifdef PRINT_DEG
  95. printf("M2 = %.9lf\r\n",M2);
  96. #endif
  97. N2 = 6399698.9018/sqrt(M2);
  98. #ifdef PRINT_DEG
  99. printf("N2 = %.9lf\r\n",N2);
  100. #endif
  101. O2 = H2*H2*J2*J2;
  102. #ifdef PRINT_DEG
  103. printf("O2 = %.9lf\r\n",O2);
  104. #endif
  105. P2 = I2*J2;
  106. #ifdef PRINT_DEG
  107. printf("P2 = %.9lf\r\n",P2);
  108. #endif
  109. Q2 = P2*P2;
  110. #ifdef PRINT_DEG
  111. printf("Q2 = %.9lf\r\n",Q2);
  112. #endif
  113. R2 = (32005.78006+Q2*(133.92133+Q2*0.7031));
  114. #ifdef PRINT_DEG
  115. printf("R2 = %.9lf\r\n",R2);
  116. #endif
  117.  
  118. *X = 6367558.49686*E2/57.29577951308-P2*J2*R2+((((L2-)*L2+)* O2/+(*K2+)*M2-L2)*O2/+)*N2*I2*O2/;
  119. *Y = ((((L2-)*L2-(*L2-)*K2+)*O2/+M2-L2)*O2/+)*N2*(H2*J2)+;
  120.  
  121. }

GPS坐标转大地坐标的更多相关文章

  1. GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)(转载)

    WGS-84:是国际标准,GPS坐标(Google Earth使用.或者GPS模块)GCJ-02:中国坐标偏移标准,Google Map.高德.腾讯使用BD-09:百度坐标偏移标准,Baidu Map ...

  2. GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)

    WGS-84:是国际标准,GPS坐标(Google Earth使用.或者GPS模块)GCJ-02:中国坐标偏移标准,Google Map.高德.腾讯使用BD-09:百度坐标偏移标准,Baidu Map ...

  3. GPS坐标换算为百度坐标

    最近在做一个关于手机定位的小应用,需求是这样的,用户通过手机(Wp8)进行二维码扫描操作并且记录用户的当前位置,在PC上可以查看用户所在地图的位置,做法就是在用户扫描条码时,通过手机GPS获取当前在地 ...

  4. 地图坐标转换 -- 火星坐标与GPS坐标

    第一次处理地理位置的数据的人,没什么经验,往往掉入很多坑浪费不少时间.我也是刚刚从坑里爬出来.这篇博文主要是把入门GPS轨迹分析的经验总结一下,以方便大家少走些弯路. (1)可视化 GPS 路径 刚拿 ...

  5. GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)[转]

    WGS-84:是国际标准,GPS坐标(Google Earth使用.或者GPS模块)GCJ-02:中国坐标偏移标准,Google Map.高德.腾讯使用BD-09:百度坐标偏移标准,Baidu Map ...

  6. PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例

    原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html&g ...

  7. GPS坐标转换为百度地图坐标

    /** * GPS坐标转换为百度地图坐标 * 需要引入javabase64.jar 和json的一些包 * */ public class Gps2BaiDu { public static void ...

  8. GPS坐标换算为百度坐标(转)

    最近在做一个关于手机定位的小应用,需求是这样的,用户通过手机(Wp8)进行二维码扫描操作并且记录用户的当前位置,在PC上可以查看用户所在地图的位置,做法就是在用户扫描条码时,通过手机GPS获取当前在地 ...

  9. BD09坐标(百度坐标) WGS84(GPS坐标) GCJ02(国测局坐标) 的相互转换

    BD09坐标(百度坐标) WGS84(GPS坐标) GCJ02(国测局坐标) 的相互转换 http://www.cnphp6.com/archives/24822 by root ⋅ Leave a ...

随机推荐

  1. Webupload+PHP上传大文件

    1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...

  2. linux下的缓存机制buffer、cache、swap

    一.缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果 ...

  3. Fidessa

    Fidessa这样为券商提供交易系统和与交易所连接的公司被称作Independent Software Vendor, 同类的还有FIS(前SunGuard), Bloomberg(AIM), Tho ...

  4. Android studio无法发现nexus 5x解决方法

    原因: 没有安装adb interface驱动.   解决方法: 1. 使用Android device manager下载google usb driver. 2. 打开设备管理器,右键带黄色感叹号 ...

  5. 在java中有关于反射的皮毛----自己的简略认知

    白首为功名.旧山松竹老,阻归程.欲将心事付瑶琴.知音少,弦断有谁听? 反射(reflection): 当我们在看到这个名词首先会想到的是,我们在上高中时学的物理,那么在java开发中,反射这个名词是怎 ...

  6. Redis二进制反转算法分析

    在 redis 源码中 dictScan 算法中用到了用到了非常经典的二进制反转算法,该算法对二进制的反转高效而实用,同时对于理解位运算也有非常大的帮助.先呈现源码: /* Function to r ...

  7. PTA (Advanced Level)1035.Password

    To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...

  8. 什么时候该使用SUM()函数

    SUM函数用于返回表达式中所有值的和.通常情况下,对某些数据进行汇总时会用到该函数. 语法:SELECT SUM(column_name) FROM table_name

  9. Select 多个表并且相关联转置

    已知一个表的结构为: ------------------- 姓名 科目 成绩 张三 语文 20 张三 数学 30 张三 英语 50 李四 语文 70 李四 数学 60 李四 英语 90   怎样通过 ...

  10. 11-Perl 运算符

    1.Perl 运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,如: 3+2=5.Perl 语言内置了丰富的运算符,我们来看下常用的几种: 算术运算符,比较运算符,逻辑运算符,赋值运算符,位 ...