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