package org.geotoolkit.pending.demo.referencing; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.crs.TemporalCRS; import org.opengis.referencing.crs.VerticalCRS; import org.apache.sis.internal.referencing.GeodeticObjectBuilder; import org.apache.sis.referencing.CRS; import org.apache.sis.referencing.CommonCRS; import org.geotoolkit.pending.demo.Demos; /** * @author Johann Sorel */ public class Projection4D { /** * Geotoolkit is cable to handle multidimentionnal CRS. * The EPSG authority define a few CRS with temporal or vertical axis. * This exemple shows how to create a CRS from a 2D CRS and adding two axis. */ public static void main(String[] args) throws Exception{ Demos.init(); final CoordinateReferenceSystem crs2D = CRS.forCode("EPSG:27582"); TemporalCRS temporalAxis = CommonCRS.Temporal.JULIAN.crs(); VerticalCRS verticalAxis = CommonCRS.Vertical.MEAN_SEA_LEVEL.crs(); final CoordinateReferenceSystem crs4D = new GeodeticObjectBuilder().addName("MyCRS4D") .createCompoundCRS(crs2D, temporalAxis, verticalAxis); System.out.println(crs4D); //convinient methods to extract vertical and temporal axis from a CRS. verticalAxis = CRS.getVerticalComponent(crs4D, false); temporalAxis = CRS.getTemporalComponent(crs4D); System.out.println(verticalAxis); System.out.println(temporalAxis); } }