坐标转换优化
This commit is contained in:
parent
cdb1bbfd12
commit
475473a109
|
|
@ -91,9 +91,11 @@ public class TbTowerServiceImpl implements TbTowerService {
|
||||||
data.setBaiduLat(String.valueOf(bd09[0]));
|
data.setBaiduLat(String.valueOf(bd09[0]));
|
||||||
data.setBaiduLon(String.valueOf(bd09[1]));
|
data.setBaiduLon(String.valueOf(bd09[1]));
|
||||||
}else {
|
}else {
|
||||||
double[] bd09 =CoordinateTransform.cgcs2000ToBd09(Double.parseDouble(data.getLat()),Double.parseDouble(data.getLon()),Double.parseDouble(data.getCentralMeridian()));
|
/*double[] bd09 =CoordinateTransform.cgcs2000ToBd09(Double.parseDouble(data.getLat()),Double.parseDouble(data.getLon()),Double.parseDouble(data.getCentralMeridian()));
|
||||||
data.setBaiduLon(String.valueOf(bd09[0]));
|
data.setBaiduLon(String.valueOf(bd09[0]));
|
||||||
data.setBaiduLat(String.valueOf(bd09[1]));
|
data.setBaiduLat(String.valueOf(bd09[1]));*/
|
||||||
|
data.setBaiduLon(String.valueOf(CoordinateTransform.dmsToDecimal(data.getLon())));
|
||||||
|
data.setBaiduLat(String.valueOf(CoordinateTransform.dmsToDecimal(data.getLat())));
|
||||||
data.setCentralMeridian(String.valueOf(data.getCentralMeridian()));
|
data.setCentralMeridian(String.valueOf(data.getCentralMeridian()));
|
||||||
}
|
}
|
||||||
Long userId = UserUtil.getLoginUser().getId();
|
Long userId = UserUtil.getLoginUser().getId();
|
||||||
|
|
@ -147,9 +149,11 @@ public class TbTowerServiceImpl implements TbTowerService {
|
||||||
data.setBaiduLat(String.valueOf(bd09[0]));
|
data.setBaiduLat(String.valueOf(bd09[0]));
|
||||||
data.setBaiduLon(String.valueOf(bd09[1]));
|
data.setBaiduLon(String.valueOf(bd09[1]));
|
||||||
}else {
|
}else {
|
||||||
double[] bd09 =CoordinateTransform.cgcs2000ToBd09(Double.parseDouble(data.getLat()),Double.parseDouble(data.getLon()),Double.parseDouble(data.getCentralMeridian()));
|
/* double[] bd09 =CoordinateTransform.cgcs2000ToBd09(Double.parseDouble(data.getLat()),Double.parseDouble(data.getLon()),Double.parseDouble(data.getCentralMeridian()));
|
||||||
data.setBaiduLon(String.valueOf(bd09[0]));
|
data.setBaiduLon(String.valueOf(bd09[0]));
|
||||||
data.setBaiduLat(String.valueOf(bd09[1]));
|
data.setBaiduLat(String.valueOf(bd09[1]));*/
|
||||||
|
data.setBaiduLon(String.valueOf(CoordinateTransform.dmsToDecimal(data.getLon())));
|
||||||
|
data.setBaiduLat(String.valueOf(CoordinateTransform.dmsToDecimal(data.getLat())));
|
||||||
data.setCentralMeridian(String.valueOf(data.getCentralMeridian()));
|
data.setCentralMeridian(String.valueOf(data.getCentralMeridian()));
|
||||||
}
|
}
|
||||||
Long userId = UserUtil.getLoginUser().getId();
|
Long userId = UserUtil.getLoginUser().getId();
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,8 @@ public class CoordinateTransform {
|
||||||
// CGCS2000转WGS84(通常可以忽略)
|
// CGCS2000转WGS84(通常可以忽略)
|
||||||
double[] wgs84 = cgcs2000ToWgs84(latLng[0], latLng[1]);
|
double[] wgs84 = cgcs2000ToWgs84(latLng[0], latLng[1]);
|
||||||
|
|
||||||
|
System.out.println(wgs84[0]+"======="+wgs84[1]);
|
||||||
|
|
||||||
// WGS84转GCJ02
|
// WGS84转GCJ02
|
||||||
double[] gcj02 = wgs84ToGcj02(wgs84[0], wgs84[1]);
|
double[] gcj02 = wgs84ToGcj02(wgs84[0], wgs84[1]);
|
||||||
|
|
||||||
|
|
@ -173,11 +175,18 @@ public class CoordinateTransform {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
double x = 3730067.601;
|
double x = 3730067.601;
|
||||||
double y = 396052.578;
|
double y = 396052.578;
|
||||||
|
|
||||||
// 转换为百度坐标系
|
// 转换为百度坐标系
|
||||||
double[] bd09 = cgcs2000ToBd09(x, y,108);
|
double[] bd09 = cgcs2000ToBd09(x, y,108);
|
||||||
|
|
||||||
System.out.println("百度坐标系(BD09)经度: " + bd09[0]);
|
System.out.println("百度坐标系(BD09)经度: " + bd09[0]);
|
||||||
System.out.println("百度坐标系(BD09)纬度: " + bd09[1]);
|
System.out.println("百度坐标系(BD09)纬度: " + bd09[1]);
|
||||||
}
|
}
|
||||||
|
// 度分秒转十进制
|
||||||
|
public static double dmsToDecimal(String dms) {
|
||||||
|
//String x = "33°41′31.36929″";
|
||||||
|
String[] list = dms.split("[°'\"′″]");
|
||||||
|
return Double.valueOf(list[0]) + Double.valueOf(list[1])/60 + Double.valueOf(list[2])/3600;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue