//定义一些常量
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)的转换* 即 百度 转 谷歌、高德*/
function 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 = 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) 的转换* 即谷歌、高德 转 百度*/
function gcj02tobd09(lng, lat) {var 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.0065;var bd_lat = z * Math.sin(theta) + 0.006;return [bd_lng, bd_lat]
}/*** WGS84转GCj02*/
function wgs84togcj02(lng, lat) {if (out_of_china(lng, lat)) {return [lng, lat]}else {var dlat = transformlat(lng - 105.0, lat - 35.0);var dlng = transformlng(lng - 105.0, lat - 35.0);var radlat = lat / 180.0 * PI;var magic = Math.sin(radlat);magic = 1 - ee * magic * magic;var 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 + dlat;var mglng = lng + dlng;return [mglng, mglat]}
}/*** GCJ02 转换为 WGS84*/
function gcj02towgs84(lng, lat) {if (out_of_china(lng, lat)) {return [lng, lat]}else {var dlat = transformlat(lng - 105.0, lat - 35.0);var dlng = transformlng(lng - 105.0, lat - 35.0);var radlat = lat / 180.0 * PI;var magic = Math.sin(radlat);magic = 1 - ee * magic * magic;var sqrtmagic = Math.sqrt(magic);dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);mglat = lat + dlat;mglng = lng + dlng;return [lng * 2 - mglng, lat * 2 - mglat]}
}function transformlat(lng, lat) {var 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.0;ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;return ret
}function transformlng(lng, lat) {var 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.0;ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;return ret
}/*** 判断是否在国内,不在国内则不做偏移*/
function out_of_china(lng, lat) {return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
}

【笔记】WGS84转GCj02相关推荐

  1. Unity经纬度相互转换(WGS-84、GCJ-02、BD-09)

    /***  *   *    Title: MXFramework  *           主题: GPS工具类  *    Description:   *           功能:1.各种坐标 ...

  2. WGS84与GCJ02、BD09经纬度坐标转换介绍

    在涉及到经纬度的地方,我们在编码的时候,经常需要进行转换.而且转换代码似乎非常复杂,真正理解,其实需要做一些工作,这里我将了解的经纬度坐标相关的知识做一个梳理. 首先了解经纬度坐标系统. 因为地球并不 ...

  3. GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系)

    GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系) 坐标系简介 WGS-84 标准坐标系 GCJ-02 - 国测局坐标 BD-09 - 百度坐标系 干货前的说明 WGS84转GCJ-02 ...

  4. WGS84、GCJ-02、BD-09、图吧坐标简介及坐标转换实现(js版)

    1.不同地图服务商的坐标系 出于国家安全考虑不同的国家在规定地图服务提供商在提供地图服务的时候需要将地图数据进行加密.现在比较流行的坐标系有WGS84.GCJ-02.BD-09,且各个坐标之间存在偏差 ...

  5. WGS84、GCJ-02、BD-09、图吧坐标简介及坐标转换实现(java版)

    1.定位系统及如何定位 现在全球有四个卫星定位系统:美国的全球定位系统GPS(Global Positioning System),俄罗斯的格洛纳斯GIONASS, 欧盟的伽利略系统,我国的北斗. 每 ...

  6. Android开发:WGS-84、GCJ02坐标名词解释及坐标转换

    WGS-84.GCJ02坐标名词解释及坐标转换 目录 一.什么是WSG-84坐标系? 二 .什么是GCJ-02坐标系? 三.GCJ-02坐标系使用场景 四.函数说明 五.工具类代码 注:本文仅包含国测 ...

  7. 转换WGS84、GCJ02、BD09坐标,解决百度高德坐标偏移

    转换WGS84.GCJ02.BD09坐标,解决百度高德坐标偏移 做过地图相关开发的同学肯定会遇到这样一个问题:同样的经纬度坐标,在百度地图和高德地图上位置不一样. 关于坐标系 我们通常用经纬度来表示一 ...

  8. 百度地图开放平台wgs84,gcj02转bd09

    百度地图开放平台wgs84,gcj02转bd09 完整代码 代码解读 参考文献 开局一张图,故事全靠编,上图是上海市257个地铁站bd09坐标和wgs84坐标的差距,可以看到bd09较wgs84往右上 ...

  9. GIS开发:WGS84、GCJ-02、BD-09的区别

    GIS开发:WGS84.GCJ-02.BD-09的区别 前言 开发地图应用服务时,一定会接触到各种坐标系,而保证坐标系的正确与合理是一切数据分析的前提. 这篇文章就梳理了一些常见的地理坐标系,希望能帮 ...

  10. GIS数据格式坐标转换(地球坐标WGS84、GCJ-02、火星坐标、百度坐标BD-09、国家大地坐标系CGCS2000)

    文章目录 前言 一.坐标系 1.地球坐标 (WGS84) 2.国测局坐标系(GCJ-02.火星坐标系) 3.百度坐标(BD-09) 4.国家大地2000坐标系(CGCS2000) 二.百度坐标系(BD ...

最新文章

  1. 完成CitrixVDI架构了解及部署测试
  2. bzoj 1045 [HAOI2008] 糖果传递 —— 贪心
  3. android WebView详解,常见漏洞详解和安全源码(上)
  4. php的declare,php 中的declare
  5. vue ---- webpack中的插件 webpack-dev-server
  6. mysql update case when和where之间的注意事项
  7. Linux下Tomcat性能优化--文件句柄数增大
  8. [No000057]一个人默默背单词,小心被传染哦
  9. 判断IP是否为搜索引擎蜘蛛或爬虫
  10. endnote X7 超级初学者教程
  11. PHP 静态缓存 OB系列函数
  12. 借助易宝实现Java版网上在线支付
  13. 员工培训管理系统设计与实现
  14. Python爬虫反爬方法
  15. [Windows][卓越性能模式]win10上如何开启卓越性能模式?
  16. OpenGL为什么配置GLAD及GLFW
  17. 七彩虹显卡软件测试,显卡超频测试_七彩虹显卡_显卡评测-中关村在线
  18. 获取手机mac地址和串号IMEI
  19. 多图片上传插件webuploader
  20. 无线/移动通信的发展终极目标是,实现个人通信PCN是人类通信的最高目标,它指使用各种可能的网络技术,实现任何人在任何时间、任何地点与任何人进行任何何种类的信息交换。

热门文章

  1. PS基础,灰度色彩模式
  2. DB2 执行SQL报错: DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048
  3. 性别年龄论文阅读(3)——VGGFace2
  4. 《编译学习计划【第一季】》- C语言中的qsort函数
  5. 2021年上海市汽车上牌量及分布:上牌量增长18%,新能源小客车占39%[图]
  6. Skiplist(跳表)的简单介绍与C++实现
  7. 如何在Mac上打开和使用AirPlay,以便在更大的显示器上进行屏幕镜像?
  8. matlab imcrop 对应python函数_python做微积分
  9. Autojs微信自动操作免root脚本源码
  10. Redis读书笔记(一)Redis可以做什么