cdm/src/main/java/ucar/unidata/geoloc/ogc/WKTParser.java
public static ProjectionImpl convertWKTToProjection(WKTParser srp) {
    if (!srp.isPlanarProjection()) {
      return new ucar.unidata.geoloc.projection.LatLonProjection();
    } else {
      String projectionType = srp.getProjectionType();
      double falseEasting = 0;
      double falseNorthing = 0;
      ProjectionImpl proj = null;
      if (srp.hasParameter("False_Easting")) {
        falseEasting = srp.getParameter("False_Easting");
      }
      if (srp.hasParameter("False_Northing")) {
        falseNorthing = srp.getParameter("False_Northing");
      }
      if ((falseEasting != 0.0) || (falseNorthing != 0.0)) {
        double scalef = 1.0;
        if (srp.getProjUnitName() != null) {
          try {
            SimpleUnit unit =
                    SimpleUnit.factoryWithExceptions(
                            srp.getProjUnitName());
            scalef = unit.convertTo(srp.getProjUnitValue(),
                    SimpleUnit.kmUnit);
          } catch (Exception e) {
            System.out.println(srp.getProjUnitValue() + " "
                    + srp.getProjUnitName()
                    + " not convertible to km");
          }
        }
        falseEasting *= scalef;
        falseNorthing *= scalef;
      }

      if (srp.getProjName().contains("UTM_Zone_"))
        return processUTM(srp);

      if ("Transverse_Mercator".equals(projectionType)) {
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        double scale = srp.getParameter("Scale_Factor");
        double tangentLon = srp.getParameter("Central_Meridian");
        proj = new TransverseMercator(lat0, tangentLon, scale, falseEasting, falseNorthing);

      } else if ("Lambert_Conformal_Conic".equals(projectionType)) {
        double lon0 = srp.getParameter("Central_Meridian");
        double par1 = srp.getParameter("Standard_Parallel_1");
        double par2 = par1;
        if (srp.hasParameter("Standard_Parallel_2")) {
          par2 = srp.getParameter("Standard_Parallel_2");
        }
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        return new LambertConformal(lat0, lon0, par1, par2, falseEasting, falseNorthing);

      } else if ("Albers".equals(projectionType)) {
        double lon0 = srp.getParameter("Central_Meridian");
        double par1 = srp.getParameter("Standard_Parallel_1");
        double par2 = par1;
        if (srp.hasParameter("Standard_Parallel_2")) {
          par2 = srp.getParameter("Standard_Parallel_2");
        }
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        return new AlbersEqualArea(lat0, lon0, par1, par2, falseEasting, falseNorthing);

      } else if ("Stereographic".equals(projectionType)) {
        double lont = srp.getParameter("Central_Meridian");
        double scale = srp.getParameter("Scale_Factor");
        double latt = srp.getParameter("Latitude_Of_Origin");
        return new Stereographic(latt, lont, scale, falseEasting, falseNorthing);

      } else if ("Mercator".equals(projectionType)) {
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        double lon0 = srp.getParameter("Central_Meridian");
        proj = new Mercator(lon0, lat0, falseEasting, falseNorthing);

      } else if ("Universal_Transverse_Mercator".equals(projectionType)) {
        //throw new java.text.ParseException(
        //    "UTM adapter not implemented yet", 0);
      }
      return proj;
    }

  }
public static ProjectionImpl convertWKTToProjection(WKTParser srp) {
    if (!srp.isPlanarProjection()) {
      return new ucar.unidata.geoloc.projection.LatLonProjection();
    } else {
      String projectionType = srp.getProjectionType();
      double falseEasting = 0;
      double falseNorthing = 0;
      ProjectionImpl proj = null;
      if (srp.hasParameter("False_Easting")) {
        falseEasting = srp.getParameter("False_Easting");
      }
      if (srp.hasParameter("False_Northing")) {
        falseNorthing = srp.getParameter("False_Northing");
      }
      if ((falseEasting != 0.0) || (falseNorthing != 0.0)) {
        double scalef = 1.0;
        if (srp.getProjUnitName() != null) {
          try {
            SimpleUnit unit =
                    SimpleUnit.factoryWithExceptions(
                            srp.getProjUnitName());
            scalef = unit.convertTo(srp.getProjUnitValue(),
                    SimpleUnit.kmUnit);
          } catch (Exception e) {
            System.out.println(srp.getProjUnitValue() + " "
                    + srp.getProjUnitName()
                    + " not convertible to km");
          }
        }
        falseEasting *= scalef;
        falseNorthing *= scalef;
      }

      if (srp.getProjName().contains("UTM_Zone_"))
        return processUTM(srp);

      if ("Transverse_Mercator".equals(projectionType)) {
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        double scale = srp.getParameter("Scale_Factor");
        double tangentLon = srp.getParameter("Central_Meridian");
        proj = new TransverseMercator(lat0, tangentLon, scale, falseEasting, falseNorthing);

      } else if ("Lambert_Conformal_Conic".equals(projectionType)) {
        double lon0 = srp.getParameter("Central_Meridian");
        double par1 = srp.getParameter("Standard_Parallel_1");
        double par2 = par1;
        if (srp.hasParameter("Standard_Parallel_2")) {
          par2 = srp.getParameter("Standard_Parallel_2");
        }
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        return new LambertConformal(lat0, lon0, par1, par2, falseEasting, falseNorthing);

      } else if ("Albers".equals(projectionType)) {
        double lon0 = srp.getParameter("Central_Meridian");
        double par1 = srp.getParameter("Standard_Parallel_1");
        double par2 = par1;
        if (srp.hasParameter("Standard_Parallel_2")) {
          par2 = srp.getParameter("Standard_Parallel_2");
        }
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        return new AlbersEqualArea(lat0, lon0, par1, par2, falseEasting, falseNorthing);

      } else if ("Stereographic".equals(projectionType)) {
        double lont = srp.getParameter("Central_Meridian");
        double scale = srp.getParameter("Scale_Factor");
        double latt = srp.getParameter("Latitude_Of_Origin");
        return new Stereographic(latt, lont, scale, falseEasting, falseNorthing);

      } else if ("Mercator".equals(projectionType)) {
        double lat0 = srp.getParameter("Latitude_Of_Origin");
        double lon0 = srp.getParameter("Central_Meridian");
        proj = new Mercator(lon0, lat0, falseEasting, falseNorthing);

      } else if ("Universal_Transverse_Mercator".equals(projectionType)) {
        //throw new java.text.ParseException(
        //    "UTM adapter not implemented yet", 0);
      }
      return proj;
    }

  }
public static ProjectionImpl convertWKTToProjection ( WKTParser srp ) { if ( ! srp . isPlanarProjection ( ) ) { return new ucar . unidata . geoloc . projection . LatLonProjection ( ) ; } else { String projectionType = srp . getProjectionType ( ) ; double falseEasting = 0 ; double falseNorthing = 0 ; ProjectionImpl proj = null ; if ( srp . hasParameter ( "False_Easting" ) ) { falseEasting = srp . getParameter ( "False_Easting" ) ; } if ( srp . hasParameter ( "False_Northing" ) ) { falseNorthing = srp . getParameter ( "False_Northing" ) ; } if ( ( falseEasting != 0.0 ) || ( falseNorthing != 0.0 ) ) { double scalef = 1.0 ; if ( srp . getProjUnitName ( ) != null ) { try { SimpleUnit unit = SimpleUnit . factoryWithExceptions ( srp . getProjUnitName ( ) ) ; scalef = unit . convertTo ( srp . getProjUnitValue ( ) , SimpleUnit . kmUnit ) ; } catch ( Exception e ) { System . out . println ( srp . getProjUnitValue ( ) + " " + srp . getProjUnitName ( ) + " not convertible to km" ) ; } } falseEasting *= scalef ; falseNorthing *= scalef ; } if ( srp . getProjName ( ) . contains ( "UTM_Zone_" ) ) return processUTM ( srp ) ; if ( "Transverse_Mercator" . equals ( projectionType ) ) { double lat0 = srp . getParameter ( "Latitude_Of_Origin" ) ; double scale = srp . getParameter ( "Scale_Factor" ) ; double tangentLon = srp . getParameter ( "Central_Meridian" ) ; proj = new TransverseMercator ( lat0 , tangentLon , scale , falseEasting , falseNorthing ) ; } else if ( "Lambert_Conformal_Conic" . equals ( projectionType ) ) { double lon0 = srp . getParameter ( "Central_Meridian" ) ; double par1 = srp . getParameter ( "Standard_Parallel_1" ) ; double par2 = par1 ; if ( srp . hasParameter ( "Standard_Parallel_2" ) ) { par2 = srp . getParameter ( "Standard_Parallel_2" ) ; } double lat0 = srp . getParameter ( "Latitude_Of_Origin" ) ; return new LambertConformal ( lat0 , lon0 , par1 , par2 , falseEasting , falseNorthing ) ; } else if ( "Albers" . equals ( projectionType ) ) { double lon0 = srp . getParameter ( "Central_Meridian" ) ; double par1 = srp . getParameter ( "Standard_Parallel_1" ) ; double par2 = par1 ; if ( srp . hasParameter ( "Standard_Parallel_2" ) ) { par2 = srp . getParameter ( "Standard_Parallel_2" ) ; } double lat0 = srp . getParameter ( "Latitude_Of_Origin" ) ; return new AlbersEqualArea ( lat0 , lon0 , par1 , par2 , falseEasting , falseNorthing ) ; } else if ( "Stereographic" . equals ( projectionType ) ) { double lont = srp . getParameter ( "Central_Meridian" ) ; double scale = srp . getParameter ( "Scale_Factor" ) ; double latt = srp . getParameter ( "Latitude_Of_Origin" ) ; return new Stereographic ( latt , lont , scale , falseEasting , falseNorthing ) ; } else if ( "Mercator" . equals ( projectionType ) ) { double lat0 = srp . getParameter ( "Latitude_Of_Origin" ) ; double lon0 = srp . getParameter ( "Central_Meridian" ) ; proj = new Mercator ( lon0 , lat0 , falseEasting , falseNorthing ) ; } else if ( "Universal_Transverse_Mercator" . equals ( projectionType ) ) { //throw new java.text.ParseException(
 //    "UTM adapter not implemented yet", 0);
 } return proj ; } }
Convert OGC spatial reference WKT to a ProjectionImpl.
An IllegalArgumentException may be thrown if a parameter is missing.

@param srp The parsed OGC WKT spatial reference text.
@return The ProjectionImpl class.
@throws java.text.ParseException If the OGIS spatial reference text was not parseable.
Convert OGC spatial reference WKT to a ProjectionImpl . An IllegalArgumentException may be thrown if a parameter is missing .