目前主要有哪些坐标系:

大地坐标系统(WGS-84):用来表述地球上点的位置的一种地区坐标系统,主要用于国外地图。

火星坐标系(GCJ-02):对真实坐标系统进行人为的加偏处理,如大多数国内地图:高德地图、腾讯地图。

百度坐标系(BD-09):对火星坐标系再次进行加密,如:百度地图。

坐标转换

一、WGS-84转GCJ-02

// WGS-84转GCJ-02
transformlat: function (lng, lat) {let PI = 3.1415926535897932384626;let 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},transformlng: function (lng, lat) {let PI = 3.1415926535897932384626;let 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},wgsToGcj: function (lng, lat) {let PI = 3.1415926535897932384626;let a = 6378245.0;let ee = 0.00669342162296594323;let dlat = this.transformlat(lng - 105.0, lat - 35.0);let dlng = this.transformlng(lng - 105.0, lat - 35.0);let radlat = lat / 180.0 * PI;let magic = Math.sin(radlat);magic = 1 - ee * magic * magic;let sqrtmagic = Math.sqrt(magic);dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);let mglat = lat + dlat;let mglng = lng + dlng;return {longitude: mglng,latitude: mglat}},

二、GCJ-02转WGS-84

// GCJ-02转WGS-84
transformlat: function (lng, lat) {let PI = 3.1415926535897932384626;let 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},transformlng: function (lng, lat) {let PI = 3.1415926535897932384626;let 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},gcjToWgs: function (lng, lat) {let PI = 3.1415926535897932384626;let a = 6378245.0;let ee = 0.00669342162296594323;let dlat = transformlat(lng - 105.0, lat - 35.0);let dlng = transformlng(lng - 105.0, lat - 35.0);let radlat = lat / 180.0 * PI;let magic = Math.sin(radlat);magic = 1 - ee * magic * magic;let sqrtmagic = Math.sqrt(magic);dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);let mglat = lat + dlat;let mglng = lng + dlng;return {longitude: lng * 2 - mglng,latitude: lat * 2 - mglat}},

三、GCJ-02转BD-09

//火星转百度坐标
function bd_encrypt(lng, lat) {var X_PI = Math.PI * 3000.0 / 180.0;var x = lng, y = lat;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 bd_lon = z * Math.cos(theta) + 0.0065;var bd_lat = z * Math.sin(theta) + 0.006;return {longitude: bd_lon,latitude: bd_lat       };
}

四、BD-09转GCJ-02

//百度转火星坐标
function bd_decrypt(lng, lat) {var X_PI = Math.PI * 3000.0 / 180.0;var x = lng- 0.0065;var y = 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_lon = z * Math.cos(theta);var gg_lat = z * Math.sin(theta);return {longitude: gg_lon,latitude: gg_lat}
}

在国外则不做偏移处理

// 判断是否在国内,在国外则不做偏移
function out_of_china(lng, lat) {return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
}

完!

不同地图坐标系的坐标转换相关推荐

  1. java常用地图坐标系转换工具类,支持谷歌,腾讯,百度等主流的地理坐标转换

    package com.shen.springboot.redis.util;import java.util.ArrayList; import java.util.HashMap; import ...

  2. 地图坐标系之间的转换(百度地图、GCJ、WGS84)

    文章目录 文章参考 坐标系介绍 常见坐标系 WGS84坐标系(标准的GPS坐标) WGS84 Web墨卡托(平面地图) GCJ02经纬度投影(火星坐标系) GCJ02 Web 墨卡托投影 BD09 经 ...

  3. GIS地图坐标系转换方法,快快收藏

     开发地图的时最烦的就是不同的地图工具以及数据来源坐标系不同造成偏移甚至报错.以下整理了部分的地图坐标转换,一个文件直接搞定所有情况. 一.地图坐标系分类 常见的地图技术:openlayers.ces ...

  4. 大疆坐标系和高德地图坐标系之间转换的问题

    目前各种坐标系非常多,他们之间的转换就是个比较麻烦的问题.之前有个问题,就是大疆的坐标系在高德地图上显示发生了偏移,但是好在高德地图提供了坐标转换的API,但是新的问题来了,大疆的坐标适应了高德的坐标 ...

  5. 百度地图和高德地图坐标系的互相转换

    原文地址:http://blog.csdn.net/a13570320979/article/details/51366355 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1 ...

  6. 地图坐标系大全:常用地图坐标系详解与转换指南

    介绍地图坐标系的基本概念和原理 地图坐标系是用于描述地图上位置的数学模型.它可以用来表示地球表面上的任意一个点,使得这个点的位置可以在地图上精确定位.不同的地图坐标系采用不同的基准面和投影方式,因此会 ...

  7. FreeJTS部标视频平台:车载坐标系与地图坐标系转换

    背景 最近在开发部标平台中进行轨迹回放的定位接口中,返发现回的是WSG-84坐标系下的经纬度信息,但项目前端使用的是高德地图,发现位置有偏移.经了解,需要进行车载坐标系和地图坐标系进行转换. 常见坐标 ...

  8. 地图坐标系相互转换(WGS-84、GCJ-02、BD-09)

    一.地图坐标系解释 在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德 ...

  9. GPS各种地图坐标系转换(转载)

    http://my.oschina.net/fankun2013/blog/338100 地图供应商比较多,产生了许多地图坐标.地图坐标正确转换是个问题.在之前开发地图应用的时候发现从WGS84坐标系 ...

最新文章

  1. 在Centos 7下编译openwrt+njit-client
  2. 陶哲轩实分析定理17.3.8(三)
  3. 三个基于.net的浏览器内核使用的比较
  4. 好用的侧边栏菜单/面板jQuery插件
  5. [architecture]-CPU(ARM)启动的第一条指令
  6. NO.1 python_人工智能_学习路线
  7. 1420C1. Pokémon Army (easy version)
  8. 云原生应用Go语言:你还在考虑的时候,别人已经应用实践
  9. 怎样组建云计算机,如何搭建云计算平台_搭建云计算平台步骤
  10. kalman filter using python
  11. 关于cuda驱动版本以及cuda运行版本不匹配的问题
  12. 字体文件夹在哪?xp\win7\win8\win10系统字体文件夹位置
  13. linux .cache目录,关于linux系统下的cache Memory
  14. APP在推广之渠道为王(二 )
  15. 最好的年终奖,是你拥有随时跳槽的能力
  16. meterial design 5.0 新增控件介绍及使用方法
  17. 电脑硬件知识入门之显卡篇
  18. Android JNI总结
  19. php compress.zlib_compress/zlib(压缩/zlib)
  20. 萨尔大学计算机受限,【德国留学】留学受限专业是怎么回事?如何被受限专业录取?...

热门文章

  1. linux磁盘空间清理
  2. 无法实现接口成员,因为它不是公共的——interface
  3. MANIFEST.MF文件的格式
  4. SQL Server-创建表格、各种约束条件
  5. java 获取当前ip_不停机还能替换代码?6年的 Java程序员表示不可思议
  6. 分布式部署Zabbix监控平台
  7. Go runtime的调度器
  8. HTML5无刷新修改URL:利用 History API 无刷新更改地址栏
  9. 使用 Intel HAXM 为 Android 模拟器加速,媲美真机(转)
  10. 如何优雅的研究 RGSS3 (七) 加入LOGO屏幕