From ed8c7a5effd0d423ce1118b680ecdca6fe732609 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 02 七月 2025 16:43:13 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/P2022036_Service --- src/main/java/com/lf/server/service/show/InquiryService.java | 74 ++++++++++++++++++++++++++++++------- 1 files changed, 60 insertions(+), 14 deletions(-) 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 a1bc0fa..0d310f1 100644 --- a/src/main/java/com/lf/server/service/show/InquiryService.java +++ b/src/main/java/com/lf/server/service/show/InquiryService.java @@ -9,9 +9,11 @@ import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.*; import com.lf.server.service.data.DownloadService; -import com.lf.server.service.sys.DownlogService; +import com.lf.server.service.data.PublishService; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.model.ZipParameters; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -31,7 +33,12 @@ PathHelper pathHelper; @Resource + PublishService publishService; + + @Resource DownloadService downloadService; + + private final static Log log = LogFactory.getLog(InquiryService.class); /** * 璇诲彇Shp绗竴鏉¤褰曠殑WKT @@ -77,6 +84,9 @@ String dbPwd = Md5Helper.reverse(Md5Helper.generate(dt.getPwd())); DownloadEntity de = getDownloadEntity(ue, zipFile, dbPwd); int rows = downloadService.insert(de); + if (de.getId() > 0) { + insertPubDown(pub, de, ue); + } return rows > 0 ? de.getGuid() : null; } @@ -85,7 +95,7 @@ * 鐡︾墖璺緞鏄惁瀛樺湪 */ private boolean isTilePathExist(PublishEntity pub) { - String tilePath = pathHelper.getConfig().getTilePath().replace("2d\\tiles", "") + File.separator + pub.getPath(); + String tilePath = pathHelper.getConfig().getTilePath() + pub.getPath(); File f = new File(tilePath); if (!f.exists() || !f.isDirectory()) { @@ -102,8 +112,17 @@ */ private List<File> findTiles(DownloadTileEntity dt, PublishEntity pub) { List<File> list = new ArrayList<>(); + + File view = new File(pub.getPath() + File.separator + "view.htm"); + if (view.exists() && !view.isDirectory()) { + list.add(view); + } + for (int i = 0; i < StaticData.I23; i++) { - findTilesByZoom(dt, pub, i, list); + List<File> files = findTilesByZoom(dt, pub, i); + if (files.size() > 0) { + list.addAll(files); + } } return list; @@ -112,21 +131,41 @@ /** * 鏍规嵁灞傛鏌ユ壘鐡︾墖 */ - private void findTilesByZoom(DownloadTileEntity dt, PublishEntity pub, int zoom, List<File> list) { + private List<File> findTilesByZoom(DownloadTileEntity dt, PublishEntity pub, int zoom) { + List<File> list = new ArrayList<>(); File f = new File(pub.getPath() + File.separator + zoom); if (!f.exists() || !f.isDirectory()) { - return; + return list; } - int x = 0; - int y = 0; - // 鍏抽敭绠楁硶 + int[] leftTop = deg2num(zoom, dt.getXmin(), dt.getYmax()); + int[] rightBottom = deg2num(zoom, dt.getXmax(), dt.getYmin()); - String pngPath = String.format("%s\\%d\\%d.png", pub.getPath(), x, y); - File pngFile = new File(pngPath); - if (pngFile.exists()) { - list.add(pngFile); + for (int x = leftTop[0]; x <= rightBottom[0]; x++) { + for (int y = leftTop[1]; y <= rightBottom[1]; y++) { + String pngPath = String.format("%s\\%d\\%d\\%d.png", pub.getPath(), zoom, x, y); + + File pngFile = new File(pngPath); + if (pngFile.exists()) { + list.add(pngFile); + } + } } + + return list; + } + + /** + * 瑙掑害杞暟鍊� + */ + private int[] deg2num(int zoom, double x, double y) { + double yRad = Math.toRadians(y); + double n = Math.pow(2.0, zoom); + + int xTile = (int) ((x + 180.0) / 360.0 * n); + int yTile = (int) ((1.0 - Math.log(Math.tan(yRad) + (1 / Math.cos(yRad))) / Math.PI) / 2.0 * n); + + return new int[]{xTile, yTile}; } /** @@ -137,8 +176,8 @@ try { params.setFileNameInZip(f.getPath().replace(basePath, "")); zip.addStream(new FileInputStream(f), params); - } catch (Exception e) { - // + } catch (Exception ex) { + log.error(ex.getMessage(), ex); } } } @@ -163,4 +202,11 @@ return de; } + + /** + * 鎻掑叆鏁版嵁鍙戝竷-涓嬭浇琛� + */ + private void insertPubDown(PublishEntity pub, DownloadEntity de, UserEntity ue) { + publishService.insertPubDown(pub.getId(), de.getId(), ue.getId()); + } } -- Gitblit v1.9.3