#include "math.h" #include "stdio.h"     double casm_rr ; unsigned int casm_t1; unsigned int casm_t2; double casm_x1; double casm_y1; double casm_x2; double casm_y2; double casm_f; double yj_sin2(double x) {     double tt ;     double ss;     int ff ;     double s2;     int cc;     ff=;     if (x<)     {         x=-x;         ff=;     }     cc=int(x/6.28318530717959);     tt=x-cc*6.28318530717959;     if (tt>3.1415926535897932)     {         tt=tt-3.1415926535897932;         if (ff==)         ff=;         else if (ff==)         ff=;     }     x=tt;     ss=x;     s2=x;     tt=tt*tt;     s2=s2*tt;     ss=ss-s2* 0.166666666666667;     s2=s2*tt;     ss=ss+s2* 8.33333333333333E-03;     s2=s2*tt;     ss=ss-s2* 1.98412698412698E-04;     s2=s2*tt;     ss=ss+s2* 2.75573192239859E-06;     s2=s2*tt;     ss=ss-s2* 2.50521083854417E-08;     if (ff==)     ss=-ss;     return ss; } double Transform_yj5(double x , double y ) {     double tt;     tt =  +  * x +  * y + 0.1 * x * x + 0.1 * x * y + 0.1 * sqrt(sqrt(x*x));     tt = tt + ( *yj_sin2(18.849555921538764 * x ) +  * yj_sin2(6.283185307179588 * x))*0.6667;     tt = tt + ( * yj_sin2(3.141592653589794 * x ) +  * yj_sin2(1.047197551196598 * x))*0.6667;     tt = tt + ( * yj_sin2(0.2617993877991495 * x) +  * yj_sin2(0.1047197551196598 * x))*0.6667;     return tt; } double Transform_yjy5(double x , double y ) {     double tt ;     tt = - +   * x +  * y + 0.2 * y * y + 0.1 * x * y + 0.2 * sqrt(sqrt(x*x));     tt = tt + ( * yj_sin2(18.849555921538764 * x) +  * yj_sin2(6.283185307179588 * x))*0.6667;     tt = tt + ( * yj_sin2(3.141592653589794 * y)+  * yj_sin2(1.047197551196598 * y))*0.6667;     tt = tt + ( * yj_sin2(0.2617993877991495 * y) +  * yj_sin2(0.1047197551196598 * y))*0.6667;     return tt; } double Transform_jy5(double x , double xx ) {     double n ;     double a ;     double e ;     a = ;     e = 0.00669342;     n = sqrt ( - e * yj_sin2(x * 0.0174532925199433) * yj_sin2(x * 0.0174532925199433) );     n = (xx * ) /(a / n * cos(x * 0.0174532925199433) * 3.1415926) ;     return n; } double Transform_jyj5(double x , double yy ) {     double m ;     double a ;     double e ;     double mm;     a = ;     e = 0.00669342;     mm=  - e * yj_sin2(x * 0.0174532925199433) * yj_sin2(x * 0.0174532925199433) ;     m = (a * ( - e)) / (mm * sqrt(mm));     return (yy * ) / (m * 3.1415926); } double r_yj() {     int casm_a ;     int casm_c ;     casm_a = ;     casm_c = ;     return ; } double random_yj() {     int t;     int casm_a ;     int casm_c ;     casm_a = ;     casm_c = ;     casm_rr = casm_a * casm_rr + casm_c ;     t = int(casm_rr /);     casm_rr = casm_rr - t * ;     casm_rr = casm_rr /  ;     return (casm_rr); } void IniCasm(unsigned int w_time, unsigned int w_lng, unsigned int w_lat) {     int tt;     casm_t1 = w_time ;     casm_t2 = w_time ;     tt=int(w_time/0.357);     casm_rr=w_time-tt*0.357;     if (w_time==)     casm_rr=0.3;     casm_x1 = w_lng;     casm_y1 = w_lat;     casm_x2 = w_lng;     casm_y2 = w_lat;     casm_f=; } unsigned int wgtochina_lb(int wg_flag, unsigned int wg_lng, unsigned int wg_lat, int wg_heit,  int wg_week, unsigned int wg_time, unsigned  int *china_lng, unsigned int *china_lat) {     double x_add ;     double y_add ;     double h_add ;     double x_l;     double y_l;     double casm_v ;     double t1_t2;     double x1_x2;     double y1_y2;                 if (wg_heit>)     {         *china_lng =  ;         *china_lat = ;         return 0xFFFF95FF;     }     x_l =  wg_lng;     x_l =  x_l / 3686400.0;     y_l =  wg_lat ;     y_l =  y_l / 3686400.0;     if (x_l < 72.004)     {         *china_lng =  ;         *china_lat = ;         return 0xFFFF95FF;     }     if ( x_l > 137.8347)     {         *china_lng =  ;         *china_lat = ;         return 0xFFFF95FF;     }     if (y_l < 0.8293)     {         *china_lng =  ;         *china_lat = ;         return 0xFFFF95FF;     }     if ( y_l > 55.8271)     {         *china_lng =  ;         *china_lat = ;         return 0xFFFF95FF;     }     if (wg_flag ==)     {         IniCasm(wg_time,wg_lng,wg_lat);         *china_lng = wg_lng;         *china_lat = wg_lat;         return 0x00000000;     }         casm_t2= wg_time ;     t1_t2 =(double)(casm_t2 - casm_t1)/1000.0;     if ( t1_t2<= )     {         casm_t1= casm_t2 ;         casm_f=casm_f+;         casm_x1 = casm_x2;         casm_f=casm_f+;         casm_y1 = casm_y2;         casm_f=casm_f+;     }     else    {         if ( t1_t2 >  )         {             if (casm_f == )             {                 casm_f=;                 casm_x2 = wg_lng;                 casm_y2 = wg_lat;                 x1_x2 = casm_x2 - casm_x1;                 y1_y2 = casm_y2 - casm_y1;                 casm_v = sqrt (x1_x2 * x1_x2 + y1_y2 * y1_y2 ) /t1_t2;                 if (casm_v  > )                 {                     *china_lng =  ;                     *china_lat = ;                     return (0xFFFF95FF);                 }             }             casm_t1= casm_t2 ;             casm_f=casm_f+;             casm_x1 = casm_x2;             casm_f=casm_f+;             casm_y1 = casm_y2;             casm_f=casm_f+;         }     }     x_add = Transform_yj5(x_l - , y_l - ) ;     y_add = Transform_yjy5(x_l - , y_l - ) ;     h_add = wg_heit;         x_add = x_add + h_add * 0.001 + yj_sin2(wg_time*0.0174532925199433)+random_yj();     y_add = y_add + h_add * 0.001 + yj_sin2(wg_time*0.0174532925199433)+random_yj();     *china_lng = unsigned int( (x_l + Transform_jy5(y_l, x_add)) *  );     *china_lat = unsigned int( (y_l + Transform_jyj5(y_l, y_add)) *  );     return (0x00000000); }     bool wg2mars( const double in_lon, const double in_lat, double& out_lon, double& out_lat ) {     const double BASE = 3686400.0;     unsigned int lon, lat;     lon = unsigned int ( in_lon * BASE );     lat = unsigned int ( in_lat * BASE );     unsigned int ret = wgtochina_lb( , lon, lat, , , , &lon, &lat );     out_lon = lon / BASE;     out_lat = lat / BASE;     return (==ret); }

http://hi.baidu.com/sa_sc/item/570101a588b5f8f714329b26

WGS84 2 GCJ-02的更多相关文章

  1. 火星02坐标转换为WGS84坐标

    import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import jav ...

  2. 地球坐标系(WGS-84)转火星坐标系(GCJ)

    /** * 单点坐标纠偏 */ var pi = 3.14159265358979324; var a = 6378245.0; var ee = 0.00669342162296594323; va ...

  3. 使用js对WGS-84 ,GCJ-02与BD-09的坐标进行转换

    获取到经纬度在用百度地图进行定位时,却发现行驶轨迹的路线定到海里面去了.从网上查阅,知道此方法. 出处:https://www.jianshu.com/p/53f00ba897f7 一.在进行地图开发 ...

  4. python、js实现WGS84、高德(火星)、百度坐标转换

    在日常工作学习中常会涉及到WGS84.高德(火星/谷歌).百度三种空间坐标系的坐标转换,本文将通过python.js两种语言实现坐标系的转换. 坐标系说明: wgs84:为一种大地坐标系,也是目前广泛 ...

  5. 火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版

    火星坐标 火星坐标是国家测绘局为了国家安全在原始坐标的基础上进行偏移得到的坐标,基本国内的电子地图.导航设备都是采用的这一坐标系或在这一坐标的基础上进行二次加密得到的.火星坐标的真实名称应该是GCJ- ...

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

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

  7. WGS84、Web墨卡托、火星坐标、百度坐标互转

    转自:1.http://blog.csdn.net/wildboy2001/article/details/12031351 2.http://kongxz.com/2013/10/wgs-cgj/ ...

  8. WGS84、GCJ-02(火星坐标)、百度坐标,Web墨卡托坐标

    GCJ-02坐标系统(火星坐标)简介:http://blog.csdn.net/giswens/article/details/8775121(存档:http://mapbd.com/cms/2012 ...

  9. GCJ-02火星坐标系和WGS-84坐标系转换关系

    GCJ-02火星坐标系和WGS-84坐标系转换关系 WGS-84:GPS坐标系 GCJ-02:火星坐标系,国测局02年发布的坐标体系,高德,腾讯等使用. BD-09:百度坐标系,百度自研,百度地图使用 ...

  10. WGS84,GCJ02, BD09坐标转换

    public class Gps { private double wgLat; private double wgLon; public Gps(double wgLat, double wgLon ...

随机推荐

  1. jade注释

    在jade里面注释是有多种方式的 单行注释,加两个//,跟js里面一样 //h1.title#title imoock jade study => <!--h1.title#title i ...

  2. BZOJ 2321 星器

    星器 思路: 势能分析法. 假设每颗星星的势能为\(x^2+y^2\) 那么对于一行的两颗星星\((i, j), (i, k), j < k\) 它转移到\((i, j+1), (i, k-1) ...

  3. vue mint ui 手册文档

    npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i mint-ui -S CDN 目前可以通过 unpkg.com/mint-ui 获取到最新版本 ...

  4. Linux下卸载mysql8.x版本

    一.停止MySQL [root@localhost /]# service mysqld stop 二.查看当前安装mysql情况,查找以前是否装有mysql [root@localhost /]# ...

  5. 12 复习 - webpack基本配置1

    1.npm包管理工具 npm init -y 如果创建的项目的根目录名称是中文或者包含中文,不能使用-y npm init 回车时要求你输入包的名称,自己手写项目名称,例test 2.新建src,di ...

  6. P2P system: FastTrack and BitTorrent

    FastTrack FastTrack来源于Gnutella,是Gnutella 和 Napster的杂交体 有些node承担了更重要的责任,这些nodes称为supernodes,因为这些改进,它比 ...

  7. LightOJ - 1078-Integer Divisibility(同余)

    链接: https://vjudge.net/problem/LightOJ-1078 题意: If an integer is not divisible by 2 or 5, some multi ...

  8. java中日志打印

    目录 一.预先判断日志级别 二.避免无效日志打印 三.区别对待错误日志 四.保证记录完整内容 打印日志,要注意下面4点. 一.预先判断日志级别 对DEBUG.INFO级别的日志,必须使用条件输出或者使 ...

  9. mongodb存储引擎WiredTiger

      MongoDB3.2后默认采用WiredTiger存储引擎. 组成 WiredTiger由三部分组成: Mongos: 负责查询请求的路由和对ShardServer的管理: ConfigServe ...

  10. learning scala pattern matching 03

    code: package com.aura.scala.day01 object patternMatching03 { //当不同类型对象需要调用不同方法时,仅匹配类型的模式非常有用. def g ...