|
|
|
@ -148,39 +148,56 @@ public class AirspaceUtils {
|
|
|
|
|
|
|
|
|
|
// 파일에서 공역 데이터 가져와서 geometry로 변환 - 초기화.
|
|
|
|
|
private void getResourceAirspace() { |
|
|
|
|
Resource[] resources; |
|
|
|
|
// airgeo-elev.json
|
|
|
|
|
// gimpo-airport-2d-elev.json
|
|
|
|
|
ClassPathResource airgeo = new ClassPathResource("air/elev2d/airgeo-elev.json"); |
|
|
|
|
ClassPathResource gimpo = new ClassPathResource("air/elev2d/gimpo-airport-2d-elev.json"); |
|
|
|
|
List<FeatureInfo> featureInfos = new ArrayList<>(); |
|
|
|
|
InputStream jsonInputStream = null; |
|
|
|
|
InputStreamReader inputStreamReader = null; |
|
|
|
|
|
|
|
|
|
// 2. json parsing
|
|
|
|
|
JSONParser jsonParser = new JSONParser(); |
|
|
|
|
try { |
|
|
|
|
resources = ResourcePatternUtils |
|
|
|
|
.getResourcePatternResolver(new DefaultResourceLoader()) |
|
|
|
|
.getResources("classpath*:air/elev2d/**"); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
jsonInputStream = airgeo.getInputStream(); |
|
|
|
|
inputStreamReader = new InputStreamReader(jsonInputStream, "UTF-8"); |
|
|
|
|
BufferedReader reader = new BufferedReader(inputStreamReader); |
|
|
|
|
JSONObject jsonObject = (JSONObject) jsonParser.parse(reader); |
|
|
|
|
List<FeatureInfo> fis = this.convertGeoJsonToGeometry(jsonObject); |
|
|
|
|
featureInfos.addAll(fis); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} finally { |
|
|
|
|
try { |
|
|
|
|
if (jsonInputStream != null) jsonInputStream.close(); |
|
|
|
|
if (inputStreamReader != null) inputStreamReader.close(); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (Resource resource : resources) { |
|
|
|
|
log.info(">>> resource : {}", resource.getFilename()); |
|
|
|
|
log.info(">>> resource : {}", resource); |
|
|
|
|
try (InputStream is = resource.getInputStream()) { |
|
|
|
|
InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8); |
|
|
|
|
BufferedReader br = new BufferedReader(isr); |
|
|
|
|
log.info(">>>> is : {}", is); |
|
|
|
|
log.info(">>>> isr : {}", isr); |
|
|
|
|
log.info(">>>> br : {}", br); |
|
|
|
|
JSONParser jsonParser = new JSONParser(); |
|
|
|
|
Object o = jsonParser.parse(br); |
|
|
|
|
log.info(">>>> o : {}", o); |
|
|
|
|
log.info(">>>> o : {}", o.getClass()); |
|
|
|
|
// JSONObject jsonObject = (JSONObject) jsonParser.parse(br);
|
|
|
|
|
JSONObject jsonObject = (JSONObject) o; |
|
|
|
|
List<FeatureInfo> convertFeatureInfos = convertGeoJsonToGeometry(jsonObject); |
|
|
|
|
featureInfos.addAll(convertFeatureInfos); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
InputStream jsonInputStream2 = null; |
|
|
|
|
InputStreamReader inputStreamReader2 = null; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
jsonInputStream2 = gimpo.getInputStream(); |
|
|
|
|
inputStreamReader2 = new InputStreamReader(jsonInputStream2, "UTF-8"); |
|
|
|
|
BufferedReader reader = new BufferedReader(inputStreamReader2); |
|
|
|
|
JSONObject jsonObject = (JSONObject) jsonParser.parse(reader); |
|
|
|
|
List<FeatureInfo> fis = this.convertGeoJsonToGeometry(jsonObject); |
|
|
|
|
featureInfos.addAll(fis); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} finally { |
|
|
|
|
try { |
|
|
|
|
if (jsonInputStream2 != null) jsonInputStream2.close(); |
|
|
|
|
if (inputStreamReader2 != null) inputStreamReader2.close(); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
log.info(">>> featureInfos size : {}", featureInfos.size()); |
|
|
|
|
this.airspaces = featureInfos; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|