From 759eb3133998a1e067b33957c2e2e7a9e5cc44a4 Mon Sep 17 00:00:00 2001 From: qkr7828 Date: Thu, 18 Jan 2024 17:09:55 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=B2=95=EC=A0=95=EB=8F=99=20=EC=9C=A0?= =?UTF-8?q?=ED=8B=B8=20=EC=84=B1=EB=8A=A5=EA=B0=9C=EC=84=A0(=EC=9C=A1?= =?UTF-8?q?=EC=A7=80=EA=B0=80=20=EC=95=84=EB=8B=8C=20=EC=A7=80=EC=97=AD?= =?UTF-8?q?=EC=9D=98=20=EC=A0=95=EB=B3=B4=EB=8F=84=20=EB=B6=88=EB=9F=AC?= =?UTF-8?q?=EC=98=AC=20=EC=88=98=20=EC=9E=88=EA=B2=8C=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/palnet/comn/utils/CoordUtils.java | 71 +++++++++++++++---- 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/comn/utils/CoordUtils.java b/pav-server/src/main/java/com/palnet/comn/utils/CoordUtils.java index cc81f4f5..f04450b2 100644 --- a/pav-server/src/main/java/com/palnet/comn/utils/CoordUtils.java +++ b/pav-server/src/main/java/com/palnet/comn/utils/CoordUtils.java @@ -9,6 +9,7 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; @@ -62,7 +63,7 @@ public class CoordUtils { List> callables = new ArrayList<>(); - for (int i = 0; i < coords.length-1; i++) { + for (int i = 0; i < coords.length; i++) { int path = i; callables.add(() -> initCoordinates(coords[path])); @@ -120,6 +121,8 @@ public class CoordUtils { String depth = ""; + Double distance = 1000000.0; + List> callables = new ArrayList<>(); for (int i = 0; i < allLocation.size(); i++) { @@ -141,21 +144,42 @@ public class CoordUtils { for (Future rslt : results) { - JSONObject jsonObject = rslt.get(); + JSONObject jsonObject = new JSONObject(); + + try { + + jsonObject = rslt.get(); + + } catch (InterruptedException | ExecutionException e) { + + jsonObject = null; + } - if(jsonObject != null) { + if(jsonObject != null && jsonObject.get("distance") == null) { depth = (String) jsonObject.get("CD"); break; + + } else if(jsonObject != null && jsonObject.get("distance") != null) { + + Double distances = (Double) jsonObject.get("distance"); + + if(distance > distances) { + + distance = distances; + + depth = (String) jsonObject.get("CD"); + + } + } - } - JSONObject result = this.getCoordinateGis(coord, depth); - - return result; - + JSONObject result = this.getCoordinateGis(coord, depth); + + return result; + } catch (Exception e) { e.printStackTrace(); } @@ -168,7 +192,7 @@ public class CoordUtils { public JSONObject getCoordinateGis(Coordinate coordinate, JSONObject polygon) throws IOException, ParseException { JSONObject obj = new JSONObject(); - + obj = parseGeoJson(polygon, coordinate); if(obj == null) return null; @@ -240,6 +264,10 @@ public class CoordUtils { public JSONObject contains(List features, Point point) { + JSONObject result = null; + + Double standard = 10000000.0; + for(int i=0; i distance) { + + standard = distance; + + result = properties; + } + } } } - return null; + result.put("distance", standard); + + return result; } }