Android开发中最近产品提出了一项需求,要求客户端上传地理位置给服务器,本来android已经集成了百度地图的sdk,但是iOS端集成的是高德地图sdk,因此需要在上传之后统一数据格式,所以就想到了将不同厂家提供的坐标系转换成标准gps坐标系。
简单解释下火星坐标系:大天朝为了保证我们领土隐私等,规定各大厂商弄出来的定位产品给出的坐标系都要经过加密偏移,于是就成了火星坐标系,所以拿百度坐标系放到谷歌地图上可以明显看到位置有很大偏差,具体科普在这里:http://yanue.net/post-121.html
这里还有一个纠偏接口:http://www.zdoz.net
/**
* 坐标转换程序
*
* WGS84坐标系:即地球坐标系,国际上通用的坐标系。Earth
*
* GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后的坐标系。Mars
*
* BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系。 Bd09
*
* 搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的。
*
* 百度地图API 百度坐标 腾讯搜搜地图API 火星坐标 搜狐搜狗地图API 搜狗坐标* 阿里云地图API 火星坐标 图吧MapBar地图API 图吧坐标
* 高德MapABC地图API 火星坐标 灵图51ditu地图API 火星坐标
*
* @author fankun
*
*/
public class BDToGPS {
private static double PI = Math.PI;
private static double AXIS = 6378245.0