GPS经纬度坐标的转换
来源:互联网 发布:hibernate注解写sql 编辑:程序博客网 时间:2024/04/29 19:43
wgs84:国家默认标准坐标
/gcj02:火星坐标
/bd09:百度坐标
转换方法:
<strong><span style="color:#ff6666;">Gps实体</span></strong>
public class Gps {public double wgLat;public double wgLon;public Gps(double wgLat, double wgLon) {setWgLat(wgLat);setWgLon(wgLon);}public double getWgLat() {return wgLat;}public void setWgLat(double wgLat) {this.wgLat = wgLat;}public double getWgLon() {return wgLon;}public void setWgLon(double wgLon) {this.wgLon = wgLon;}@Overridepublic String toString() {return wgLat + "," + wgLon;}}
<strong><span style="color:#ff6666;">经纬度转换</span></strong>
public class PositionUtil {//转换火星坐标密钥public double pi = 3.1415926535897932384626;public double a = 6378245.0;public double ee = 0.00669342162296594323;/** * 84 to 火星坐标系 (GCJ-02) World Geodetic System ==> Mars Geodetic System * * @param lat * @param lon * @return */public Gps gps84_To_Gcj02(double lat, double lon) {if (outOfChina(lat, lon)) {return null;}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 Gps(mgLat, mgLon);}public 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;}public 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;}public 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;}}
0 0
- GPS经纬度坐标的转换
- GPS经纬度转换屏幕坐标
- GPS 经纬度转换为 经过旋转后的平面坐标
- GPS坐标(经纬度)转换为百度坐标(经纬度)的JAVA方法
- GPS坐标(经纬度)转换为百度坐标(经纬度)续
- GPS经纬度转换为百度坐标
- GPS坐标转换经纬度及换算方法
- GPS坐标转换经纬度及换算方法
- GPS坐标转换经纬度及换算方法
- GPS坐标转换经纬度及换算方法
- GPS经纬度及谷歌地图坐标转换为百度地图坐标,解决地图显示经纬度的偏移问题
- 将GPS坐标转换成百度地图坐标,将baidu 经纬度 转换为google经纬度
- 经纬度坐标转换的方法
- 经纬度坐标和投影坐标的转换
- 经纬度坐标和投影坐标的转换
- 关于GPS定位经纬度到谷歌(google)坐标以及百度(百度)坐标的转换c#源码
- GPS设备定位的经纬度偏移转换
- 度分 格式 转换 GPS 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示
- MySQL_Windows下搭建MySQL Master Slave
- 第7周 C语言程序设计(新2版) 练习1-23 删除C语言程序中所有的注释语句(代码有问题?)
- iOS 中 使用 sqlite3 创建数据库
- 从头开始部署Ubuntu虚拟机环境
- OAuth 安全指南
- GPS经纬度坐标的转换
- 判断 程序是否联网,提示联网的Demo
- Web UI组件化最佳实践的思考
- Oracle 使用基础(命令笔记)
- 分段控件----UISegmentedControl
- Android 接收服务器指令执行相应操作
- 大中型项目技术架构
- 哈希(不刷新页面,展示不同模板)
- 商务英语写作