|
|
@@ -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("执行失败");
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|