김성원 김성원 2023-06-21
Geojson -> openLayer 샘플
@9c751cdb345acfc37eb676ee75f8c68515f1f367
pom.xml
--- pom.xml
+++ pom.xml
@@ -112,6 +112,13 @@
             <version>2.13.3</version>
         </dependency>
 
+        <!--기본 org.json  -->
+        <dependency>
+            <groupId>org.json</groupId>
+            <artifactId>json</artifactId>
+            <version>20180813</version>
+        </dependency>
+
         <!-- 시스템 입출력(파일 포함) -->
         <dependency>
             <groupId>commons-io</groupId>
server/main/java/kr/co/takensoft/crosswalk/test/dao/TestDAO.java
--- server/main/java/kr/co/takensoft/crosswalk/test/dao/TestDAO.java
+++ server/main/java/kr/co/takensoft/crosswalk/test/dao/TestDAO.java
@@ -4,6 +4,7 @@
 import kr.co.takensoft.crosswalk.test.vo.Test;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -23,4 +24,12 @@
      * @since 2022.09.01
      */
     public List<Test> testDataSelectList (Test test) throws Exception;
+
+    /**
+     * 데이터 조회 테스트
+     *
+     * @author 최정우
+     * @since 2022.09.01
+     */
+    public String getDongGeoJson (HashMap<String, Object> data) throws Exception;
 }
server/main/java/kr/co/takensoft/crosswalk/test/service/TestService.java
--- server/main/java/kr/co/takensoft/crosswalk/test/service/TestService.java
+++ server/main/java/kr/co/takensoft/crosswalk/test/service/TestService.java
@@ -2,6 +2,7 @@
 
 import kr.co.takensoft.crosswalk.test.vo.Test;
 
+import java.util.HashMap;
 import java.util.List;
 
 
@@ -16,4 +17,12 @@
      */
     public List<Test> testDataSelectList (Test test) throws Exception;
 
+    /**
+     * 데이터 조회 테스트
+     *
+     * @author 최정우
+     * @since 2022.09.01
+     */
+    public String getDongGeoJson (HashMap<String, Object> data) throws Exception;
+
 }
server/main/java/kr/co/takensoft/crosswalk/test/service/impl/TestServiceImpl.java
--- server/main/java/kr/co/takensoft/crosswalk/test/service/impl/TestServiceImpl.java
+++ server/main/java/kr/co/takensoft/crosswalk/test/service/impl/TestServiceImpl.java
@@ -6,6 +6,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -30,4 +31,9 @@
     public List<Test> testDataSelectList(Test test) throws Exception {
         return testDao.testDataSelectList(test);
     }
+
+    @Override
+    public String getDongGeoJson(HashMap<String, Object> data) throws Exception {
+        return testDao.getDongGeoJson(data);
+    }
 }
server/main/java/kr/co/takensoft/crosswalk/test/web/TestConroller.java
--- server/main/java/kr/co/takensoft/crosswalk/test/web/TestConroller.java
+++ server/main/java/kr/co/takensoft/crosswalk/test/web/TestConroller.java
@@ -3,6 +3,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import kr.co.takensoft.crosswalk.test.service.TestService;
 import kr.co.takensoft.crosswalk.test.vo.Test;
+import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -107,4 +108,56 @@
         mav.addObject("result", param);
         return mav;
     }
+
+    @RequestMapping(value = "/testDongGeoJson.json",  method = RequestMethod.POST)
+    public ModelAndView testDongGeoJson () throws Exception {
+
+        String freeBus = "{\n" +
+                "    \"type\": \"FeatureCollection\",\n" +
+                "    \"features\": [\n" +
+                "        {\n" +
+                "            \"type\": \"Feature\",\n" +
+                "            \"properties\": {\n" +
+                "                \"popupContent\": \"18th & California Light Rail Stop\",\n" +
+                "                \"data\" : 123\n" +
+                "            },\n" +
+                "            \"geometry\": {\n" +
+                "                \"type\": \"Point\",\n" +
+                "                \"coordinates\": [126.9757184, 37.564388]                \n" +
+                "            }\n" +
+                "        },{\n" +
+                "            \"type\": \"Feature\",\n" +
+                "            \"properties\": {\n" +
+                "                \"popupContent\": \"20th & Welton Light Rail Stop\",\n" +
+                "                \"data\" : 456\n" +
+                "            },\n" +
+                "            \"geometry\": {\n" +
+                "                \"type\": \"Point\",\n" +
+                "                \"coordinates\": [124.9748523, 37.5796212]\n" +
+                "            }\n" +
+                "        }\n" +
+                "    ]\n" +
+                "}";
+
+        JSONObject jsonObject = new JSONObject(freeBus);
+        System.out.println(jsonObject.toString());
+        ModelAndView mav = new ModelAndView("jsonView");
+        mav.addObject("result", jsonObject.toString());
+
+        return mav;
+    }
+
+    @RequestMapping(value = "/testDongGeoJson2.json",  method = RequestMethod.POST)
+    public ModelAndView testDongGeoJson2 () throws Exception {
+
+        HashMap<String, Object> aa = new HashMap<String, Object>();
+        aa.put("code", "2711");
+
+        String data = testService.getDongGeoJson(aa);
+      //  JSONObject jsonObject = new JSONObject(data);
+        System.out.print(data);
+        ModelAndView mav = new ModelAndView("jsonView");
+        mav.addObject("result",data);
+        return mav;
+    }
 }
server/main/java/spring/config/DataSourceContextConfig.java
--- server/main/java/spring/config/DataSourceContextConfig.java
+++ server/main/java/spring/config/DataSourceContextConfig.java
@@ -35,7 +35,7 @@
         /*hikariConfig.setDriverClassName("org.postgresql.Driver");
         hikariConfig.setJdbcUrl("jdbc:postgresql://165.229.169.113:5432/mold_management_system?currentSchema=mold_management_system_v1_7");*/
         hikariConfig.setDriverClassName("net.sf.log4jdbc.sql.jdbcapi.DriverSpy");
-        hikariConfig.setJdbcUrl("jdbc:log4jdbc:postgresql://210.180.118.83:5432/crosswalk?currentSchema=crosswalk");
+        hikariConfig.setJdbcUrl("jdbc:log4jdbc:postgresql://210.180.118.83:5432/crosswalk?currentSchema=crosswalk_v0_1");
         hikariConfig.setUsername("takensoft");
         hikariConfig.setPassword("ts44301236!@");
         return hikariConfig;
server/main/resources/mybatis/main/test-SQL.xml
--- server/main/resources/mybatis/main/test-SQL.xml
+++ server/main/resources/mybatis/main/test-SQL.xml
@@ -28,4 +28,21 @@
 	    FROM public.user_info;
     </select>
 
+
+    <select id="getDongGeoJson" parameterType="HashMap" resultType="string">
+        SELECT jsonb_build_object(
+            'type',     'FeatureCollection',
+            'features', jsonb_agg(features.feature)
+        )
+        FROM (
+          SELECT jsonb_build_object(
+            'type',       'Feature',
+            'id',         dong_cd ,
+            'name',		  dong_kor_nm,
+            'geometry',   ST_AsGeoJSON(geom)::jsonb,
+            'properties', to_jsonb(inputs) - 'gid' - 'geom'
+          ) AS feature
+        FROM (SELECT * FROM dong_new where dong_cd like CONCAT('27','%')) inputs) features;
+    </select>
+
 </mapper>
(파일 끝에 줄바꿈 문자 없음)
Add a comment
List