【地图转换工具类】:GCJ02与WGS84标准转换
public class GCJ02_WGS84 {public static double pi = 3.1415926535897932384626;public static double a = 6378245.0;public static double ee = 0.00669342162296594323;public static LocateInfo wgs84_To_Gcj02(double lat, double lon) {LocateInfo info = new LocateInfo();if (outOfChina(lat, lon)) {info.setChina(false);info.setLatitude(lat);info.setLongitude(lon);}else {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;info.setChina(true);info.setLatitude(mgLat);info.setLongitude(mgLon);}return info;}public static LocateInfo gcj02_To_Wgs84(double lat, double lon) {LocateInfo info = new LocateInfo();LocateInfo gps = transform(lat, lon);double lontitude = lon * 2 - gps.getLongitude();double latitude = lat * 2 - gps.getLatitude();info.setChina(gps.isChina());info.setLatitude(latitude);info.setLongitude(lontitude);return info;}private static boolean outOfChina(double lat, double lon) {if (lon < 72.004 || lon > 137.8347)return true;if (lat < 0.8293 || lat > 55.8271)return true;return false;}private static double transformLat(double x, double y) {double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y+ 0.2 * Math.sqrt(Math.abs(x));ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;return ret;}private static double transformLon(double x, double y) {double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1* Math.sqrt(Math.abs(x));ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0;return ret;}private static LocateInfo transform(double lat, double lon) {LocateInfo info = new LocateInfo();if (outOfChina(lat, lon)) {info.setChina(false);info.setLatitude(lat);info.setLongitude(lon);return info;}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;info.setChina(true);info.setLatitude(mgLat);info.setLongitude(mgLon);return info;}
}
/*** Created by wangmh on 2018/2/7.* 定位的几个基本信息*/public class LocateInfo {private double longitude;private double Latitude;private boolean isChina;public LocateInfo() {}public LocateInfo(double longitude, double latitude) {this.longitude = longitude;Latitude = latitude;}public double getLongitude() {return longitude;}public void setLongitude(double longitude) {this.longitude = longitude;}public double getLatitude() {return Latitude;}public void setLatitude(double latitude) {Latitude = latitude;}public boolean isChina() {return isChina;}public void setChina(boolean china) {isChina = china;}
}

【地图转换工具类】:GCJ02与WGS84标准转换相关推荐

  1. 微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人

    微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人. 该工具类主要是对dozer进行了封装,使用过程代码量极少,废话少说,贴代码了 import j ...

  2. 微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人...

    微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人. 该工具类主要是对dozer进行了封装,使用过程代码量极少,废话少说,贴代码了 import j ...

  3. android 字体像素转换工具类_Android开发之拼音转换工具类PinyinUtils示例

    本文实例讲述了Android开发之拼音转换工具类PinyinUtils.分享给大家供大家参考,具体如下: 1.首先下载pinyin4j-2.5.0.jar,拷贝到工程的lib目录里 或者点击此处本站下 ...

  4. 【地图转换工具类】:GCJ02与BD09标准转换

    [地图转换工具类]:GCJ02与BD09标准转换 public class GCJ02_BD09 {public static double pi = 3.141592653589793 * 3000 ...

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

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

  6. IEEE754标准以及非常规划定义,double的二进制转换工具类

    IEEE754标准 ​ 今天我们要讨论的问题是在Java中:double pi = 3.14; 在内存中第10位上是0还是1? ​ 这个问题需要我们了解Java中double类型在内存中是如何存储的. ...

  7. java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...

  8. PDF转换工具类(byte[]转PDF并生成文件)

    PDF转换工具类(byte[]转PDF并生成文件) 对html转为标准的xhtml public byte[] transferHtml2XHtml(byte[] html){Tidy tidy = ...

  9. android 字体像素转换工具类_Android中px与dip,sp与dip等的转换工具类

    Android中px与dip,sp与dip等的转换工具类 功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方 ...

最新文章

  1. 详解:开通IIS的FTP服务器并添加多个FTP用户
  2. 2011软考软件设计师:C语言代码规范问题(1
  3. HDU2106 decimal system
  4. S/4HANA Product master OData
  5. mysql 5.764_RHEL5.764位源码编译安装MySQL-5.5.42遇到的问题
  6. 因此,您处于if / else地狱中-这是摆脱困境的方法
  7. 连接远程Windows主机中的虚拟机
  8. 用vscode创建一个c项目_Visual Studio Code创建C#项目
  9. 单片机ADC采样算法----加权递推平均滤波法
  10. 服务器磁盘性能表现在,09计算机等级考试试题.doc
  11. copy 和 deepcopy的区别
  12. h3c交换机查看电源和风扇模块序列号
  13. Linux查看增量文件,Linux 利用 rsync 命令提取增量文件
  14. RADIUS协议解析
  15. 全裸或半裸的大肚照国际接轨 细数女星大尺度斗艳孕照
  16. 怎么取消微信送票服务器,智行火车票如何关闭微信自动扣费服务 微信怎么关闭智行火车票自动扣费授权...
  17. 找出bilibili隐藏在后方的视频并突破访问限制实现爬取
  18. Oracle中的commit与rollback
  19. java开发报错怎么处理_Java开发中常见报错及解决办法
  20. 组合之分苹果问题(22)

热门文章

  1. 通达oa精灵的下载步骤_通达OA高危漏洞可能感染勒索病毒的风险提示
  2. 5个设计师都在用的在线网页设计编辑器!
  3. Swoole的基本使用
  4. 常用的python库
  5. 三菱FX PLC 数据采集 【MD8口】
  6. 微信小程序入门到实战(三)
  7. week06手写笔记
  8. 创业第22天,竞价助手嵌入jfreechart报表引擎
  9. navigation导航中导航栏的设置
  10. 一周用python完成2048小游戏