From 475473a109dddaafa825726263071fd7840e0439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E4=B8=89=E7=82=AE?= <15856818120@163.com> Date: Mon, 14 Jul 2025 10:37:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9D=90=E6=A0=87=E8=BD=AC=E6=8D=A2=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/service/impl/TbTowerServiceImpl.java | 12 ++++++++---- .../digitalSignage/utils/CoordinateTransform.java | 11 ++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbTowerServiceImpl.java b/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbTowerServiceImpl.java index b94fa17..7b3348c 100644 --- a/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbTowerServiceImpl.java +++ b/src/main/java/com/bonus/digitalSignage/basic/service/impl/TbTowerServiceImpl.java @@ -91,9 +91,11 @@ public class TbTowerServiceImpl implements TbTowerService { data.setBaiduLat(String.valueOf(bd09[0])); data.setBaiduLon(String.valueOf(bd09[1])); }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.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())); } Long userId = UserUtil.getLoginUser().getId(); @@ -147,9 +149,11 @@ public class TbTowerServiceImpl implements TbTowerService { data.setBaiduLat(String.valueOf(bd09[0])); data.setBaiduLon(String.valueOf(bd09[1])); }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.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())); } Long userId = UserUtil.getLoginUser().getId(); diff --git a/src/main/java/com/bonus/digitalSignage/utils/CoordinateTransform.java b/src/main/java/com/bonus/digitalSignage/utils/CoordinateTransform.java index f8b12e4..a8bfccf 100644 --- a/src/main/java/com/bonus/digitalSignage/utils/CoordinateTransform.java +++ b/src/main/java/com/bonus/digitalSignage/utils/CoordinateTransform.java @@ -94,6 +94,8 @@ public class CoordinateTransform { // CGCS2000转WGS84(通常可以忽略) double[] wgs84 = cgcs2000ToWgs84(latLng[0], latLng[1]); + System.out.println(wgs84[0]+"======="+wgs84[1]); + // WGS84转GCJ02 double[] gcj02 = wgs84ToGcj02(wgs84[0], wgs84[1]); @@ -173,11 +175,18 @@ public class CoordinateTransform { public static void main(String[] args) { double x = 3730067.601; double y = 396052.578; - // 转换为百度坐标系 double[] bd09 = cgcs2000ToBd09(x, y,108); System.out.println("百度坐标系(BD09)经度: " + bd09[0]); 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; + } + + }