From bddcdc5ca6028b29e5a71460191d05151d2767f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Thu, 5 Oct 2023 14:05:39 +0900 Subject: [PATCH] =?UTF-8?q?resource=20=ED=8C=8C=EC=9D=BC=20=EB=AA=BB?= =?UTF-8?q?=EC=9D=BD=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/palnet/comn/utils/AirspaceUtils.java | 79 +++++++++++-------- 1 file changed, 45 insertions(+), 34 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/comn/utils/AirspaceUtils.java b/pav-server/src/main/java/com/palnet/comn/utils/AirspaceUtils.java index a9857a14..5eb872af 100644 --- a/pav-server/src/main/java/com/palnet/comn/utils/AirspaceUtils.java +++ b/pav-server/src/main/java/com/palnet/comn/utils/AirspaceUtils.java @@ -4,11 +4,13 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.tomcat.util.modeler.FeatureInfo; import org.geotools.geojson.feature.FeatureJSON; import org.geotools.geojson.geom.GeometryJSON; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; import org.locationtech.jts.geom.*; import org.opengis.feature.simple.SimpleFeature; import org.springframework.core.io.ClassPathResource; @@ -16,10 +18,7 @@ import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.Resource; import org.springframework.core.io.support.ResourcePatternUtils; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; +import java.io.*; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -149,49 +148,61 @@ public class AirspaceUtils { // 파일에서 공역 데이터 가져와서 geometry로 변환 - 초기화. private void getResourceAirspace() { -// ClassPathResource resource = new ClassPathResource(CLASS_PATH); - List geoJsonFiles = new ArrayList<>(); - try { - Resource[] resources = ResourcePatternUtils - .getResourcePatternResolver(new DefaultResourceLoader()) - .getResources("classpath*:air/elev2d/**"); - + Resource[] resources; + List featureInfos = new ArrayList<>(); -// File folder = resource.getFile(); -// File[] files = folder.listFiles(); -// for (File file : files) { -// if (file.isFile() && file.getName().endsWith("elev.json")) { -// log.debug(">>> {}", file.getName()); -// geoJsonFiles.add(file); -// } -// } - for(Resource resource: resources) { - File file = resource.getFile(); - if (file.isFile() && file.getName().endsWith("elev.json")) { - log.debug(">>> {}", file.getName()); - geoJsonFiles.add(file); - } - } + try { + resources = ResourcePatternUtils + .getResourcePatternResolver(new DefaultResourceLoader()) + .getResources("classpath*:air/elev2d/**"); } catch (IOException e) { throw new RuntimeException(e); } - List featureInfos = new ArrayList<>(); - for (File file : geoJsonFiles) { - try (InputStreamReader isr = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)) { + for (Resource resource : resources) { + try (InputStream is = resource.getInputStream()) { + InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8); JSONParser jsonParser = new JSONParser(); JSONObject jsonObject = (JSONObject) jsonParser.parse(isr); List convertFeatureInfos = convertGeoJsonToGeometry(jsonObject); featureInfos.addAll(convertFeatureInfos); } catch (Exception e) { - log.error("ERROR : ", e); - featureInfos = null; - } - if (featureInfos != null && featureInfos.isEmpty()) { - featureInfos = null; + throw new RuntimeException(e); } } +// ClassPathResource resource = new ClassPathResource(CLASS_PATH); +// List geoJsonFiles = new ArrayList<>(); +// try { +// File folder = resource.getFile(); +// File[] files = folder.listFiles(); +// for (File file : files) { +// if (file.isFile() && file.getName().endsWith("elev.json")) { +// log.debug(">>> {}", file.getName()); +// geoJsonFiles.add(file); +// } +// } +// } catch (IOException e) { +// throw new RuntimeException(e); +// } + + +// List featureInfos = new ArrayList<>(); +// for (File file : geoJsonFiles) { +// try (InputStreamReader isr = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)) { +// JSONParser jsonParser = new JSONParser(); +// JSONObject jsonObject = (JSONObject) jsonParser.parse(isr); +// List convertFeatureInfos = convertGeoJsonToGeometry(jsonObject); +// featureInfos.addAll(convertFeatureInfos); +// } catch (Exception e) { +// log.error("ERROR : ", e); +// featureInfos = null; +// } +// if (featureInfos != null && featureInfos.isEmpty()) { +// featureInfos = null; +// } +// } + this.airspaces = featureInfos; }