经纬度标准

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

简而言之,大概分成三个体系:原始,百度,高德(腾讯、谷歌等一致)。

通过 线上的经纬度(参考下面的参考链接),去定位。

转换式示范java版本(js对应小改下就好)


static double pi = 3.14159265358979324;
static double a = 6378245.0;
static double ee = 0.00669342162296594323;
public final static double x_pi = pi * 3000.0 / 180.0;/*** 高德经纬度转百度经纬度*/
public static double[] gcj2bd(double lat, double lon) {double z = Math.sqrt(lon * lon + lat * lat) + 0.00002 * Math.sin(lat * x_pi);double theta = Math.atan2(lat, lon) + 0.000003 * Math.cos(lon * x_pi);double bd_lon = z * Math.cos(theta) + 0.0065;double bd_lat = z * Math.sin(theta) + 0.006;return new double[] { bd_lat, bd_lon };
}/*** 百度经纬度转高德*/
public static double[] bd2gcj(double lat, double lon) {double x = lon - 0.0065, y = lat - 0.006;double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);double gg_lon = z * Math.cos(theta);double gg_lat = z * Math.sin(theta);return new double[] { gg_lat, gg_lon };
}/*** 国标经纬度转高德经纬度*/
public static double[] wgs2gcj(double lat, double lon) {double dLat = transformLat(lon - 105.0, lat - 35.0);double dLon = transformLon(lon - 105.0, lat - 35.0);double radLat = lat / 180.0 * pi;double magic = Math.sin(radLat);magic = 1 - ee * magic * magic;double sqrtMagic = Math.sqrt(magic);dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);double mgLat = lat + dLat;double mgLon = lon + dLon;return new double[]{ mgLat, mgLon };
}/*** 高德转到GPS*/
public static double[] gcj2wgc(double lat, double lon) {double dLat = transformLat(lon - 105.0, lat - 35.0);double dLon = transformLon(lon - 105.0, lat - 35.0);double radLat = lat / 180.0 * pi;double magic = Math.sin(radLat);magic = 1 - ee * magic * magic;double sqrtMagic = Math.sqrt(magic);dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);double mgLat = lat + dLat;double mgLon = lon + dLon;double lontitude = lon * 2 - mgLon;double latitude = lat * 2 - mgLat;return new double[]{latitude, lontitude};
}/*** 国标转百度*/
public static double[] wgs2bd(double lat, double lon) {double[] wgs2gcj = wgs2gcj(lat, lon);return gcj2bd(wgs2gcj[0], wgs2gcj[1]);
}/*** 经纬度转换*/
private static double transformLat(double lat, double lon) {double ret = -100.0 + 2.0 * lat + 3.0 * lon + 0.2 * lon * lon + 0.1 * lat * lon + 0.2 * Math.sqrt(Math.abs(lat));ret = getRet(lat, lon, ret);ret += (160.0 * Math.sin(lon / 12.0 * pi) + 320 * Math.sin(lon * pi  / 30.0)) * 2.0 / 3.0;return ret;
}private static double getRet(double lat, double lon, double ret) {ret += (20.0 * Math.sin(6.0 * lat * pi) + 20.0 * Math.sin(2.0 * lat * pi)) * 2.0 / 3.0;ret += (20.0 * Math.sin(lon * pi) + 40.0 * Math.sin(lon / 3.0 * pi)) * 2.0 / 3.0;return ret;
}private static double transformLon(double lat, double lon) {double ret = 300.0 + lat + 2.0 * lon + 0.1 * lat * lat + 0.1 * lat * lon + 0.1 * Math.sqrt(Math.abs(lat));ret = getRet(lat, lat, ret);ret += (150.0 * Math.sin(lat / 12.0 * pi) + 300.0 * Math.sin(lat / 30.0 * pi)) * 2.0 / 3.0;return ret;
}

参考文章

经纬度/GPS坐标查询地图地址在线工具 - 爱资料工具

高德、百度、GPS经纬度转换_崔丝塔娜炮手的博客-CSDN博客_gps经纬度转高德经纬度

坐标纠偏,地图位置偏移 - openGPS.cn

地图坐标转换及原理,一篇就足够!相关推荐

  1. 【科普】Web(瓦片)地图的工作原理

    [译者按:在看MapBox Guides文档时,看到这篇 How do web maps work?,这篇文档通俗易懂地阐述了Web地图是如何工作的,其实更偏向讲瓦片地图的工作原理,鉴于之前很多人不了 ...

  2. Hugepages你用了吗?--原理概念篇

    Hugepages你用了吗?----原理概念篇 Hugepages你用了吗?----测试案例篇      引子 系统进程是通过虚拟地址访问内存,但是CPU必须把它转换程物理内存地址才能真正访问内存.为 ...

  3. 深入浅出TCP/UDP 原理-UDP篇(2)及完整MATLAB实现UDP通信

    目录 调试代码在文末 写在前面 3. UDP疑难杂症 3.1 UDP的传输方式:面向报文 3.2 UDP数据包的发送和接收问题 3.3 UDP丢包问题 3.4 UDP冗余传输 4 UDP真的比TCP要 ...

  4. 百度地图坐标转换API

    百度地图坐标转换API 之前写过一篇利用私有API处理Wgs到火星坐标的转换的问题 最近发现有个百度地图未公开的坐标转换API挺不错: http://api.map.baidu.com/ag/coor ...

  5. html5地图连线原理,Web(瓦片)地图的工作原理

    [译者按:在看MapBox Guides文档时,看到这篇How do web maps work?,这篇文档通俗易懂地阐述了Web地图是如何工作的,其实更偏向讲瓦片地图的工作原理,鉴于之前很多人不了解 ...

  6. ELK系列(十五)、Elasticsearch核心原理一篇全搞定

    目录 Lucene 介绍 核心术语 如何理解倒排索引? 检索方式 分段存储 段合并策略 Elasticsearch 核心概念 节点类型 集群状态 3C和脑裂 1.共识性(Consensus) 2.并发 ...

  7. AS3 RPG游戏引擎开发日志3:地图坐标转换

    在这里更改之前说的45度角坐标转换的问题,地图仍然不变,但地图坐标和游戏坐标的关系改变了,它的对应关系如下图: 其中虚线表示地图的边缘,区块中标的数是数组的索引,即地图坐标.地图的高度用大写的H表示, ...

  8. wms地图绘制工具_GeoServer地图开发解决方案(四):发布Web地图服务(WMS)篇

    GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过 GeoS ...

  9. 图解 Kafka,看本篇就足够啦

    Kafka 是主流的消息流系统,其中的概念还是比较多的,下面通过图示的方式来梳理一下 Kafka 的核心概念,以便在我们的头脑中有一个清晰的认识. 基础 Kafka 是一套流处理系统,可以让后端服务轻 ...

最新文章

  1. ●洛谷P3688 [ZJOI2017]树状数组
  2. 我常去的编程技术网站[最近更新:2010.09.29]
  3. 关于ping telnet
  4. android中各属性布局,Android里面各布局的属性定义
  5. ImageLazyLoad-图片随着滚动而进行加载
  6. 深度学习核心技术精讲100篇(五十七)- 自动驾驶车会看地图吗?它是如何认路、找准定位的?
  7. Java中设计模式之生产者消费者模式-3
  8. 值得一读的《框架设计(第2版):CLR Via C#》
  9. MySQL5.7 常用系统表大全
  10. php sql跳过前四条数据,mysql实现每组取前N条记录的sql,以及后续的组数据量限制...
  11. proxmoxve打造云桌面_微软云电脑Cloud PC曝光:配置一般还不便宜
  12. javascript 禁止复制网页
  13. iar怎么新建立项目_【IAR科研】2020年IAR国际学术科研项目——综合提升计划
  14. 【codevs1074】食物链
  15. UML--静态图(类图、对象图、包图)
  16. 28款数据恢复软件分类介绍
  17. (翻译):如何部署Contrail网关以及它是如何与Contrail协同工作的
  18. (保姆级)国内1块钱注册火爆全网的OpenAI-ChatGPT机器人
  19. flutter 自定义 Toast
  20. Cesium学习笔记(六)粒子系统

热门文章

  1. word圆圈中加入加号或者乘号
  2. git提交代码报 vue-cli-service lint found some errors. Please fix them and try committing again
  3. 【技术小说连载】新三国外传——桃园结义
  4. 玩转springcloud(一):什么是Springcloud ,有什么优缺点? 学习顺序是什么?
  5. 如何从零开始学计算机的英语单词,如何把英语从零开始
  6. 全世界都在劝退学Android的程序员
  7. 如何快速掌握在线抠图技巧,这篇文章不容错过
  8. 解决Python使用pip时提示:WARNING: Ignoring invalid distribution -ywin32等信息
  9. 用 Java 写了一个类QQ界面聊天小项目,可在线聊天!
  10. “黑客”常用的工具软件