Browse Source

导出geojson文件

董珍珍 1 year ago
parent
commit
9a4cab447e

File diff suppressed because it is too large
+ 0 - 0
data/hebei_city.geojson


BIN
onemap-modules/onemap-apply/lib/com.supermap.data.conversion.jar


+ 7 - 0
onemap-modules/onemap-apply/pom.xml

@@ -143,6 +143,13 @@
             <scope>system</scope>
             <systemPath>${basedir}/lib/com.supermap.data.jar</systemPath>
         </dependency>
+        <dependency>
+            <groupId>com.supermap</groupId>
+            <artifactId>data.conversion</artifactId>
+            <version>11.0</version>
+            <scope>system</scope>
+            <systemPath>${basedir}/lib/com.supermap.data.conversion.jar</systemPath>
+        </dependency>
     </dependencies>
 
     <build>

+ 62 - 2
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/controller/data/TestData.java

@@ -4,10 +4,18 @@ import com.onemap.common.core.web.domain.RequestResult;
 import com.supermap.analyst.spatialanalyst.OverlayAnalyst;
 import com.supermap.analyst.spatialanalyst.OverlayAnalystParameter;
 import com.supermap.data.*;
+import com.supermap.data.conversion.DataExport;
+import com.supermap.data.conversion.ExportSetting;
+import com.supermap.data.conversion.ExportSettingGeoJson;
+import com.supermap.data.conversion.FileType;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.Date;
 
 @RestController
@@ -31,8 +39,7 @@ public class TestData {
     private static void createDatabaseSource() {
         DatasourceConnectionInfo info = new DatasourceConnectionInfo();
         info.setEngineType(EngineType.PGGIS);
-//        info.setEngineType(EngineType.POSTGRESQL);
-        info.setServer("192.168.100.252:5432");
+        info.setServer("192.168.100.202:5432");
         info.setDatabase("test_data1");
         info.setUser("postgres");
         info.setPassword("postgres");
@@ -73,4 +80,57 @@ public class TestData {
         // 释放工作空间占有的资源
         mWorkspace.dispose();
     }
+
+
+    @GetMapping("/geojson")
+    public RequestResult getJson() {
+        DatasourceConnectionInfo info = new DatasourceConnectionInfo();
+        info.setEngineType(EngineType.PGGIS);
+        info.setServer("192.168.60.202:5432");
+        info.setDatabase("test_data1");
+        info.setUser("postgres");
+        info.setPassword("postgres");
+
+        Workspace mWorkspace = new Workspace();
+        Datasource datasource = mWorkspace.getDatasources().open(info);
+
+        if (datasource != null) {
+            System.out.println("创建数据源成功");
+        } else {
+            System.out.println("创建数据源失败");
+            return RequestResult.error("创建数据源失败");
+        }
+
+        Datasets datasets = datasource.getDatasets();
+        DatasetVector dtHebeiVertical = (DatasetVector) datasets.get("hebei_city");
+
+
+        ExportSettingGeoJson exportSettingGeoJson = new ExportSettingGeoJson();
+        exportSettingGeoJson.setOverwrite(true);
+
+//        ExportSetting exportSetting = new ExportSetting();
+//        exportSetting.setOverwrite(true);
+
+        // 获取当前工作目录,即项目根目录
+        String projectRootDir = System.getProperty("user.dir");
+        try {
+            File file = new File(projectRootDir, "data");
+            if (!file.exists()) {
+                file.mkdir();
+            }
+            // 构建目标文件路径
+            String targetFilePath = projectRootDir + File.separator + "data" + File.separator + "hebei_city.geojson";
+
+            exportSettingGeoJson.setTargetFileType(FileType.GEOJSON);
+            exportSettingGeoJson.setTargetFilePath(targetFilePath);
+            exportSettingGeoJson.setSourceData(dtHebeiVertical);
+
+            DataExport dataExport = new DataExport();
+            dataExport.getExportSettings().add(exportSettingGeoJson);
+            dataExport.run();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return RequestResult.success("数据创建成功", null);
+    }
 }

Some files were not shown because too many files changed in this diff