Index: org.gvsig.projection.jcrs.lib/src/main/java/org/gvsig/crs/Proj4.java =================================================================== --- org.gvsig.projection.jcrs.lib/src/main/java/org/gvsig/crs/Proj4.java (revisione 263) +++ org.gvsig.projection.jcrs.lib/src/main/java/org/gvsig/crs/Proj4.java (copia locale) @@ -46,11 +46,13 @@ import javax.units.ConversionException; import javax.units.Unit; +import org.geotools.referencing.CRS; import org.geotools.referencing.crs.DefaultGeographicCRS; import org.geotools.referencing.crs.DefaultProjectedCRS; import org.geotools.referencing.datum.DefaultGeodeticDatum; import org.geotools.referencing.datum.DefaultPrimeMeridian; import org.opengis.metadata.Identifier; +import org.opengis.referencing.NoSuchAuthorityCodeException; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.datum.Ellipsoid; import org.opengis.referencing.datum.PrimeMeridian; @@ -3383,6 +3385,8 @@ } } String strProjectionAcronym=projectionAcronym[0]; + if(isSomerc) + strProjectionAcronym="somerc"; String strExtraProj4=""; // Control de casos especiales boolean isLaborde=false; @@ -3590,6 +3594,11 @@ control=false; if(parameterName.equals("azimuth")) control=false; + //Parameters for EPSG:21781 + if(parameterAcronym.equals("lonc")) + parameterAcronym="lon_0"; + if(parameterAcronym.equals("k")) + parameterAcronym="k_0"; } if(isOmerc) { @@ -3926,9 +3935,13 @@ if(projectionName.equals("Oblique_Mercator")) { isOmerc=true; - // TODO Set isSomerc as true for EPSG:21781 - //if (crs.getCode()==21781) - // isSomerc=true; + try { + if (crs==CRS.decode("EPSG:21781")) + isSomerc=true; + } catch (NoSuchAuthorityCodeException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } for(int j=0;j