百度坐标(bd0911)互转火星坐标(gcj02)和国测局坐标(GPS)
来源:互联网 发布:sys types.h windows 编辑:程序博客网 时间:2024/06/11 09:00
这两天一直在弄百度坐标转换,刚把百度(bd0911)坐标转换成火星坐标(gcj02),把百度坐标改成GPS的,难度最主要的还是百度坐标转火星坐标,要调整的是x和y值double x = bd_lon - 0.0126, y = bd_lat - 0.0080;
/**
* 火星转百度*
* @param bd_lat
* @param bd_lon
*/
public void bd_encrypt(double gg_lat, double gg_lon) {
double x = gg_lon, y = gg_lat;
double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * PI);
double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * PI);
double bd_lon = z * Math.cos(theta) + 0.0128;
double bd_lat = z * Math.sin(theta) + 0.0075;
LatLng lalng = new LatLng(bd_lat, bd_lon);
latlonList.add(lalng);
}
/**
* 百度转火星
*
* @param bd_lat
* @param bd_lon
*/
public void bd_decrypt(double bd_lat, double bd_lon) {
double x = bd_lon - 0.0126, y = bd_lat - 0.0080;
double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * PI);
double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * PI);
System.out.println("经度x=" + x + "--纬度y=" + y + "--转换后的z=" + z
+ "--得出的theta=" + theta);
double gcj02_lat = z * Math.sin(theta);
double gcj02_lon = z * Math.cos(theta);
LatLng lalng = new LatLng(gcj02_lat, gcj02_lon);
gcj02List.add(lalng);
Log.d("百度坐标-->火星坐标", "经纬度:" + lalng);
}
申明:http://xwangly.iteye.com/blog/2100982
/**
* GPS To baidu GPS转百度
*
* @param sourceLatLng
* @return
*/
public LatLng convertGPSToBaidu(LatLng sourceLatLng) {
// 将GPS设备采集的原始GPS坐标转换成百度坐标
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordType.GPS);
// sourceLatLng待转换坐标
converter.coord(sourceLatLng);
LatLng desLatLng = converter.convert();
return desLatLng;
}
/**
* Baidu to GPS 百度转GPS
*
* @param sourceLatLng
* @return
*/
public LatLng convertBaiduToGPS(LatLng sourceLatLng) {
// 将GPS设备采集的原始GPS坐标转换成百度坐标
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordType.GPS);
// sourceLatLng待转换坐标
converter.coord(sourceLatLng);
LatLng desLatLng = converter.convert();
double latitude = 2 * sourceLatLng.latitude - desLatLng.latitude;
double longitude = 2 * sourceLatLng.longitude - desLatLng.longitude;
BigDecimal bdLatitude = new BigDecimal(latitude);
bdLatitude = bdLatitude.setScale(6, BigDecimal.ROUND_HALF_UP);
BigDecimal bdLongitude = new BigDecimal(longitude);
bdLongitude = bdLongitude.setScale(6, BigDecimal.ROUND_HALF_UP);
return new LatLng(bdLatitude.doubleValue(), bdLongitude.doubleValue());
}
- 百度坐标(bd0911)互转火星坐标(gcj02)和国测局坐标(GPS)
- 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系互转
- GPS坐标转换成百度坐标和火星坐标
- JSP 火星坐标及GPS坐标 转百度坐标
- JSP 火星坐标及GPS坐标 转百度坐标
- gps坐标转火星坐标
- 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换(JS版代码)
- 百度坐标转火星坐标
- 火星坐标转百度坐标
- 火星坐标转百度坐标
- iOS地球坐标,火星坐标,百度坐标互转
- iOS地球坐标,火星坐标,百度坐标互转
- iOS地球坐标,火星坐标,百度坐标互转
- iOS地球坐标,火星坐标,百度坐标互转
- java版坐标系转换(火星坐标、GPS坐标、百度坐标)
- 一个提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换的工具模块。
- [JS] 百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换(JS版代码)
- 百度坐标(经纬度坐标,米制坐标)与wgs84,火星坐标的互转
- js省市联动,多版本,总有你喜欢的
- iOS分享【OC】—— UITableView 的 cell 自适应
- Java反射初步学习
- html5的页面缓存和本地数据存储支持
- VXLAN技术研究
- 百度坐标(bd0911)互转火星坐标(gcj02)和国测局坐标(GPS)
- arduino教程【实战篇】
- 使用GPUImage渲染图片教程
- CQRS(Command Query Responsibility Segration)
- AT&T ASM
- Objective-C Runtime 运行时之二:成员变量与属性
- js 基础知识
- 问题人生[20160112] the App Transport Security policy requires the use of a secure connection
- 常用正则表达式