From 132e576dbe4a9771ba6728e55ba21b4918e718d6 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 23 六月 2023 13:13:15 +0800 Subject: [PATCH] 开发“根据X、Y值查询矩形框”接口 --- src/main/java/com/yssh/service/impl/SuYuanServiceImpl.java | 10 ++++++++++ src/main/java/com/yssh/service/ISuYuanService.java | 2 ++ src/main/java/com/yssh/utils/CalculateUtils.java | 27 ++++++++++++++++++++------- src/main/java/com/yssh/entity/Report.java | 1 - src/main/java/com/yssh/controller/SuYuanController.java | 9 +++++++++ 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/yssh/controller/SuYuanController.java b/src/main/java/com/yssh/controller/SuYuanController.java index d95bf0c..56a54d0 100644 --- a/src/main/java/com/yssh/controller/SuYuanController.java +++ b/src/main/java/com/yssh/controller/SuYuanController.java @@ -158,4 +158,13 @@ public Result selectVocByTime(@RequestParam(value = "x", required = false) Integer x, @RequestParam(value = "y", required = false) Integer y) { return Result.OK(vocValsService.selectCoords(x, y)); } + + @ApiOperation(value = "鏍规嵁X銆乊鍊兼煡璇㈢煩褰㈡", notes = "鏍规嵁X銆乊鍊兼煡璇㈢煩褰㈡") + @ApiOperationSupport(order = 13) + @GetMapping("/selectRects") + public Result selectRects(@RequestParam(value = "x[]") Double[] x, @RequestParam(value = "y[]") Double[] y) { + if (null == x || null == y || x.length == 0 || x.length != y.length) return Result.OK(null); + + return Result.OK(suYuanService.selectRects(x, y)); + } } diff --git a/src/main/java/com/yssh/entity/Report.java b/src/main/java/com/yssh/entity/Report.java index 5649bfa..6682227 100644 --- a/src/main/java/com/yssh/entity/Report.java +++ b/src/main/java/com/yssh/entity/Report.java @@ -70,7 +70,6 @@ Coordinate c2 = CalculateUtils.getCoordinate(suMax); String time = wd.getTableName().replace("su_yuan_", ""); - double lastVal = 0; double speed1 = CalculateUtils.round2(CalculateUtils.getWindSpeed(suYuan.getV(), suYuan.getU())); double direction1 = CalculateUtils.getWindDirection(suYuan.getV(), suYuan.getU()); String dir = CalculateUtils.getDir(direction1); diff --git a/src/main/java/com/yssh/service/ISuYuanService.java b/src/main/java/com/yssh/service/ISuYuanService.java index 4b98689..ad95340 100644 --- a/src/main/java/com/yssh/service/ISuYuanService.java +++ b/src/main/java/com/yssh/service/ISuYuanService.java @@ -32,4 +32,6 @@ public int updateVocsName(Date date, String id, String vocsName); public List<Qxsh> queryQxsh(Date date); + + public List<List<Coordinate>> selectRects(Double[] x, Double[] y); } diff --git a/src/main/java/com/yssh/service/impl/SuYuanServiceImpl.java b/src/main/java/com/yssh/service/impl/SuYuanServiceImpl.java index 37e65d5..71f5c64 100644 --- a/src/main/java/com/yssh/service/impl/SuYuanServiceImpl.java +++ b/src/main/java/com/yssh/service/impl/SuYuanServiceImpl.java @@ -286,4 +286,14 @@ return qxshMapper.selectByTime(time); } + + @Override + public List<List<Coordinate>> selectRects(Double[] x, Double[] y) { + List<List<Coordinate>> list = new ArrayList<>(); + for (int i = 0; i < x.length; i++) { + list.add(CalculateUtils.calcRect(x[i], y[i])); + } + + return list; + } } diff --git a/src/main/java/com/yssh/utils/CalculateUtils.java b/src/main/java/com/yssh/utils/CalculateUtils.java index 233a443..6dcea2a 100644 --- a/src/main/java/com/yssh/utils/CalculateUtils.java +++ b/src/main/java/com/yssh/utils/CalculateUtils.java @@ -30,8 +30,7 @@ /** * 杞寲涓哄姬搴�(rad) */ - private static double rad(double d) - { + private static double rad(double d) { return d * Math.PI / 180.0; } @@ -73,14 +72,14 @@ * 淇濈暀2浣嶅皬鏁� */ public static double round2(double d) { - return ((long)(d * 100)) / 100D; + return ((long) (d * 100)) / 100D; } /** * 淇濈暀6浣嶅皬鏁� */ public static double round6(double d) { - return ((long)(d * 1000000)) / 1000000D; + return ((long) (d * 1000000)) / 1000000D; } /** @@ -107,9 +106,9 @@ /** * 璁$畻瑙掑害2 */ - public static double getAngle2(double x1, double y1, double x2, double y2){ + public static double getAngle2(double x1, double y1, double x2, double y2) { try { - DirectPosition2D p1 = new DirectPosition2D( x1, y1); + DirectPosition2D p1 = new DirectPosition2D(x1, y1); DirectPosition2D p2 = new DirectPosition2D(x2, y2); GeodeticCalculator gc = new GeodeticCalculator(); @@ -119,13 +118,14 @@ double angle = gc.getAzimuth(); return round2(angle); - }catch (Exception ex){ + } catch (Exception ex) { return 0; } } /** * 鑾峰彇鍧愭爣 + * * @param su * @return */ @@ -142,6 +142,7 @@ /** * 璁$畻缁忓害 + * * @param @param x * @param @param y * @param @return 鍙傛暟 @@ -161,6 +162,7 @@ /** * 璁$畻缁村害 + * * @param @param x * @param @param y * @param @return 鍙傛暟 @@ -262,6 +264,17 @@ } /** + * 璁$畻X銆乊鍊肩殑鐭╁舰妗� + */ + public static List<Coordinate> calcRect(double x, double y) { + double buffer = 10; + List<Coordinate> list = new ArrayList<>(); + // + + return list; + } + + /** * @param @return 鍙傛暟 * @return Double 杩斿洖绫诲瀷 * @throws -- Gitblit v1.9.3