月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-09-03 abcbbbe1efad6f7eab14424f7bbd38fabd41ad6a
src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -3,10 +3,12 @@
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.*;
import com.moon.server.helper.HttpHelper;
import com.moon.server.helper.PathHelper;
import com.moon.server.helper.RestHelper;
import com.moon.server.helper.StringHelper;
import org.apache.commons.logging.Log;
@@ -21,9 +23,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 +32,23 @@
@Service
public class ShuJianService {
    @Value("${shujian.ak}")
    private String ak;
    String ak;
    @Value("${shujian.url}")
    private String sjUrl;
    String sjUrl;
    @Resource
    PathHelper pathHelper;
    @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,30 +92,66 @@
    /**
     * 创建图层实体类
     */
    public CreateLayerEntity createLayerEntity(PubEntity pubEntity) {
        CreateLayerEntity entity = new CreateLayerEntity(1, 3);
    public CreateLayerEntity createLayerEntity(PubEntity pub) {
        String ids = StringHelper.join(pub.getIds(), ",");
        List<MetaEntity> metas = 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(getEpsg(pub));
        layer.setType(TYPES.indexOf(pub.getType()));
        layer.setEnhance_type(pub.getEnhanceType());
        layer.setNodata(getNoData(pub, metas));
        CreateLayerEntity.ImagePathList imagePathList = entity.getImage_path_list().get(0);
        imagePathList.setPath("");
        imagePathList.setPath(pathHelper.getConfig().getUploadPath());
        List<CreateLayerEntity.ImageList> imageLists = entity.getImage_list();
        CreateLayerEntity.ImageList imageList = imageLists.get(0);
        imageList.setPath("");
        for (MetaEntity meta : metas) {
            CreateLayerEntity.ImageList imageList = entity.new ImageList();
            imageList.setPath(meta.getPath());
            imageLists.add(imageList);
        }
        return entity;
    }
    /**
     * 获取EPSG编码
     */
    public String getEpsg(PubEntity pub) {
        if (StaticData.I104903 == pub.getEpsgCode()) {
            return "ESRI:" + pub.getEpsgCode();
        }
        return "EPSG:" + pub.getEpsgCode();
    }
    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;
    }
    /**
@@ -168,7 +212,7 @@
        entity.setName(pub.getName());
        entity.setMin(pub.getMin());
        entity.setMax(pub.getMax());
        entity.setBak(getEpsg(pub));
        entity.setEpsg(pub.getEpsgCode());
        entity.setCreateUser(pub.getUserId());
        entity.setDirid(pub.getDircode());
        entity.setDepid(pub.getDepcode());
@@ -178,17 +222,6 @@
        entity.setJson(getColorTableJson(pub));
        return entity;
    }
    /**
     * 获取EPSG编码
     */
    public String getEpsg(PubEntity pub) {
        if (StaticData.I104903 == pub.getEpsgCode()) {
            return "ESRI:" + pub.getEpsgCode();
        }
        return "EPSG:" + pub.getEpsgCode();
    }
    /**