|
|
|
@ -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<File> geoJsonFiles = new ArrayList<>(); |
|
|
|
|
Resource[] resources; |
|
|
|
|
List<FeatureInfo> featureInfos = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
Resource[] resources = ResourcePatternUtils |
|
|
|
|
resources = ResourcePatternUtils |
|
|
|
|
.getResourcePatternResolver(new DefaultResourceLoader()) |
|
|
|
|
.getResources("classpath*:air/elev2d/**"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} 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)) { |
|
|
|
|
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<FeatureInfo> 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<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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|