diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java index d55c071..d105c5d 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java @@ -351,20 +351,26 @@ public class HighDangerController { if(roadInfo.getCoordinate() == null){ return ServerResponse.ok("无对应路口信息",null); } - LinkedList> coordinateMapTemporary = new LinkedList<>(); + LinkedList> coordinateMapTemporary = new LinkedList<>(); String[] split = roadInfo.getCoordinate().split(","); for(int i = 0; i < split.length; i+=2){ - CoordinateConverter coordinateConverter = new CoordinateConverter(); - Map pointMap = new LinkedHashMap<>(); + //CoordinateConverter coordinateConverter = new CoordinateConverter(); + Map pointMap = new LinkedHashMap<>(); - float x = Float.parseFloat(split[i]); - float y = Float.parseFloat(split[i + 1]); + float lon = Float.parseFloat(split[i]); + float lat = Float.parseFloat(split[i + 1]); - CoordinateConverter.AMap transform = highDangerService.transform(x, y); + //CoordinateConverter.AMap transform = highDangerService.transform(x, y); - pointMap.put("longitude", transform.getLongitude()); - pointMap.put("latitude", transform.getLatitude()); + CoordinateConverter.AMap aMap = CoordinateConverter.transform(lon, lat); + // 108.766167,34.207948 + //System.out.println("GPS转高德之前:" + lon + "," + lat); + // 108.77088779593853,34.206482360676944 + //System.out.println("GPS转高德之后:" + aMap.getLongitude() + "," + aMap.getLatitude()); + + pointMap.put("longitude", aMap.getLongitude()); + pointMap.put("latitude", aMap.getLatitude()); coordinateMapTemporary.add(pointMap); } roadInfo.setCoordinateList(coordinateMapTemporary); diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/CoordinateConverter.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/CoordinateConverter.java index 7b1179b..b11490e 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/CoordinateConverter.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/CoordinateConverter.java @@ -24,7 +24,7 @@ public class CoordinateConverter { */ public static AMap transform(double wgLon, double wgLat) { if (outOfChina(wgLat, wgLon)) { - return new AMap((float) wgLon, (float) wgLat); + return new AMap(wgLon, wgLat); } double dLat = transformLat(wgLon - 105.0, wgLat - 35.0); @@ -37,7 +37,7 @@ public class CoordinateConverter { dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); double transLat = wgLat + dLat; double transLon = wgLon + dLon; - return new AMap((float) transLon, (float) transLat); + return new AMap(transLon, transLat); } /** @@ -92,24 +92,39 @@ public class CoordinateConverter { /** * 经度 */ - private float longitude; + private double longitude; /** * 维度 */ - private float latitude; + private double latitude; - public AMap(float longitude, float latitude) { + public AMap(double longitude, double latitude) { this.longitude = longitude; this.latitude = latitude; } - public float getLongitude() { + public double getLongitude() { return longitude; } - public float getLatitude() { + public double getLatitude() { return latitude; } } + + public static void main(String[] args) { + double lon = 120.420537; + double lat = 36.16946; + AMap aMap = transform(lon, lat); + // 108.766167,34.207948 + System.out.println("GPS转高德之前:" + lon + "," + lat); + // 108.77088779593853,34.206482360676944 + System.out.println("GPS转高德之后:" + aMap.getLongitude() + "," + aMap.getLatitude()); + /** + * 108.77090467665,34.206496310764 + * 高德API(https://lbs.amap.com/api/webservice/guide/api/convert)经纬度转换之后. + * 两者误差不是很大 + */ + } } \ No newline at end of file diff --git a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerRoad.java b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerRoad.java index bf1f554..7904c3f 100644 --- a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerRoad.java +++ b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerRoad.java @@ -79,7 +79,7 @@ public class HighDangerRoad implements Serializable { @JsonIgnore private String coordinate; - private List> coordinateList; + private List> coordinateList; // 地址类型 // private String coordinateType;