Browse Source

Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	zc-business/src/main/java/com/zc/business/service/impl/DcTrafficStatisticsServiceImpl.java
develop
zhaoxianglong 5 months ago
parent
commit
be7e5ea928
  1. 2
      zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java
  2. 2
      zc-business/src/main/java/com/zc/business/service/IDcTrafficStatisticsService.java
  3. 46
      zc-business/src/main/java/com/zc/business/service/impl/DcTrafficStatisticsServiceImpl.java

2
zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java

@ -576,7 +576,7 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String
@GetMapping("/current/getTheCurrentCongestedSection") @GetMapping("/current/getTheCurrentCongestedSection")
public AjaxResult getTheCurrentCongestedSection() throws HttpException, IOException { public AjaxResult getTheCurrentCongestedSection() throws HttpException, IOException {
// 调用服务层方法,获取当前交通指标数据 // 调用服务层方法,获取当前交通指标数据
JSONObject jsonArray = dcTrafficStatisticsService.getTheCurrentCongestedSection(); JSONArray jsonArray = dcTrafficStatisticsService.getTheCurrentCongestedSection();
// 将获取到的交通指标数据封装为成功的结果并返回 // 将获取到的交通指标数据封装为成功的结果并返回
return AjaxResult.success(jsonArray); return AjaxResult.success(jsonArray);
} }

2
zc-business/src/main/java/com/zc/business/service/IDcTrafficStatisticsService.java

@ -56,6 +56,6 @@ public interface IDcTrafficStatisticsService {
Map<String,List<Map<String, Object>>> realTimeTrafficFlowHour() throws HttpException, IOException; Map<String,List<Map<String, Object>>> realTimeTrafficFlowHour() throws HttpException, IOException;
List<Map<String,Object>> queryTheGantryDataByPileNumber(String startDate,String stakeMark) throws HttpException, IOException; List<Map<String,Object>> queryTheGantryDataByPileNumber(String startDate,String stakeMark) throws HttpException, IOException;
JSONObject getTheCurrentCongestedSection()throws HttpException, IOException; JSONArray getTheCurrentCongestedSection()throws HttpException, IOException;
} }

46
zc-business/src/main/java/com/zc/business/service/impl/DcTrafficStatisticsServiceImpl.java

@ -907,7 +907,7 @@ public class DcTrafficStatisticsServiceImpl implements IDcTrafficStatisticsServi
* @throws IOException * @throws IOException
*/ */
@Override @Override
public JSONObject getTheCurrentCongestedSection() throws HttpException, IOException { public JSONArray getTheCurrentCongestedSection() throws HttpException, IOException {
OkHttp okHttp = new OkHttp(); OkHttp okHttp = new OkHttp();
RequestParams requestParams = new RequestParams(); RequestParams requestParams = new RequestParams();
@ -927,49 +927,51 @@ public class DcTrafficStatisticsServiceImpl implements IDcTrafficStatisticsServi
ResponseBody body = response.body(); ResponseBody body = response.body();
if (body != null) { if (body != null) {
JSONArray jsonArray = JSON.parseArray(body.string()); JSONArray jsonArray = JSON.parseArray(body.string());
JSONObject jsonObject = (JSONObject) jsonArray.get(UniversalEnum.ZERO.getNumber()); for (Object object : jsonArray) {
JSONObject jsonObject = (JSONObject) object;
Integer asOneRoad = jsonObject.getInteger("as_one_road"); Integer asOneRoad = jsonObject.getInteger("as_one_road");
//as_one_road
if (asOneRoad == UniversalEnum.ONE.getNumber()){ //是否为同一条路,1-是,0-否
if (asOneRoad == UniversalEnum.ZERO.getNumber()){
String string = jsonObject.getString("list_link_info"); String string = jsonObject.getString("list_link_info");
JSONArray jsonlist = JSON.parseArray(string); JSONArray jsonlist = JSON.parseArray(string);
JSONObject o = (JSONObject) jsonlist.get(UniversalEnum.ZERO.getNumber()); JSONObject o = (JSONObject) jsonlist.get(0);
String string1 = o.getString("firstPoint"); String string1 = o.getString("firstPoint");
String string2 = o.getString("lastPoint"); String string2 = o.getString("lastPoint");
String lngLats = o.getString("lngLats"); String lngLats = o.getString("lngLats");
String[] lngLatsString = lngLats.split(UniversalEnum.COLON.getValue()); String[] lngLatsString = lngLats.split(";");
double s = Double.parseDouble(lngLatsString[UniversalEnum.ZERO.getNumber()].split(UniversalEnum.COMMA.getValue())[UniversalEnum.ZERO.getNumber()]); double s = Double.parseDouble(lngLatsString[0].split(",")[0]);
double s2 = Double.parseDouble(lngLatsString[UniversalEnum.ZERO.getNumber()].split(UniversalEnum.COMMA.getValue())[UniversalEnum.ONE.getNumber()]); double s2 = Double.parseDouble(lngLatsString[0].split(",")[1]);
double s3 = Double.parseDouble(lngLatsString[lngLatsString.length-UniversalEnum.ONE.getNumber()].split(UniversalEnum.COMMA.getValue())[UniversalEnum.ZERO.getNumber()]); double s3 = Double.parseDouble(lngLatsString[lngLatsString.length-1].split(",")[0]);
double s4 = Double.parseDouble(lngLatsString[lngLatsString.length-UniversalEnum.ONE.getNumber()].split(UniversalEnum.COMMA.getValue())[UniversalEnum.ONE.getNumber()]); double s4 = Double.parseDouble(lngLatsString[lngLatsString.length-1].split(",")[1]);
double distanceM = calculateDistance(s2, s, s4, s3)* UniversalEnum.THOUSAND.getNumber(); double distanceM = calculateDistance(s2, s, s4, s3)* 1000;
// System.out.printf("最大距离为: %.2f 米%n", distanceM); // System.out.printf("最大距离为: %.2f 米%n", distanceM);
jsonObject.put("max_jam_dist",distanceM);//最大拥堵距离 jsonObject.put("max_jam_dist",distanceM);//最大拥堵距离
String[] split = string1.split(UniversalEnum.COMMA.getValue()); String[] split = string1.split(",");
double firstLon = Double.parseDouble(split[UniversalEnum.ZERO.getNumber()]); double firstLon = Double.parseDouble(split[0]);
double firstLat = Double.parseDouble(split[UniversalEnum.ONE.getNumber()]); double firstLat = Double.parseDouble(split[1]);
String[] split2 = string2.split(UniversalEnum.COMMA.getValue()); String[] split2 = string2.split(",");
double lastLon = Double.parseDouble(split2[UniversalEnum.ZERO.getNumber()]); double lastLon = Double.parseDouble(split2[0]);
double lastLat = Double.parseDouble(split2[UniversalEnum.ONE.getNumber()]); double lastLat = Double.parseDouble(split2[1]);
//double firstLat = 35.38524527319016; //double firstLat = 35.38524527319016;
// double firstLon = 118.39808642864227; // double firstLon = 118.39808642864227;
//double lastLat = 35.386351346969604; //double lastLat = 35.386351346969604;
// double lastLon = 118.4038907289505; // double lastLon = 118.4038907289505;
double distanceKm = calculateDistance(firstLat, firstLon, lastLat, lastLon); double distanceKm = calculateDistance(firstLat, firstLon, lastLat, lastLon);
double distanceMeters = distanceKm * UniversalEnum.THOUSAND.getNumber(); // 将距离转换为米 double distanceMeters = distanceKm * 1000; // 将距离转换为米
//System.out.printf("两点之间的距离为: %.2f 米%n", distanceMeters); //System.out.printf("两点之间的距离为: %.2f 米%n", distanceMeters);
jsonObject.put("jam_dist",distanceMeters);//当前拥堵距离 jsonObject.put("jam_dist",distanceMeters);//当前拥堵距离
return jsonObject; }
}else {
} }
return jsonArray;
} }
return new JSONObject(); return new JSONArray();
} }
@ -1019,6 +1021,8 @@ public class DcTrafficStatisticsServiceImpl implements IDcTrafficStatisticsServi
// 计算两点间的距离 // 计算两点间的距离
double distance = EARTH_RADIUS * c; double distance = EARTH_RADIUS * c;
// 保留两位小数,四舍五入
distance= Double.parseDouble(String.format("%.5f", distance));
return distance; return distance;
} }

Loading…
Cancel
Save