gcube-cms-suite/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/document/filesets/GCubeSDILayer.java

69 lines
2.4 KiB
Java
Raw Normal View History

2022-02-14 12:23:13 +01:00
package org.gcube.application.geoportal.common.model.document.filesets;
import lombok.Data;
import lombok.NoArgsConstructor;
2022-02-18 18:12:02 +01:00
import org.bson.Document;
2022-02-14 12:23:13 +01:00
import java.util.List;
public class GCubeSDILayer extends Materialization{
@Data
@NoArgsConstructor
2022-02-18 18:12:02 +01:00
public static class BBOX extends Document {
2022-02-14 12:23:13 +01:00
public static final BBOX WORLD=new BBOX(180d,90d,-180d,-90d);
2022-02-23 17:13:22 +01:00
public static final BBOX WORLD_3D=new BBOX(180d,90d,-180d,-90d);
2022-02-14 12:23:13 +01:00
2022-02-23 17:13:22 +01:00
public static final String MAX_X="_maxX";
public static final String MAX_Y="_maxY";
public static final String MAX_Z="_maxZ";
public static final String MIN_X="_minX";
public static final String MIN_Y="_minY";
public static final String MIN_Z="_minZ";
public BBOX(Double maxX,Double minX,Double maxY,Double minY,Double maxZ,Double minZ){
this(maxX,minX,maxY,minY);
setMaxZ(maxZ);
setMinZ(minZ);
}
public BBOX(Double maxX,Double minX,Double maxY,Double minY){
2022-02-18 18:12:02 +01:00
setMaxX(maxX);
setMinX(minX);
setMaxY(maxY);
setMinY(minY);
2022-02-14 12:23:13 +01:00
}
2022-02-18 18:12:02 +01:00
public void setMaxX(Double d){this.put(MAX_X,d);}
public void setMaxY(Double d){this.put(MAX_Y,d);}
2022-02-23 17:13:22 +01:00
public void setMaxZ(Double d){this.put(MAX_Z,d);}
2022-02-18 18:12:02 +01:00
public void setMinX(Double d){this.put(MIN_X,d);}
public void setMinY(Double d){this.put(MIN_Y,d);}
2022-02-23 17:13:22 +01:00
public void setMinZ(Double d){this.put(MIN_Z,d);}
2022-02-18 18:12:02 +01:00
public Double getMinY(){return (Double) this.getOrDefault(MIN_Y,-90d);}
public Double getMaxY(){return (Double) this.getOrDefault(MAX_Y,90d);}
public Double getMinX(){return (Double) this.getOrDefault(MIN_X,-180d);}
public Double getMaxX(){return (Double) this.getOrDefault(MAX_X,180d);}
2022-02-23 17:13:22 +01:00
public Double getMinZ(){return (Double) this.getOrDefault(MIN_Z,null);}
public Double getMaxZ(){return (Double) this.getOrDefault(MAX_Z,null);}
2022-02-18 18:12:02 +01:00
2022-02-14 12:23:13 +01:00
}
public static final String GCUBE_SDY_LAYER_TYPE="gcube-sdi-layer";
2022-02-18 18:12:02 +01:00
public static final String OGC_LINKS="_ogcLinks";
public static final String B_BOX = "_bbox";
public static final String PLATFORM_INFO="_platformInfo";
2022-02-14 12:23:13 +01:00
public GCubeSDILayer(){
super(GCUBE_SDY_LAYER_TYPE);
}
public List getOGCLinks(){return this.get(OGC_LINKS, List.class);}
2022-02-24 18:09:30 +01:00
public Object getBBox(){return this.get(B_BOX);}
2022-02-14 12:23:13 +01:00
public List getPlatformInfo(){return this.get(PLATFORM_INFO,List.class);}
}