From 7f6e42163928987b55894e9c3a3eb085f8a0e61c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 23 四月 2023 15:20:43 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/controller/show/InquiryController.java | 5 ++ src/main/java/com/lf/server/service/show/InquiryService.java | 61 +++++++++++++++++++++++++++++- src/main/java/com/lf/server/entity/all/StaticData.java | 2 + 3 files changed, 64 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/lf/server/controller/show/InquiryController.java b/src/main/java/com/lf/server/controller/show/InquiryController.java index bec4495..6948fb1 100644 --- a/src/main/java/com/lf/server/controller/show/InquiryController.java +++ b/src/main/java/com/lf/server/controller/show/InquiryController.java @@ -104,7 +104,10 @@ } UserEntity ue = tokenService.getCurrentUser(req); - String guid = inquiryService.downloadTiles(dt, pub, ue); + String guid = inquiryService.zipTiles(dt, pub, ue); + if (null == guid) { + return fail("娌℃湁鐡︾墖闇�瑕佹墦鍖呬笅杞�"); + } return success(guid); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/entity/all/StaticData.java b/src/main/java/com/lf/server/entity/all/StaticData.java index 82d5b20..5634180 100644 --- a/src/main/java/com/lf/server/entity/all/StaticData.java +++ b/src/main/java/com/lf/server/entity/all/StaticData.java @@ -38,6 +38,8 @@ public static final int I12 = 12; + public static final int I23 = 23; + public static final int I24 = 24; public static final int I31 = 31; diff --git a/src/main/java/com/lf/server/service/show/InquiryService.java b/src/main/java/com/lf/server/service/show/InquiryService.java index f37172e..51a0a1a 100644 --- a/src/main/java/com/lf/server/service/show/InquiryService.java +++ b/src/main/java/com/lf/server/service/show/InquiryService.java @@ -1,5 +1,7 @@ package com.lf.server.service.show; +import com.lf.server.config.PropertiesConfig; +import com.lf.server.entity.all.StaticData; import com.lf.server.entity.ctrl.DownloadTileEntity; import com.lf.server.entity.ctrl.ShpRecordEntity; import com.lf.server.entity.data.MetaFileEntity; @@ -10,6 +12,9 @@ import com.lf.server.helper.StringHelper; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.io.File; +import java.util.ArrayList; import java.util.List; /** @@ -18,6 +23,9 @@ */ @Service public class InquiryService { + @Resource + PropertiesConfig config; + /** * 璇诲彇Shp绗竴鏉¤褰曠殑WKT */ @@ -40,11 +48,58 @@ } /** - * 涓嬭浇鐡︾墖 + * 鎵撳寘鐡︾墖 */ - public String downloadTiles(DownloadTileEntity dt, PublishEntity pub, UserEntity ue) { + public String zipTiles(DownloadTileEntity dt, PublishEntity pub, UserEntity ue) { + if (!TilePathExist(pub)) { + return null; + } + List<String> list = findTiles(dt, pub); + if (list.isEmpty()) { + return null; + } - return ""; + return "aaa"; + } + + /** + * 鐡︾墖璺緞鏄惁瀛樺湪 + */ + private boolean TilePathExist(PublishEntity pub) { + String tilePath = config.getTilePath().replace("2d\\tiles", "") + File.separator + pub.getPath(); + + File f = new File(tilePath); + if (!f.exists() || !f.isDirectory()) { + return false; + } + + pub.setPath(tilePath); + + return true; + } + + /** + * 鏌ユ壘鐡︾墖 + */ + private List<String> findTiles(DownloadTileEntity dt, PublishEntity pub) { + List<String> list = new ArrayList<>(); + for (int i = 0; i < StaticData.I23; i++) { + findTilesByZoom(dt, pub, i, list); + } + + return list; + } + + /** + * 鏍规嵁灞傛鏌ユ壘鐡︾墖 + */ + private void findTilesByZoom(DownloadTileEntity dt, PublishEntity pub, int zoom, List<String> list) { + File f = new File(pub.getPath() + File.separator + zoom); + if (!f.exists() || !f.isDirectory()) { + return; + } + + // } } -- Gitblit v1.9.3