diff --git a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/innerobject/BBOXDV.java b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/innerobject/BBOXDV.java index 7689059..d525990 100644 --- a/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/innerobject/BBOXDV.java +++ b/src/main/java/org/gcube/application/geoportalcommon/shared/geoportal/materialization/innerobject/BBOXDV.java @@ -2,9 +2,9 @@ package org.gcube.application.geoportalcommon.shared.geoportal.materialization.i import java.util.HashMap; -public class BBOXDV extends HashMap{ +public class BBOXDV extends HashMap { - /** + /** * */ private static final long serialVersionUID = -160255589938251081L; @@ -12,98 +12,148 @@ public class BBOXDV extends HashMap{ public BBOXDV() { } - - public final String asGeoJSONBBox(){ - StringBuilder builder = new StringBuilder("["); - builder.append(getMaxX()+","); // W - builder.append(getMinY()+","); // S - if(is3d()) builder.append(getMinZ()+","); // Z + public final String asGeoJSONBBox() { + StringBuilder builder = new StringBuilder("["); + builder.append(getMaxX() + ","); // W + builder.append(getMinY() + ","); // S + if (is3d()) + builder.append(getMinZ() + ","); // Z - builder.append(getMinX()+","); // E - builder.append(getMaxY()+","); // N - if(is3d()) builder.append(getMaxZ()+","); // Z + builder.append(getMinX() + ","); // E + builder.append(getMaxY() + ","); // N + if (is3d()) + builder.append(getMaxZ() + ","); // Z + builder.deleteCharAt(builder.length()); + builder.append("]"); + return builder.toString(); + } - builder.deleteCharAt(builder.length()); - builder.append("]"); - return builder.toString(); - } - public double[] asGeoJSONArray(){ - if(is3d()){ - return new double[]{getMaxX(),getMinY(),getMinZ(),getMinX(),getMaxY(),getMaxZ()}; - }else return new double[]{getMaxX(),getMinY(),getMinX(),getMaxY()}; - } + public double[] asGeoJSONArray() { + if (is3d()) { + return new double[] { getMaxX(), getMinY(), getMinZ(), getMinX(), getMaxY(), getMaxZ() }; + } else + return new double[] { getMaxX(), getMinY(), getMinX(), getMaxY() }; + } - public static final BBOXDV fromGeoJSON(double[] coords){ - BBOXDV toReturn = new BBOXDV(); - toReturn.setMaxX(coords[0]); - toReturn.setMinY(coords[1]); + public static final BBOXDV fromGeoJSON(double[] coords) { + BBOXDV toReturn = new BBOXDV(); + toReturn.setMaxX(coords[0]); + toReturn.setMinY(coords[1]); - if(coords.length == 6){ - // 3D - toReturn.setMinZ(coords[2]); - toReturn.setMinX(coords[3]); - toReturn.setMaxY(coords[4]); - toReturn.setMaxZ(coords[5]); - }else { - toReturn.setMinX(coords[2]); - toReturn.setMaxY(coords[3]); - } - return toReturn; - } + if (coords.length == 6) { + // 3D + toReturn.setMinZ(coords[2]); + toReturn.setMinX(coords[3]); + toReturn.setMaxY(coords[4]); + toReturn.setMaxZ(coords[5]); + } else { + toReturn.setMinX(coords[2]); + toReturn.setMaxY(coords[3]); + } + return toReturn; + } - public static final BBOXDV WORLD=new BBOXDV(180d,-180d,90d,-90d); + public static final BBOXDV WORLD = new BBOXDV(180d, -180d, 90d, -90d); - public static final BBOXDV WORLD_3D=new BBOXDV(180d,-180d,90d,-90d); + public static final BBOXDV WORLD_3D = new BBOXDV(180d, -180d, 90d, -90d); - 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 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 BBOXDV(Double maxX, Double minX, Double maxY, Double minY, Double maxZ, Double minZ) { + this(maxX, minX, maxY, minY); + setMaxZ(maxZ); + setMinZ(minZ); + } - public BBOXDV(Double maxX,Double minX,Double maxY,Double minY,Double maxZ,Double minZ){ - this(maxX,minX,maxY,minY); - setMaxZ(maxZ); - setMinZ(minZ); - } - public BBOXDV(Double maxX,Double minX,Double maxY,Double minY){ - setMaxX(maxX); - setMinX(minX); - setMaxY(maxY); - setMinY(minY); - } + public BBOXDV(Double maxX, Double minX, Double maxY, Double minY) { + setMaxX(maxX); + setMinX(minX); + setMaxY(maxY); + setMinY(minY); + } - - public BBOXDV setMaxX(Double d){this.put(MAX_X,d);return this;} - - public BBOXDV setMaxY(Double d){this.put(MAX_Y,d);return this;} - - public BBOXDV setMaxZ(Double d){this.put(MAX_Z,d);return this;} - - public BBOXDV setMinX(Double d){this.put(MIN_X,d);return this;} - - public BBOXDV setMinY(Double d){this.put(MIN_Y,d);return this;} - - public BBOXDV setMinZ(Double d){this.put(MIN_Z,d);return this;} - - 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);} - - public Double getMinZ(){return (Double) this.getOrDefault(MIN_Z,null);} - - public Double getMaxZ(){return (Double) this.getOrDefault(MAX_Z,null);} + public BBOXDV setMaxX(Double d) { + this.put(MAX_X, d); + return this; + } - - public Boolean is3d(){ - return getMinZ()!=null && getMaxZ() !=null; - } + public BBOXDV setMaxY(Double d) { + this.put(MAX_Y, d); + return this; + } + + public BBOXDV setMaxZ(Double d) { + this.put(MAX_Z, d); + return this; + } + + public BBOXDV setMinX(Double d) { + this.put(MIN_X, d); + return this; + } + + public BBOXDV setMinY(Double d) { + this.put(MIN_Y, d); + return this; + } + + public BBOXDV setMinZ(Double d) { + this.put(MIN_Z, d); + return this; + } + + public Double getMinY() { + try { + return Double.valueOf(this.get(MIN_Y)); + } catch (Exception e) { + + } + return new Double(-90d); + } + + public Double getMaxY() { + try { + return Double.valueOf(this.get(MAX_Y)); + } catch (Exception e) { + + } + return new Double(90d); + } + + public Double getMinX() { + try { + return Double.valueOf(this.get(MIN_X)); + } catch (Exception e) { + + } + return new Double(-180d); + } + + public Double getMaxX() { + try { + return Double.valueOf(this.get(MAX_X)); + } catch (Exception e) { + + } + return new Double(180d); + } + + public Double getMinZ() { + return (Double) this.getOrDefault(MIN_Z, null); + } + + public Double getMaxZ() { + return (Double) this.getOrDefault(MAX_Z, null); + } + + public Boolean is3d() { + return getMinZ() != null && getMaxZ() != null; + } } \ No newline at end of file