question: public void loadFromProperties ( Properties properties ) { projected = StringUtil . getBooleanValue ( properties , "ProjectionInfo.Projected" , false , true ) ; tiePoint = StringUtil . getDoubleArray ( properties , "ProjectionInfo.TiePoint" , null , true ) ; scale = StringUtil . getDoubleArray ( properties , "ProjectionInfo.Scale" , null , true ) ; globe = StringUtil . getStringValue ( properties , "ProjectionInfo.Globe" , null , true ) ; rasterWidth = StringUtil . getIntegerValue ( properties , "ProjectionInfo.RasterWidth" , true , 0 , true ) ; rasterLength = StringUtil . getIntegerValue ( properties , "ProjectionInfo.RasterLength" , true , 0 , true ) ; datumCode = StringUtil . getIntegerValue ( properties , "ProjectionInfo.DatumCode" , true , 0 , false ) ; ellipsoidCode = StringUtil . getIntegerValue ( properties , "ProjectionInfo.DatumCode" , true , 0 , false ) ; semiMajorAxis = StringUtil . getDoubleValue ( properties , "ProjectionInfo.SemiMajorAxis" , true , Double . NaN , false ) ; semiMinorAxis = StringUtil . getDoubleValue ( properties , "ProjectionInfo.SemiMinorAxis" , true , Double . NaN , false ) ; inverseFlattening = StringUtil . getDoubleValue ( properties , "ProjectionInfo.InverseFlattening" , false , Double . NaN , false ) ; gcsPrimeMeridianLon = StringUtil . getDoubleValue ( properties , "ProjectionInfo.GCSPrimeMeridianLon" , false , Double . NaN , false ) ; projCode = StringUtil . getIntegerValue ( properties , "ProjectionInfo.ProjectionCode" , true , 0 , false ) ; pcsCode = StringUtil . getIntegerValue ( properties , "ProjectionInfo.ProjectionCoordinateSystemCode" , true , 0 , false ) ; coordTransformCode = StringUtil . getIntegerValue ( properties , "ProjectionInfo.CoordTransformCode" , true , 0 , false ) ; stdParallel1 = StringUtil . getDoubleValue ( properties , "ProjectionInfo.StdParallel1" , false , Double . NaN , false ) ; poleLat = ( int ) ( Math . signum ( stdParallel1 ) * 90 ) ; stdParallel2 = StringUtil . getDoubleValue ( properties , "ProjectionInfo.StdParallel1" , false , Double . NaN , false ) ; naturalOriginLon = StringUtil . getDoubleValue ( properties , "ProjectionInfo.NaturalOriginLon" , false , Double . NaN , false ) ; naturalOriginLat = StringUtil . getDoubleValue ( properties , "ProjectionInfo.NaturalOriginLat" , false , Double . NaN , false ) ; falseOriginLon = StringUtil . getDoubleValue ( properties , "ProjectionInfo.FalseOriginLon" , false , Double . NaN , false ) ; falseOriginLat = StringUtil . getDoubleValue ( properties , "ProjectionInfo.FalseOriginLat" , false , Double . NaN , false ) ; falseEasting = StringUtil . getDoubleValue ( properties , "ProjectionInfo.FalseEasting" , false , Double . NaN , false ) ; falseNorthing = StringUtil . getDoubleValue ( properties , "ProjectionInfo.FalseNorthing" , false , Double . NaN , false ) ; centerEasting = StringUtil . getDoubleValue ( properties , "ProjectionInfo.CenterEasting" , false , Double . NaN , false ) ; centerNorthing = StringUtil . getDoubleValue ( properties , "ProjectionInfo.CenterNorthing" , false , Double . NaN , false ) ; centerLon = StringUtil . getDoubleValue ( properties , "ProjectionInfo.CenterLon" , false , Double . NaN , false ) ; centerLat = StringUtil . getDoubleValue ( properties , "ProjectionInfo.CenterLat" , false , Double . NaN , false ) ; scaleAtNaturalOrigin = StringUtil . getDoubleValue ( properties , "ProjectionInfo.ScaleAtNaturalOrigin" , false , Double . NaN , false ) ; scaleAtCenter = StringUtil . getDoubleValue ( properties , "ProjectionInfo.ScaleAtCenter" , false , Double . NaN , false ) ; azimuth = StringUtil . getDoubleValue ( properties , "ProjectionInfo.Azimuth" , false , Double . NaN , false ) ; straightVertPoleLon = StringUtil . getDoubleValue ( properties , "ProjectionInfo.StraightVertPoleLon" , false , Double . NaN , false ) ; gcsCitation = StringUtil . getStringValue ( properties , "ProjectionInfo.GCSCitation" , null , false ) ; pcsCitation = StringUtil . getStringValue ( properties , "ProjectionInfo.PCSCitation" , null , false ) ; projLinearUnits = StringUtil . getStringValue ( properties , "ProjectionInfo.ProjLinearUnits" , "meter" , false ) ; if ( coordTransformCode == GeoKey . Code_Undefined ) { String citation = ( pcsCitation == null ? "" : pcsCitation . toLowerCase ( ) ) ; if ( citation . contains ( "mercator" ) && ( citation . contains ( "web" ) || citation . contains ( "pseudo" ) || citation . contains ( "global" ) ) ) { coordTransformCode = GeoKey . Code_CT_Mercator ; if ( Double . isNaN ( naturalOriginLon ) ) naturalOriginLon = 0 ; if ( Double . isNaN ( falseEasting ) ) falseEasting = 0 ; if ( Double . isNaN ( falseNorthing ) ) falseNorthing = 0 ; if ( citation . contains ( "auxiliary" ) && citation . contains ( "sphere" ) ) { if ( ! Double . isNaN ( semiMajorAxis ) ) semiMinorAxis = semiMajorAxis ; else { semiMajorAxis = SEMI_MAJOR_AXIS [ 0 ] ; semiMinorAxis = SEMI_MINOR_AXIS [ 0 ] ; } } } } }
target:  Load contents from a properties object