From 3f39280a9b2b814f883a9b578939f421dd056fef Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期日, 03 九月 2023 15:06:24 +0800
Subject: [PATCH] 根据id查询元数据,设置nodata

---
 src/main/java/com/moon/server/service/data/ShuJianService.java |   61 ++++++++++++++++++++++--------
 1 files changed, 44 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/moon/server/service/data/ShuJianService.java b/src/main/java/com/moon/server/service/data/ShuJianService.java
index 3e61d66..78ba2e9 100644
--- a/src/main/java/com/moon/server/service/data/ShuJianService.java
+++ b/src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.moon.server.entity.all.StaticData;
 import com.moon.server.entity.ctrl.PubEntity;
+import com.moon.server.entity.data.MetaEntity;
 import com.moon.server.entity.data.MetaPubEntity;
 import com.moon.server.entity.data.PublishEntity;
 import com.moon.server.entity.shujian.*;
@@ -21,9 +22,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.lang.reflect.Field;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 鏁扮畝.鏈嶅姟
@@ -32,15 +31,20 @@
 @Service
 public class ShuJianService {
     @Value("${shujian.ak}")
-    private String ak;
+    String ak;
 
     @Value("${shujian.url}")
-    private String sjUrl;
+    String sjUrl;
+
+    @Resource
+    MetaService metaService;
 
     @Resource
     PublishService publishService;
 
     private final static Log log = LogFactory.getLog(ShuJianService.class);
+
+    public final static List<String> TYPES = new ArrayList<>(Arrays.asList("DOM", "DEM"));
 
     /**
      * 鍒嗛〉鏌ヨ鏁扮畝鐨勯鑹茶〃
@@ -84,21 +88,20 @@
     /**
      * 鍒涘缓鍥惧眰瀹炰綋绫�
      */
-    public CreateLayerEntity createLayerEntity(PubEntity pubEntity) {
-        CreateLayerEntity entity = new CreateLayerEntity(1, 3);
+    public CreateLayerEntity createLayerEntity(PubEntity pub) {
+        String epsg = getEpsg(pub);
+        String ids = StringHelper.join(pub.getIds(), ",");
+        List<MetaEntity> list = metaService.selectByIds(ids);
+
+        CreateLayerEntity entity = new CreateLayerEntity();
         entity.setCreate_service(0);
 
         CreateLayerEntity.Layer layer = entity.getLayer();
-        layer.setName("");
-        layer.setProjection("ESRI:" + StaticData.I104903);
-        layer.setType(0);
-        layer.setEnhance_type(0);
-
-        String[] noData = new String[3];
-        noData[0] = "0";
-        noData[1] = "0";
-        noData[2] = "0";
-        layer.setNodata(noData);
+        layer.setName(pub.getName());
+        layer.setProjection(epsg);
+        layer.setType(TYPES.indexOf(pub.getType()));
+        layer.setEnhance_type(pub.getEnhanceType());
+        layer.setNodata(getNoData(pub, list));
 
         CreateLayerEntity.ImagePathList imagePathList = entity.getImage_path_list().get(0);
         imagePathList.setPath("");
@@ -110,6 +113,30 @@
         return entity;
     }
 
+    private List<String> getNoData(PubEntity pub, List<MetaEntity> metas) {
+        int bands = 1;
+        for (MetaEntity meta : metas) {
+            if (StringHelper.isEmpty(meta.getBands())) {
+                continue;
+            }
+            try {
+                int b = Integer.parseInt(meta.getBands());
+                if (b > bands) {
+                    bands = b;
+                }
+            } catch (Exception e) {
+                //
+            }
+        }
+
+        List<String> list = new ArrayList<>();
+        for (int i = 0; i < bands; i++) {
+            list.add(String.valueOf(pub.getNodata()));
+        }
+
+        return list;
+    }
+
     /**
      * 鍙戦�佸浘灞傚疄浣撶被
      */

--
Gitblit v1.9.3