android WGS84 和 BD09LL 互转和最初的值不一致是什么原因?
以下是我的代码和输出结果:
```java
//测试按钮按下了:
public void testBtnDn(View view){
//定义GPS坐标
double wgs_lat=22.404995;
double wgs_lng=113.587560;
setOutText("给定的GPS坐标:"+wgs_lat+", "+wgs_lng+"\n", false); //打印数据
//把GPS坐标转换成 BD09坐标系
double[] bd09;
bd09=tc.mmc.wgs84_bd09ll(wgs_lat, wgs_lng); //转换
setOutText("转换成百度坐标= "+bd09[1]+", "+bd09[2]+"\n", true); //输出结果
//再把已转换成的百度坐标转换回GPS坐标
double[] wgs_2;
wgs_2=tc.mmc.bd09ll_wgs84(bd09[1], bd09[2]); //转换回GPS
setOutText("转换回GPS坐标= "+wgs_2[1]+", "+wgs_2[2]+"\n", true); //输出结果
}
//坐标转换,将BD09LL坐标转换成GPS坐标(WGS84坐标)
public double[] bd09ll_wgs84(double lat, double lng){
LatLng sourceLatLng = new LatLng(lat, lng);
CoordinateConverter converter = new CoordinateConverter()
.from(CoordinateConverter.CoordType.BD09LL)
.coord(sourceLatLng);
LatLng destLatLng = converter.convert();
double[] result = new double[3];
result[1] = destLatLng.latitude; // WGS84 纬度
result[2] = destLatLng.longitude; // WGS84 经度
return result;
}
//GPS坐标转换BD09LL
public double[] wgs84_bd09ll(double lat, double lng){
double[] result = new double [3]; //装转换坐标的数组
LatLng sll = new LatLng(lat, lng);
CoordinateConverter converter = new CoordinateConverter().from(CoordinateConverter.CoordType.GPS).coord(sll);
LatLng desLatLng = converter.convert(); //desLatLng 转换后的坐标
result[1]=desLatLng.latitude;
result[2]=desLatLng.longitude;
return result;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/105f87a31b354490afd22bc1ce5d02ff.jpeg "#left")