js中火星坐标,百度坐标,WGS84坐标转换实现方法示例

  

本文实例讲述了js中火星坐标,百度坐标,WGS84坐标转换实现方法。分享给大家供大家参考,具体如下:

     //定义一些常量   var x_PI=3.14159265358979324 * 3000.0/180.0;   varπ=3.1415926535897932384626;   var=6378245.0;   var ee=0.00669342162296594323;/* *   *百度坐标系(BD-09)与火星坐标系(GCJ-02)的转换   *即百度转谷歌,高德   */函数bd09togcj02 (bd_lon bd_lat) {   var x_pi=3.14159265358979324 * 3000.0/180.0;   var x=bd_lon - 0.0065;   var y=bd_lat - 0.006;   var z=数学。√x * x + y * y - 0.00002 *数学。罪(y * x_pi);   varθ=数学。量化(y、x) - 0.000003 *数学。cos (x * x_pi);   var gg_lng=z * Math.cos(θ);   var gg_lat=z * sin(θ);   返回(gg_lng, gg_lat)   }/* *   *火星坐标系(GCJ-02)与百度坐标系(BD-09)的转换   *即谷歌,高德转百度   */函数gcj02tobd09(液化天然气,lat) {   var z=数学。sqrt(液化天然气液化天然气* + lat * lat) + 0.00002 *数学。罪(lat * x_PI);   varθ=数学。量化(lat,液化天然气)+ 0.000003 *数学。* x_PI cos(液化天然气);   var bd_lng=z * Math.cos(θ)+ 0.0065;   var bd_lat=z * sin(θ)+ 0.006;   返回(bd_lng, bd_lat)   }/* *   * WGS84转GCj02   */函数wgs84togcj02(液化天然气,lat) {   如果(out_of_china(液化天然气,lat)) {   返回(液化天然气,lat)   }   其他{   var dlat=transformlat(液化天然气- 105.0,lat - 35.0);   var dlng=transformlng(液化天然气- 105.0,lat - 35.0);   var radlat=lat/180.0 *π;   魔法var=sin (radlat);   神奇=1 - ee * *魔法;   var sqrtmagic=Math.sqrt(魔法);   dlat=(dlat * 180.0)/((* (1 - ee))/(魔法* sqrtmagic) *π);   dlng=(dlng * 180.0)/(/sqrtmagic * Math.cos (radlat) * PI);   var mglat=lat + dlat;   var mglng=液化天然气+ dlng;   返回(mglng, mglat)   }   }/* *   * GCJ02转换为WGS84   */函数gcj02towgs84(液化天然气,lat) {   如果(out_of_china(液化天然气,lat)) {   返回(液化天然气,lat)   }   其他{   var dlat=transformlat(液化天然气- 105.0,lat - 35.0);   var dlng=transformlng(液化天然气- 105.0,lat - 35.0);   var radlat=lat/180.0 *π;   魔法var=sin (radlat);   神奇=1 - ee * *魔法;   var sqrtmagic=Math.sqrt(魔法);   dlat=(dlat * 180.0)/((* (1 - ee))/(魔法* sqrtmagic) *π);   dlng=(dlng * 180.0)/(/sqrtmagic * Math.cos (radlat) * PI);   mglat=lat + dlat;   mglng=液化天然气+ dlng;   返回(液化天然气* 2 - mglng, lat * 2 - mglat]   }   }   函数transformlat(液化天然气,lat) {   var ret=-100.0 + 2.0 *液化天然气+ 3.0 * lat + 0.2 * lat * lat + 0.1 *液化天然气* lat + 0.2 * Math.sqrt (Math.abs (lng));   ret +=(20.0 * sin(6.0 *液化天然气*π)+ 20.0 * sin(2.0 *液化天然气*π))* 2.0/3.0;   ret +=(20.0 *数学。罪(lat *π)+ 40.0 *数学。罪(lat/3.0 *π))* 2.0/3.0;   ret +=(160.0 *数学。罪(lat/12.0 * PI) + 320 *数学。罪(lat *π/30.0))* 2.0/3.0;   返回受潮湿腐烂   }   函数transformlng(液化天然气,lat) {   var ret=300.0 +液化天然气液化天然气+ 2.0 * lat + 0.1 * *液化天然气液化天然气+ 0.1 * * lat + 0.1 * Math.sqrt (Math.abs (lng));   ret +=(20.0 * sin(6.0 *液化天然气*π)+ 20.0 * sin(2.0 *液化天然气*π))* 2.0/3.0;   ret +=(20.0 *数学。罪(液化天然气*π)+ 40.0 *数学。罪(液化天然气/3.0 *π))* 2.0/3.0;   ret +=(150.0 *数学。罪(液化天然气/12.0 *π)+ 300.0 *数学。罪(液化天然气/30.0 *π))* 2.0/3.0;   返回受潮湿腐烂   }/* *   *判断是否在国内,不在国内则不做偏移   */函数out_of_china(液化天然气,lat) {   返回(液化天然气& lt;72.004 | |液化天然气比;137.8347)| | (lat & lt;0.8293 | | lat祝辞55.8271)| |假);   }      之前      

更多关于JavaScript相关内容还可查看本站专题:《JavaScript数学运算用法总结》,《JavaScript数据结构与算法技巧总结》,《JavaScript数组操作技巧总结》及《JavaScript字符与字符串操作技巧总结》

  

希望本文所述对大家JavaScript程序设计有所帮助。

js中火星坐标,百度坐标,WGS84坐标转换实现方法示例