package org.geotoolkit.pending.demo.coverage; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; import org.opengis.coverage.Coverage; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.apache.sis.geometry.GeneralEnvelope; import org.apache.sis.internal.referencing.GeodeticObjectBuilder; import org.apache.sis.referencing.CommonCRS; import org.geotoolkit.coverage.CoverageStack; import org.geotoolkit.coverage.grid.GridCoverage2D; import org.geotoolkit.coverage.grid.GridCoverageBuilder; import org.geotoolkit.style.DefaultStyleFactory; import org.geotoolkit.style.MutableStyleFactory; import org.geotoolkit.style.RandomStyleBuilder; public class CustomCoverageNDDemo { private static final MutableStyleFactory SF = new DefaultStyleFactory(); public static void main(String[] args) throws Exception { final GridCoverageBuilder gcb = new GridCoverageBuilder(); final CoordinateReferenceSystem crs = new GeodeticObjectBuilder().addName("4D crs") .createCompoundCRS(CommonCRS.WGS84.geographic(), CommonCRS.Vertical.ELLIPSOIDAL.crs(), CommonCRS.Temporal.JAVA.crs()); List<Coverage> temps = new ArrayList<>(); for(int i=0; i<10; i++){ final List<Coverage> eles = new ArrayList<>(); for(int k=0;k<10;k++){ GeneralEnvelope env = new GeneralEnvelope(crs); env.setRange(0, 0, 10); env.setRange(1, 0, 10); env.setRange(2, k, k+1); env.setRange(3, i, i+1); BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB); final Graphics2D g = img.createGraphics(); g.setColor(RandomStyleBuilder.randomColor() ); g.fillRect(0, 0, 100, 100); gcb.setEnvelope(env); gcb.setRenderedImage(img); GridCoverage2D coverage = gcb.getGridCoverage2D(); eles.add(coverage); } temps.add(new CoverageStack("3D", eles)); } CoverageStack coverage4D = new CoverageStack("4D", temps); System.out.println(coverage4D.getEnvelope()); } }