月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-09-03 3f39280a9b2b814f883a9b578939f421dd056fef
根据id查询元数据,设置nodata
已修改7个文件
126 ■■■■ 文件已修改
src/main/java/com/moon/server/controller/data/PublishController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/entity/ctrl/PubEntity.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/entity/shujian/CreateLayerEntity.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/mapper/data/MetaMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/service/data/MetaService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/service/data/ShuJianService.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/data/MetaMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/controller/data/PublishController.java
@@ -193,6 +193,9 @@
            if (StringHelper.isEmpty(entity.getType())) {
                return fail("发布类别为空", null);
            }
            if (!ShuJianService.TYPES.contains(entity.getType())) {
                return fail("发布类别不支持", null);
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            if (null != ue) {
src/main/java/com/moon/server/entity/ctrl/PubEntity.java
@@ -66,6 +66,16 @@
    private String depcode;
    /**
     * NoData
     */
    private Integer nodata;
    /**
     * 拉伸方式 0:不拉伸, 1 线性拉伸, 2 直方图均衡, 3 标准差拉伸, 4 伽马拉伸
     */
    private Integer enhanceType;
    /**
     * 元数据ID集合
     */
    private List<Integer> ids;
@@ -152,6 +162,22 @@
        this.depcode = depcode;
    }
    public Integer getNodata() {
        return nodata;
    }
    public void setNodata(Integer nodata) {
        this.nodata = nodata;
    }
    public Integer getEnhanceType() {
        return enhanceType;
    }
    public void setEnhanceType(Integer enhanceType) {
        this.enhanceType = enhanceType;
    }
    public List<Integer> getIds() {
        return ids;
    }
src/main/java/com/moon/server/entity/shujian/CreateLayerEntity.java
@@ -46,10 +46,6 @@
        create_service = 0;
        layer = new Layer();
        image_ovr = new ImageOvr();
    }
    public CreateLayerEntity(int pathCount, int imageCount) {
        this();
        image_list = new ArrayList<>();
        image_path_list = new ArrayList<>();
    }
@@ -106,7 +102,7 @@
        /**
         * nodata设置,数组,数组大小和波段数等同
         */
        private String[] nodata;
        private List<String> nodata;
        /**
         * 投影或者坐标:EPSG:4326
@@ -185,11 +181,11 @@
            this.name = name;
        }
        public String[] getNodata() {
        public List<String> getNodata() {
            return nodata;
        }
        public void setNodata(String[] nodata) {
        public void setNodata(List<String> nodata) {
            this.nodata = nodata;
        }
@@ -317,7 +313,7 @@
        /**
         * 过滤器组列表:["a.tif|b.tif"]
         */
        private String[] filter;
        private List<String> filter;
        /**
         * 属性过滤
@@ -362,11 +358,11 @@
            this.image_time = image_time;
        }
        public String[] getFilter() {
        public List<String> getFilter() {
            return filter;
        }
        public void setFilter(String[] filter) {
        public void setFilter(List<String> filter) {
            this.filter = filter;
        }
src/main/java/com/moon/server/mapper/data/MetaMapper.java
@@ -129,6 +129,14 @@
    public MetaEntity selectById(int id);
    /**
     * 根据id字符串查询
     *
     * @param ids id字符串
     * @return 元数据集合
     */
    public List<MetaEntity> selectByIds(String ids);
    /**
     * 根据GUID查询
     *
     * @param guid    文件GUID
src/main/java/com/moon/server/service/data/MetaService.java
@@ -120,6 +120,11 @@
    }
    @Override
    public List<MetaEntity> selectByIds(String ids) {
        return metaMapper.selectByIds(ids);
    }
    @Override
    public MetaEntity selectByGuid(String guid, String dircode, String tab) {
        return metaMapper.selectByGuid(guid, dircode, tab);
    }
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;
    }
    /**
     * 发送图层实体类
     */
src/main/resources/mapper/data/MetaMapper.xml
@@ -173,6 +173,13 @@
        from lf.sys_meta a where id = #{id}
    </select>
    <select id="selectByIds" resultType="com.moon.server.entity.data.MetaEntity">
        select *
        from lf.sys_meta
        where id in (${ids})
        order by id desc;
    </select>
    <select id="selectByGuid" resultType="com.moon.server.entity.data.MetaEntity">
        select st_astext(geom) "geom", a.*, fn_uname(a.create_user) createName, fn_uname(a.update_user) updateName, fn_get_fullname(a.depcode, 1) depName, fn_ver(a.verid) verName, fn_get_fullname(a.dircode, 2) dirName
        from lf.sys_meta a