Browse Source

添加压缩包转geojson 上传接口

ywf 1 tháng trước cách đây
mục cha
commit
523b233e5c

+ 24 - 1
onemap-modules/onemap-file/src/main/java/com/onemap/file/controller/SysFileController.java

@@ -180,6 +180,29 @@ public class SysFileController {
         }
     }
 
+    @PostMapping("/upload/shp/geojson")
+    public RequestResult uploadShpArchiveToGeoJson(MultipartFile file) {
+        try {
+            if (file == null || file.isEmpty() || file.getOriginalFilename() == null) {
+                return RequestResult.error("文件为空");
+            }
+            UploadZipDTO dto = sysFileService.uploadZip(file);
+            if (dto == null || dto.getUnzippath() == null) {
+                return RequestResult.error("上传或解压失败");
+            }
+            List<File> shpFiles = new ArrayList<>();
+            com.onemap.file.utils.FileUtils.findShpFiles(new File(dto.getUnzippath()), shpFiles);
+            if (shpFiles.isEmpty()) {
+                return RequestResult.error("未读取到SHP文件");
+            }
+            String geojson = sysFileService.getShpGeoJson(shpFiles.get(0).getAbsolutePath());
+            return RequestResult.success("执行成功", geojson);
+        } catch (Exception e) {
+            log.error("上传压缩包并转换GeoJSON失败", e);
+            return RequestResult.error("上传失败");
+        }
+    }
+
     // /**
     //  * shp压缩包文件上传
     //  *
@@ -402,4 +425,4 @@ public class SysFileController {
             return RequestResult.error("执行失败");
         }
     }
-}
+}