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; }