From 329ead43b8a270e5c56a2f2a4f1d1596d1cd5ff8 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:58:00 +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 | 63 ++++++++++++------- 1 file changed, 40 insertions(+), 23 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 9b01b1c..1eaec05 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 @@ -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 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 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 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 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; }