修改配置

master
游胜振 1 year ago
parent 1c02d5f852
commit e6c6358ea9
  1. 22
      hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java
  2. 29
      hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/CoordinateConverter.java
  3. 2
      hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerRoad.java

@ -351,20 +351,26 @@ public class HighDangerController {
if(roadInfo.getCoordinate() == null){ if(roadInfo.getCoordinate() == null){
return ServerResponse.ok("无对应路口信息",null); return ServerResponse.ok("无对应路口信息",null);
} }
LinkedList<Map<String, Float>> coordinateMapTemporary = new LinkedList<>(); LinkedList<Map<String, Double>> coordinateMapTemporary = new LinkedList<>();
String[] split = roadInfo.getCoordinate().split(","); String[] split = roadInfo.getCoordinate().split(",");
for(int i = 0; i < split.length; i+=2){ for(int i = 0; i < split.length; i+=2){
CoordinateConverter coordinateConverter = new CoordinateConverter(); //CoordinateConverter coordinateConverter = new CoordinateConverter();
Map<String,Float> pointMap = new LinkedHashMap<>(); Map<String,Double> pointMap = new LinkedHashMap<>();
float x = Float.parseFloat(split[i]); float lon = Float.parseFloat(split[i]);
float y = Float.parseFloat(split[i + 1]); 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()); CoordinateConverter.AMap aMap = CoordinateConverter.transform(lon, lat);
pointMap.put("latitude", transform.getLatitude()); // 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); coordinateMapTemporary.add(pointMap);
} }
roadInfo.setCoordinateList(coordinateMapTemporary); roadInfo.setCoordinateList(coordinateMapTemporary);

@ -24,7 +24,7 @@ public class CoordinateConverter {
*/ */
public static AMap transform(double wgLon, double wgLat) { public static AMap transform(double wgLon, double wgLat) {
if (outOfChina(wgLat, wgLon)) { 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); 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); dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
double transLat = wgLat + dLat; double transLat = wgLat + dLat;
double transLon = wgLon + dLon; 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.longitude = longitude;
this.latitude = latitude; this.latitude = latitude;
} }
public float getLongitude() { public double getLongitude() {
return longitude; return longitude;
} }
public float getLatitude() { public double getLatitude() {
return latitude; 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
* 高德APIhttps://lbs.amap.com/api/webservice/guide/api/convert)经纬度转换之后.
* 两者误差不是很大
*/
}
} }

@ -79,7 +79,7 @@ public class HighDangerRoad implements Serializable {
@JsonIgnore @JsonIgnore
private String coordinate; private String coordinate;
private List<Map<String,Float>> coordinateList; private List<Map<String,Double>> coordinateList;
// 地址类型 // 地址类型
// private String coordinateType; // private String coordinateType;

Loading…
Cancel
Save