From 9aef7b04b84bf89c1b09515a12f68918eba4c0f2 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Thu, 31 Jul 2025 16:30:34 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D:=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E5=8C=BA=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebikemaintenance/utils/RedisUtil.java | 23 ------------------- .../java/com/cdzy/orders/uitls/RedisUtil.java | 4 +++- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/utils/RedisUtil.java b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/utils/RedisUtil.java index b2bdaeaa..44dad86a 100644 --- a/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/utils/RedisUtil.java +++ b/ebike-maintenance/src/main/java/com/cdzy/ebikemaintenance/utils/RedisUtil.java @@ -118,29 +118,6 @@ public class RedisUtil { .max().orElse(0)*100; } - /** - * 判断点是否在多边形内 - * @param point 待判断点 - * @param polygon 多边形顶点 - * @return 是否在多边形内 - */ - public static boolean isPointInPolygon(Point point, List polygon) { - double x = point.getX(); - double y = point.getY(); - - boolean inside = false; - for (int i = 0, j = polygon.size() - 1; i < polygon.size(); j = i++) { - double xi = polygon.get(i).getX(); - double yi = polygon.get(i).getY(); - double xj = polygon.get(j).getX(); - double yj = polygon.get(j).getY(); - - boolean intersect = ((yi > y) != (yj > y)) - && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); - if (intersect) inside = !inside; - } - return inside; - } /** * 删除 Redis 键 diff --git a/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java b/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java index 09cd5adf..f5ca7cb7 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/uitls/RedisUtil.java @@ -39,6 +39,8 @@ public class RedisUtil { private static final WKTReader WKT_READER = new WKTReader(GEOMETRY_FACTORY); + private static final double DEGREE_TO_METERS = 111320.0; + @Autowired public RedisUtil(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; @@ -396,7 +398,7 @@ public class RedisUtil { Geometry bufferedPolygon = polygon.buffer(0.00000899); // 4. 结合距离判断 - return bufferedPolygon.covers(point) || polygon.distance(point) < 1.0; + return bufferedPolygon.covers(point) || polygon.distance(point) * DEGREE_TO_METERS < 1.0; } /**