来源网络

/* eslint-disable */
// 各大坐标系转换插件,QQ:1572309495
// 定义一些常量
var x_PI = 3.14159265358979324 * 3000.0 / 180.0
var PI = 3.1415926535897932384626
var a = 6378245.0
var ee = 0.00669342162296594323/*** 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换* 即 百度 转 谷歌、高德* @param bd_lon* @param bd_lat* @returns {*[]}*/
function bd09_to_gcj02(bd_lon, bd_lat) {var bd_lon = +bd_lonvar bd_lat = +bd_latvar x = bd_lon - 0.0065var y = bd_lat - 0.006var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_PI)var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_PI)var gg_lng = z * Math.cos(theta)var gg_lat = z * Math.sin(theta)return [gg_lng, gg_lat]
}/*** 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换* 即谷歌、高德 转 百度* @param lng* @param lat* @returns {*[]}*/
function gcj02_to_bd09(lng, lat) {var lat = +latvar lng = +lngvar z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI)var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI)var bd_lng = z * Math.cos(theta) + 0.0065var bd_lat = z * Math.sin(theta) + 0.006return [bd_lng, bd_lat]
}/*** WGS84转GCj02* @param lng* @param lat* @returns {*[]}*/
function wgs84_to_gcj02(lng, lat) {var lat = +latvar lng = +lngif (out_of_china(lng, lat)) {return [lng, lat]} else {var dlat = trans_form_lat(lng - 105.0, lat - 35.0)var dlng = trans_form_lng(lng - 105.0, lat - 35.0)var radlat = lat / 180.0 * PIvar magic = Math.sin(radlat)magic = 1 - ee * magic * magicvar sqrtmagic = Math.sqrt(magic)dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI)dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI)var mglat = lat + dlatvar mglng = lng + dlngreturn [mglng, mglat]}
}/*** GCJ02 转换为 WGS84* @param lng* @param lat* @returns {*[]}*/
function gcj02_to_wgs84(lng, lat) {var lat = +latvar lng = +lngif (out_of_china(lng, lat)) {return [lng, lat]} else {var dlat = trans_form_lat(lng - 105.0, lat - 35.0)var dlng = trans_form_lng(lng - 105.0, lat - 35.0)var radlat = lat / 180.0 * PIvar magic = Math.sin(radlat)magic = 1 - ee * magic * magicvar sqrtmagic = Math.sqrt(magic)dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI)dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI)var mglat = lat + dlatvar mglng = lng + dlngreturn [lng * 2 - mglng, lat * 2 - mglat]}
}function trans_form_lat(lng, lat) {var lat = +latvar lng = +lngvar ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng))ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0return ret
}function trans_form_lng(lng, lat) {var lat = +latvar lng = +lngvar ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng))ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0return ret
}/*** 判断是否在国内,不在国内则不做偏移* @param lng* @param lat* @returns {boolean}*/
function out_of_china(lng, lat) {var lat = +latvar lng = +lng// 纬度3.86~53.55,经度73.66~135.05return !(lng > 73.66 && lng < 135.05 && lat > 3.86 && lat < 53.55)
}module.exports = {bd09_to_gcj02: bd09_to_gcj02,gcj02_to_bd09: gcj02_to_bd09,wgs84_to_gcj02: wgs84_to_gcj02,gcj02_to_wgs84: gcj02_to_wgs84,trans_form_lat: trans_form_lat,trans_form_lng: trans_form_lng,out_of_china: out_of_china
}

js 百度坐标和火星坐标的转换相关推荐

  1. gps84转换gcj02公式_百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换...

    //定义一些常量 var x_PI = 3.14159265358979324 * 3000.0 / 180.0; var PI = 3.1415926535897932384626; var a = ...

  2. 前端javascript百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换

    /*** * 提供了百度坐标(BD09).国测局坐标(火星坐标,GCJ02).和WGS84坐标系之间的转换*/ // UMD魔法代码 // if the module has no dependenc ...

  3. 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转

    为什么写这个模块 随着移动互联网的兴起,几乎每一个app都会去收集用户位置,如果恰好你在处理与地理定位相关的代码,并且不了解地理坐标系的话,肯定要被我大天朝各种坐标系搞晕.写这个模块的目的也是因为项目 ...

  4. 地球坐标,火星坐标,百度坐标转换

    标准地球坐标即GPS设备获得的坐标,该坐标需要经过国家测绘局进行加密后形成火星坐标(WGS-84 ),我们用的google坐标和高德地图坐标也就是火星坐标 百度地图,在火星坐标的基础上再进行一次加密, ...

  5. 地球坐标、 火星坐标、百度坐标转换

    地图的坐标系介绍 地球坐标 (WGS84) 国际标准,从 GPS 设备中取出的数据的坐标系 国际地图提供商使用的坐标系 火星坐标 (GCJ-02)也叫国测局坐标系 中国标准,从国行移动设备中定位获取的 ...

  6. 地球坐标,火星坐标,百度坐标转换C++

    标准地球坐标即GPS设备获得的坐标,该坐标需要经过国家测绘局进行加密后形成火星坐标(WGS-84 ),我们用的google坐标和高德地图坐标也就是火星坐标 百度地图,在火星坐标的基础上再进行一次加密, ...

  7. 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的相互转换

    /*** Created by Wandergis on 2015/7/8.* 提供了百度坐标(BD09).国测局坐标(火星坐标,GCJ02).和WGS84坐标系之间的转换*///定义一些常量 var ...

  8. html转换图片位置不正确的是,html5+经纬度定位不准确,html5坐标转火星坐标,百度地图Convertor.translate...

    今天,我爱模板网在做APP考勤时,需要定位用户的位置,显示在地图上,于是就想到了用h5+的plus.geolocation.getCurrentPosition来获取经纬度,然后通过百度地图api将经 ...

  9. shp面要素wgs84坐标转火星坐标(gcj)方法

    直入正题,说一下大概思路 1.将shp转为geojson格式 2.将geojson里面的坐标串进行坐标转换 3.将转换好的新的geojson重新生成shp格式 下面我们具体说明操作步骤 1.利用htt ...

  10. 火星坐标、百度坐标、WGS84坐标转换代码(JS、python版)

    火星坐标.百度坐标.WGS84坐标转换代码(JS.python版) 一.JS版本源码 github:https://github.com/wandergis/coordTransform /*** C ...

最新文章

  1. struts 2 结合json
  2. 软考网络工程师身份证忘记领取啦怎么办
  3. SAP Netweaver和Hybris的数据库层
  4. LeetCode OJ - Candy
  5. Redis运维和开发学习笔记(2) redis持久化
  6. hadoop 集群启动时 Address already in use 解决方法
  7. c++删除数组中重复元素_PG13中的功能—B树索引中的重复数据删除
  8. 自定义基于HTML5的video播放器—Customize your video player
  9. Gmail 为什么打不开
  10. coffeescript_在客户端上使用CoffeeScript
  11. library sort (图书馆排序)
  12. 华为od试题java_华为od社招一面凉经
  13. BISHIMIANSHI
  14. Qt LINK : fatal error LNK1104: 无法打开文件“xxx.lib”
  15. AMD Opteron 185 + ATI RDX200 安装雪豹成功。
  16. 因跨域,post请求变options请求(vue)
  17. Python在命令行模式下登录MySQL数据库
  18. 基于Springboot的智慧校园管理系统(PC端和APP端双端应用)
  19. IntelliJ IDEA 可以使用中文了
  20. 智慧消防管网水压监测系统解决方案

热门文章

  1. 在 WindowMobile 上的模拟LED 显示屏插件(转)
  2. 专用计算机数控编程软件有哪些,大家都用什么数控编程软件
  3. 我在Linux开发板上跑的第一个Qt程序
  4. puk码怎么查询_手机PUK码怎么查询?使用PUK码解锁手机电话SIM/USIM卡的教程
  5. mysql每次查询加流水号_通过SQL自动添加流水号
  6. 时间管理之番茄工作法
  7. EasyAR4.0简单使用说明
  8. python 模拟用户点击浏览器_浏览器行为模拟之requests、selenium模块
  9. 如何使用达梦数据库的数据库配置助手删除数据库实例
  10. flyme禁止系统更新_彻底关闭魅族flyme系统自动更新的方法分享