Browse Source

resource 파일 못읽음

pull/10/head
지대한 12 months ago
parent
commit
bddcdc5ca6
  1. 79
      pav-server/src/main/java/com/palnet/comn/utils/AirspaceUtils.java

79
pav-server/src/main/java/com/palnet/comn/utils/AirspaceUtils.java

@ -4,11 +4,13 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.util.modeler.FeatureInfo;
import org.geotools.geojson.feature.FeatureJSON; import org.geotools.geojson.feature.FeatureJSON;
import org.geotools.geojson.geom.GeometryJSON; import org.geotools.geojson.geom.GeometryJSON;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.locationtech.jts.geom.*; import org.locationtech.jts.geom.*;
import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeature;
import org.springframework.core.io.ClassPathResource; 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.Resource;
import org.springframework.core.io.support.ResourcePatternUtils; import org.springframework.core.io.support.ResourcePatternUtils;
import java.io.File; import java.io.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
@ -149,49 +148,61 @@ public class AirspaceUtils {
// 파일에서 공역 데이터 가져와서 geometry로 변환 - 초기화. // 파일에서 공역 데이터 가져와서 geometry로 변환 - 초기화.
private void getResourceAirspace() { private void getResourceAirspace() {
// ClassPathResource resource = new ClassPathResource(CLASS_PATH); Resource[] resources;
List<File> geoJsonFiles = new ArrayList<>(); List<FeatureInfo> featureInfos = new ArrayList<>();
try {
Resource[] resources = ResourcePatternUtils
.getResourcePatternResolver(new DefaultResourceLoader())
.getResources("classpath*:air/elev2d/**");
// File folder = resource.getFile(); try {
// File[] files = folder.listFiles(); resources = ResourcePatternUtils
// for (File file : files) { .getResourcePatternResolver(new DefaultResourceLoader())
// if (file.isFile() && file.getName().endsWith("elev.json")) { .getResources("classpath*:air/elev2d/**");
// 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);
}
}
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
List<FeatureInfo> featureInfos = new ArrayList<>(); for (Resource resource : resources) {
for (File file : geoJsonFiles) { try (InputStream is = resource.getInputStream()) {
try (InputStreamReader isr = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)) { InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8);
JSONParser jsonParser = new JSONParser(); JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(isr); JSONObject jsonObject = (JSONObject) jsonParser.parse(isr);
List<FeatureInfo> convertFeatureInfos = convertGeoJsonToGeometry(jsonObject); List<FeatureInfo> convertFeatureInfos = convertGeoJsonToGeometry(jsonObject);
featureInfos.addAll(convertFeatureInfos); featureInfos.addAll(convertFeatureInfos);
} catch (Exception e) { } catch (Exception e) {
log.error("ERROR : ", e); throw new RuntimeException(e);
featureInfos = null;
}
if (featureInfos != null && featureInfos.isEmpty()) {
featureInfos = null;
} }
} }
// ClassPathResource resource = new ClassPathResource(CLASS_PATH);
// List<File> 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<FeatureInfo> 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<FeatureInfo> 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; this.airspaces = featureInfos;
} }

Loading…
Cancel
Save