public MapProjection(String name, MapTransform mapTransform, boolean preDefined) { this(name, mapTransform, mapTransform.getDescriptor().getMapUnit(), preDefined); }
public MapProjection(String name, MapTransform mapTransform) { this(name, mapTransform, mapTransform.getDescriptor().getMapUnit()); }
/** * Tests if a user interface is available. The method is a shorthand for * <pre> * getMapTransform().getDescriptor().hasTransformUI(); * </pre> * * @return <code>true</code> if a user interface is available, in this case the {@link #getMapTransformUI} method * never returns null. */ public boolean hasMapTransformUI() { return getMapTransform().getDescriptor().hasTransformUI(); }
/** * Gets a user interface for editing the transformation properties of this map projection. * * @return the user interface or null if editing is not supported. The {@link #hasMapTransformUI()} hasTransformUI} method shall return * <code>false</code> in this case. */ public MapTransformUI getMapTransformUI() { MapTransform mapTransform = getMapTransform(); MapTransformDescriptor descriptor = mapTransform.getDescriptor(); return descriptor.getTransformUI(mapTransform); }
public void resetToDefaults() { Debug.trace("DefaultMapTransformUI.resetToDefaults"); setParameterValues(_transform.getDescriptor().getParameterDefaultValues()); }
private static MathTransform getMathTransform(MapTransform mapTransform) throws FactoryException { if (mapTransform.getDescriptor() instanceof AffineTransformDescriptor) { return new AffineTransform2D(new AffineTransform(mapTransform.getParameterValues())); } if (mapTransform instanceof AlbersEqualAreaConicDescriptor.AEAC) { return createAlbersConicEqualAreaMathTransform((AlbersEqualAreaConicDescriptor.AEAC) mapTransform); } if (mapTransform instanceof LambertConformalConicDescriptor.LCCT) { return createLambertConformalConicMathTransform((LambertConformalConicDescriptor.LCCT) mapTransform); } if (mapTransform instanceof StereographicDescriptor.ST) { return createStereographicMathTransform((StereographicDescriptor.ST) mapTransform); } if (mapTransform instanceof TransverseMercatorDescriptor.TMT) { return createTransverseMercatorMathTransform((TransverseMercatorDescriptor.TMT) mapTransform); } return null; }
private boolean isGeographicLatLon(GeoCoding geoCoding) { if (geoCoding instanceof MapGeoCoding) { MapGeoCoding mapGeoCoding = (MapGeoCoding) geoCoding; MapTransformDescriptor transformDescriptor = mapGeoCoding.getMapInfo() .getMapProjection().getMapTransform().getDescriptor(); String typeID = transformDescriptor.getTypeID(); if (typeID.equals(IdentityTransformDescriptor.TYPE_ID)) { return true; } } else if (geoCoding instanceof CrsGeoCoding) { return CRS.equalsIgnoreMetadata(geoCoding.getMapCRS(), DefaultGeographicCRS.WGS84); } return false; }
/** * Alters the underlying map transformation by changing the values of the transform parameters named * "semi_major" and "semi_minor" (if any) to the ones of the supplied ellipsoid. * * @param ellipsoid the ellipsoid */ public void alterMapTransform(Ellipsoid ellipsoid) { final MapTransform oldTransform = getMapTransform(); final Parameter[] parameters = oldTransform.getDescriptor().getParameters(); final double[] parameterValues = oldTransform.getParameterValues(); boolean altered = false; for (int i = 0; i < parameters.length; i++) { if ("semi_minor".equals(parameters[i].getName())) { parameterValues[i] = ellipsoid.getSemiMinor(); altered = true; } else if ("semi_major".equals(parameters[i].getName())) { parameterValues[i] = ellipsoid.getSemiMajor(); altered = true; } } if (altered) { final MapTransform newTransform = oldTransform.getDescriptor().createTransform(parameterValues); setMapTransform(newTransform); } }
final Parameter[] parameters = mi.getMapProjection().getMapTransform().getDescriptor().getParameters(); final double[] parameterValues = mi.getMapProjection().getMapTransform().getParameterValues(); for (int i = 0; i < parameters.length; i++) {
public MapTransform createTransform() { Debug.trace("DefaultMapTransformUI.createTransform"); traceParameterValues(); final MapTransform transform = _transform.getDescriptor().createTransform(getParameterValues()); final double[] parameterValues = transform.getParameterValues(); for (int i = 0; i < parameterValues.length; i++) { Debug.trace(" MapTransform.parameterValues[" + i + "] = " + parameterValues[i]); } return transform; }
public DefaultMapTransformUI(MapTransform transform) { Guardian.assertNotNull("transform", transform); Debug.trace("DefaultMapTransformUI.init"); _transform = transform; _parameters = cloneParameterArray(transform.getDescriptor().getParameters()); setParameterValues(transform.getParameterValues()); traceParameterValues(); }
@Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj == null) { return false; } if (obj instanceof MapProjection) { MapProjection other = (MapProjection) obj; return ObjectUtils.equalObjects(other.getName(), getName()) && ObjectUtils.equalObjects(other.getMapUnit(), getMapUnit()) && ObjectUtils.equalObjects(other.getMapTransform().getDescriptor(), getMapTransform().getDescriptor()) && ObjectUtils.equalObjects(other.getMapTransform().getParameterValues(), getMapTransform().getParameterValues()); } return false; } }
@Override public void actionPerformed(CommandEvent event) { ProductSceneView view = VisatApp.getApp().getSelectedProductSceneView(); final GeoCoding geoCoding = view.getProduct().getGeoCoding(); boolean isGeographic = false; if (geoCoding instanceof MapGeoCoding) { MapGeoCoding mapGeoCoding = (MapGeoCoding) geoCoding; MapTransformDescriptor transformDescriptor = mapGeoCoding.getMapInfo() .getMapProjection().getMapTransform().getDescriptor(); String typeID = transformDescriptor.getTypeID(); if (typeID.equals(IdentityTransformDescriptor.TYPE_ID)) { isGeographic = true; } } else if(geoCoding instanceof CrsGeoCoding){ isGeographic = CRS.equalsIgnoreMetadata(geoCoding.getMapCRS(), DefaultGeographicCRS.WGS84); } if(isGeographic) { exportImage(view); }else { String message = "Product must be in ''Geographic Lat/Lon'' projection."; VisatApp.getApp().showInfoDialog(message, null); } }
private void writeMapGeoCoding(MapGeoCoding mgc, String nodeType) { final MapInfo mi = mgc.getMapInfo(); addEmptyRow(); addRow("The " + nodeType + " uses a map-projection based geo-coding."); addEmptyRow(); addRow("Projection", mi.getMapProjection().getName()); addRow("Projection parameters"); final Parameter[] parameters = mi.getMapProjection().getMapTransform().getDescriptor().getParameters(); final double[] parameterValues = mi.getMapProjection().getMapTransform().getParameterValues(); for (int i = 0; i < parameters.length; i++) { addRow(parameters[i].getName(), String.valueOf(parameterValues[i]) + " " + parameters[i].getProperties().getPhysicalUnit()); } addEmptyRow(); addRow("Map CRS Name", mgc.getMapCRS().getName().toString()); addRow("Map CRS WKT"); addRow(mgc.getMapCRS().toWKT()); addEmptyRow(); addRow("Output parameters"); addRow("Datum", mi.getDatum().getName()); addRow("Reference pixel X", String.valueOf(mi.getPixelX())); addRow("Reference pixel Y", String.valueOf(mi.getPixelY())); addRow("Orientation", String.valueOf(mi.getOrientation()) + " degree"); String mapUnit = mi.getMapProjection().getMapUnit(); addRow("Northing", String.valueOf(mi.getNorthing()) + " " + mapUnit); addRow("Easting", String.valueOf(mi.getEasting()) + " " + mapUnit); addRow("Pixel size X", String.valueOf(mi.getPixelSizeX()) + " " + mapUnit); addRow("Pixel size Y", String.valueOf(mi.getPixelSizeY()) + " " + mapUnit); }
MapGeoCoding mapGeoCoding = (MapGeoCoding) geoCoding; MapTransformDescriptor transformDescriptor = mapGeoCoding.getMapInfo() .getMapProjection().getMapTransform().getDescriptor(); String typeID = transformDescriptor.getTypeID(); if (typeID.equals(IdentityTransformDescriptor.TYPE_ID)) {
public void testCoordinateReferenceSystems() throws FactoryException { final MapProjection gp = MapProjectionRegistry.getProjection(new IdentityTransformDescriptor().getName()); assertSame(DefaultGeographicCRS.WGS84, CoordinateReferenceSystems.getCRS(gp, Datum.WGS_84)); for (final MapProjection projection : MapProjectionRegistry.getProjections()) { if (!(projection.getMapTransform().getDescriptor() instanceof IdentityTransformDescriptor)) { assertTrue(CoordinateReferenceSystems.getCRS(projection, Datum.ITRF_97) instanceof ProjectedCRS); assertTrue(CoordinateReferenceSystems.getCRS(projection, Datum.WGS_72) instanceof ProjectedCRS); assertTrue(CoordinateReferenceSystems.getCRS(projection, Datum.WGS_84) instanceof ProjectedCRS); } } }
try { final MapTransform mapTransform = mapProjection.getMapTransform(); final MapTransformDescriptor mapTransformDescriptor = mapTransform.getDescriptor(); final Parameter[] parameters = mapTransformDescriptor.getParameters(); for (int i = 0; i < parameters.length; i++) {
assertEquals(true, Arrays.equals(_expValues, actualValues)); final MapTransformDescriptor actualDescriptor = actualTransform.getDescriptor(); assertEquals(LambertConformalConicDescriptor.class, actualDescriptor.getClass());
assertEquals(true, Arrays.equals(expTransform.getParameterValues(), actualValues)); final MapTransformDescriptor actualDescriptor = actualTransform.getDescriptor(); assertEquals(expDescriptor.getClass(), actualDescriptor.getClass());
final MapTransformDescriptor actualDescriptor = actualTransform.getDescriptor(); assertEquals(LambertConformalConicDescriptor.class, actualDescriptor.getClass());