package com.moon.server.entity.shujian; import com.moon.server.helper.StringHelper; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 数简.创建图层类 * @author WWW * @date 2023-08-30 */ @SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") public class CreateLayerEntity implements Serializable { private static final long serialVersionUID = 8392354493626395905L; /** * 图层信息 */ private Layer layer; /** * 影像目录列表 */ private List image_path_list; /** * 影像列表 */ private List image_list; /** * 金字塔配置 */ private ImageOvr image_ovr; /** * 创建服务 */ private Integer create_service; public CreateLayerEntity() { create_service = 0; layer = new Layer(); image_ovr = new ImageOvr(); image_list = new ArrayList<>(); image_path_list = new ArrayList<>(); } public Layer getLayer() { return layer; } public void setLayer(Layer layer) { this.layer = layer; } public List getImage_path_list() { return image_path_list; } public void setImage_path_list(List image_path_list) { this.image_path_list = image_path_list; } public List getImage_list() { return image_list; } public void setImage_list(List image_list) { this.image_list = image_list; } public ImageOvr getImage_ovr() { return image_ovr; } public void setImage_ovr(ImageOvr image_ovr) { this.image_ovr = image_ovr; } public Integer getCreate_service() { return create_service; } public void setCreate_service(Integer create_service) { this.create_service = create_service; } /** * 图层信息 */ public class Layer { /** * 名称 */ private String name; /** * nodata设置,数组,数组大小和波段数等同 */ private List nodata; /** * 投影或者坐标:EPSG:4326 */ private String projection; /** * 透明色,默认:"-1,-1,-1" */ private String trans_color; /** * 输出波段,默认:"1,2,3" */ private String tile_rgb; /** * 图层类型。0:普通,1:DEM图层 */ private Integer type; /** * 拉伸方式 0:不拉伸, 1 线性拉伸, 2 直方图均衡, 3 标准差拉伸, 4 伽马拉伸 */ private Integer enhance_type; /** * 直方图统计方式,0:普通,1:精细 */ private Integer stats_type; /** * 图层起始比例尺:1000000000 */ private Double start_scale; /** * 图层结束比例尺:1 */ private Double end_scale; /** * 发布信息,默认为"{}" */ private Object pub_config; /** * 图层和影像相关的配置,默认"{}",配置内容包括但不限于:处理过程、边界控制方法 */ private Config config; /** * 拉伸因子,配合 enhance_factor使用 */ private String enhance_factor; /** * 边界计算方式 0外包,1, 内接, 2 精准 */ private Integer boundary_cal_mode; public Layer() { end_scale = 1.0; start_scale = 1000000000.0; stats_type = 1; enhance_type = 0; boundary_cal_mode = 0; pub_config = new Object(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public List getNodata() { return nodata; } public void setNodata(List nodata) { this.nodata = nodata; } public String getProjection() { return projection; } public void setProjection(String projection) { this.projection = projection; } public String getTrans_color() { return trans_color; } public void setTrans_color(String trans_color) { this.trans_color = trans_color; } public String getTile_rgb() { return tile_rgb; } public void setTile_rgb(String tile_rgb) { this.tile_rgb = tile_rgb; } public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } public Integer getEnhance_type() { return enhance_type; } public void setEnhance_type(Integer enhance_type) { this.enhance_type = enhance_type; } public Integer getStats_type() { return stats_type; } public void setStats_type(Integer stats_type) { this.stats_type = stats_type; } public Double getStart_scale() { return start_scale; } public void setStart_scale(Double start_scale) { this.start_scale = start_scale; } public Double getEnd_scale() { return end_scale; } public void setEnd_scale(Double end_scale) { this.end_scale = end_scale; } public Object getPub_config() { return pub_config; } public void setPub_config(Object pub_config) { this.pub_config = pub_config; } public Config getConfig() { return config; } public void setConfig(Config config) { this.config = config; } public String getEnhance_factor() { return enhance_factor; } public void setEnhance_factor(String enhance_factor) { this.enhance_factor = enhance_factor; } public Integer getBoundary_cal_mode() { return boundary_cal_mode; } public void setBoundary_cal_mode(Integer boundary_cal_mode) { this.boundary_cal_mode = boundary_cal_mode; } } /** * 影像目录列表 */ public class ImagePathList { /** * 数据源:当前只能为Local */ private String datasource; /** * 目录 */ private String path; /** * 0:不递归枷锁,1:递归检索 */ private Integer recursion; /** * 影像时间 */ private String image_time; /** * 过滤器组列表:["a.tif|b.tif"] */ private List filter; /** * 属性过滤 */ private Object attr_filter; public ImagePathList() { datasource = "Local"; recursion = 0; image_time = null; } public String getDatasource() { return datasource; } public void setDatasource(String datasource) { this.datasource = datasource; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public Integer getRecursion() { return recursion; } public void setRecursion(Integer recursion) { this.recursion = recursion; } public String getImage_time() { return image_time; } public void setImage_time(String image_time) { this.image_time = image_time; } public List getFilter() { return filter; } public void setFilter(List filter) { this.filter = filter; } public Object getAttr_filter() { return attr_filter; } public void setAttr_filter(Object attr_filter) { this.attr_filter = attr_filter; } } /** * 影像列表 */ public class ImageList { /** * 数据源:当前只能为Local */ private String datasource; /** * 影像目录 */ private String path; /** * 影像时间 */ private String image_time; /** * 属性过滤 */ private Object attr_filter; public ImageList() { } public String getDatasource() { return datasource; } public void setDatasource(String datasource) { this.datasource = datasource; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String getImage_time() { return image_time; } public void setImage_time(String image_time) { this.image_time = image_time; } public Object getAttr_filter() { return attr_filter; } public void setAttr_filter(Object attr_filter) { this.attr_filter = attr_filter; } } /** * 金字塔配置 */ public class ImageOvr { /** * 0:集中生成和存储金字塔,1:与数据在同一目录 */ private Integer same_path; /** * 0:有金字塔忽略,1:强制删除金字塔重新创建 */ private Integer force_del; /** * 采样算法,0:最近邻,1:双线性插值,2:三次卷积,3:三次样条插值 */ private Integer sample_type; public ImageOvr() { same_path = 1; force_del = 0; sample_type = 0; } public Integer getSame_path() { return same_path; } public void setSame_path(Integer same_path) { this.same_path = same_path; } public Integer getForce_del() { return force_del; } public void setForce_del(Integer force_del) { this.force_del = force_del; } public Integer getSample_type() { return sample_type; } public void setSample_type(Integer sample_type) { this.sample_type = sample_type; } } /** * 颜色表配置 */ public class Config { private Process process; public Config(Integer type, List levels) { process = new Process(type, levels); } public Process getProcess() { return process; } public void setProcess(Process process) { this.process = process; } } /** * 处理层级 */ public class Process { private String uuid; private String name; private Map config; public Process() { uuid = StringHelper.getGuid(); name = "color_table"; config = new HashMap<>(); config.put("default", new Default()); } /** * 处理过程 * * @param type 0-默认色板,1-渐变色板 * @param levels 层级 */ public Process(Integer type, List levels) { this(); config.put("type", type); config.put("levels", levels); } /** * 设置颜色表 */ public void SetColorTable(Integer type, List levels) { config.put("type", type); config.put("levels", levels); } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Map getConfig() { return config; } public void setConfig(Map config) { this.config = config; } } /** * 颜色表默认配置 */ public class Default { private Short r; private Short g; private Short b; public Default() { r = -1; b = -1; g = -1; } public Short getR() { return r; } public void setR(Short r) { this.r = r; } public Short getG() { return g; } public void setG(Short g) { this.g = g; } public Short getB() { return b; } public void setB(Short b) { this.b = b; } } }