官网这么说的
4.3 百度坐标为何有偏移?
国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。
百度地图API中,有GPS坐标转百度坐标的功能
http://developer.baidu.com/map/wiki/index.php?title=androidsdk/guide/tool
这个转换算法百度是不会公开的,而且百度也没有提供百度坐标转成GPS坐标功能,这里我用了取巧的办法。
百度坐标和GPS坐标转换在很近的距离时偏差非常接近。
假设你有百度坐标:x1=116.397428,y1=39.90923
把这个坐标当成GPS坐标,通过接口获得他的百度坐标:x2=116.41004950566,y2=39.916979519873
通过计算就可以得到GPS的坐标:
x = 2*x1-x2,y = 2*y1-y2
x=116.38480649434001
y=39.901480480127
http://developer.baidu.com/map/wiki/index.php?title=androidsdk/guide/tool
这个转换算法百度是不会公开的,而且百度也没有提供百度坐标转成GPS坐标功能,这里我用了取巧的办法。
百度坐标和GPS坐标转换在很近的距离时偏差非常接近。
假设你有百度坐标:x1=116.397428,y1=39.90923
把这个坐标当成GPS坐标,通过接口获得他的百度坐标:x2=116.41004950566,y2=39.916979519873
通过计算就可以得到GPS的坐标:
x = 2*x1-x2,y = 2*y1-y2
x=116.38480649434001
y=39.901480480127
convertBaiduToGPS befour:(30.464729,114.577475)
convertBaiduToGPS after:(30.461196,114.565995)
转换方法如下:
public static LatLng convertGPSToBaidu(LatLng sourceLatLng) {
// 将GPS设备采集的原始GPS坐标转换成百度坐标
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordType.GPS);
// sourceLatLng待转换坐标
converter.coord(sourceLatLng);
LatLng desLatLng = converter.convert();
return desLatLng;
}
public static 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());
}
相关推荐
通过第三方接口形式,把百度坐标转换为GPS坐标,里面有一个批量转换的html例子
百度坐标转换成GPS坐标,离线转换,不需要通过百度地图,精度可达到米级。同时也提供GPS坐标换成百度坐标。代码简单,自己可转成其他编程语言。
Gps坐标转换百度坐标
GPS坐标转换为百度地图坐标(JS),包括在线和离线算法2种方式,在线调用百度api进行坐标转换,离线使用算法进行坐标转换
使用c#编写的GPS坐标转换百度地图坐标,稍作修改可以批量转换
Gps坐标系转换Java工具类WGS坐标与Google和百度坐标互转,偏差很小,与百度Api调用转换几乎相差无几,程序为Java程序,工具类直接传经纬度调用相应转换方法即可获取转换后的返回值
GPS坐标系转换成百度坐标系 经过验证很准确 希望能给你有所帮助。
通过GPS坐标的经纬度,经计算返回一组百度坐标数据,简单方便
GPS坐标转换成百度坐标的方法
gps坐标转换,实现坐标转换,提供不同椭球
百度地图位置偏差转换js,以及改写后批量转换js,可自定义一次请求坐标数量
WGS-84坐标和北京54坐标是不同两个椭球的坐标转换,所以要求得三参数或七参数,而北京54和佛山坐标都是同一个椭球,所以他们之间的转换是地方坐标转换,需要求得地方转化四参数,因为要求得到的北京54是平面坐标所以...
gps坐标多接口转换成百度坐标,每次可以同时转换20条记录数据。快捷方面,利于大数据的转换。
GPS坐标转换为百度地图坐标(JS),包括在线和离线算法2种方式,在线调用百度api进行坐标转换,离线使用算法进行坐标转换
百度地图API前台js脚本实现的GPS转百度坐标只适用于转换,转换后因为是移步调用转换,所以无法实时获取进行画线等操作,只能从后台入手进行转换,再前台直接调用,因为暂时没有找到GPS直接转百度坐标的算法,只能先...
用于手机等通过gps定位的经纬度转换为百度坐标展示点,支持批量修改和单点修改
SuperMap7百度插件转百度坐标及gps数据转换成supermap平面坐标
/** * 各地图API坐标系统比较与转换; * WGS84坐标系:即地球坐标系,国际上... BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系; * 搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的。 */
软件界面使用为百度API的坐标转换, 内部代码包含 GPS设备/谷歌地球坐标(WGS84)、谷歌中国/腾讯/高德地图坐标(GCJ02)、百度坐标(BD09) 的坐标互转的本地算法 内含示例 本地算法都会有一定的偏差 此本地算法实测WGS84...
百度地图显示的坐标是自己的坐标系统,是经过加密后的百度坐标(位置隐私安全)。如果其他的坐标要到百度地图上显示就必须把该坐标转换成百度地图坐标。具体转换的代码如下链接