public static string FormatSpatialReference(ISpatialReference sr)
 {
     try
     {
         if (sr == null)
         {
             return "";
         }
         StringBuilder builder = new StringBuilder();
         if (sr is UnknownCoordinateSystemClass)
         {
             builder.Append("UnknownCoordinateSystem");
         }
         else
         {
             if (sr.Name == "Unknown")
             {
                 builder.Append("UnknownCoordinateSystem");
             }
             else
             {
                 IGeographicCoordinateSystem system2;
                 if (sr is IProjectedCoordinateSystem)
                 {
                     Exception exception;
                     IProjectedCoordinateSystem system = sr as IProjectedCoordinateSystem;
                     builder.Append("投影坐标系:\n");
                     builder.Append("  Name:").Append(system.Name).Append("\n");
                     builder.Append("  Alias:").Append(system.Alias).Append("\n");
                     builder.Append("  Abbreviation:").Append(system.Abbreviation).Append("\n");
                     builder.Append("  Remarks:").Append(system.Remarks).Append("\n");
                     builder.Append("投影:").Append(system.Projection.Name).Append("\n");
                     builder.Append("投影参数:\n");
                     builder.Append("   False_Easting:").Append(system.FalseEasting).Append("\n");
                     builder.Append("   False_Northing:").Append(system.FalseNorthing).Append("\n");
                     builder.Append("   Central_Meridian:").Append(system.get_CentralMeridian(true)).Append("\n");
                     try
                     {
                         builder.Append("   Scale_Factor:").Append(system.ScaleFactor).Append("\n");
                     }
                     catch { }
                     builder.Append("   Latitude_Of_Origin:0\n");
                     builder.Append("Linear Unit:").Append(system.CoordinateUnit.Name).Append("(").Append(system.CoordinateUnit.MetersPerUnit).Append(")\n");
                     builder.Append("Geographic Coordinate System:\n");
                     system2 = system.GeographicCoordinateSystem;
                     builder.Append("  Name:").Append(system2.Name).Append("\n");
                     builder.Append("  Alias:").Append(system2.Alias).Append("\n");
                     builder.Append("  Abbreviation:").Append(system2.Abbreviation).Append("\n");
                     builder.Append("  Remarks:").Append(system2.Remarks).Append("\n");
                     builder.Append("  Angular Unit:").Append(system2.CoordinateUnit.Name).Append("(").Append(system2.CoordinateUnit.RadiansPerUnit).Append(")\n");
                     builder.Append("  Prime Meridian:").Append(system2.PrimeMeridian.Name).Append("(").Append(system2.PrimeMeridian.Longitude).Append(")\n");
                     builder.Append("  Datum:").Append(system2.Datum.Name).Append("\n");
                     builder.Append("    Spheroid:").Append(system2.Datum.Spheroid.Name).Append("\n");
                     builder.Append("      Semimajor Axis:").Append(system2.Datum.Spheroid.SemiMajorAxis).Append("\n");
                     builder.Append("      Semiminor Axis:").Append(system2.Datum.Spheroid.SemiMinorAxis).Append("\n");
                     builder.Append("      Inverse Flattening:").Append((double)(1.0 / system2.Datum.Spheroid.Flattening)).Append("\n");
                     builder.Append("X/Y Domain:\n");
                     try
                     {
                         double num = 0.0;
                         double num2 = 0.0;
                         double num3 = 0.0;
                         double num4 = 0.0;
                         double num5 = 0.0;
                         sr.GetDomain(out num, out num3, out num2, out num4);
                         sr.GetFalseOriginAndUnits(out num, out num2, out num5);
                         builder.Append(" Min X:").Append(num).Append("\n");
                         builder.Append(" Min Y:").Append(num2).Append("\n");
                         builder.Append(" Max X:").Append(num3).Append("\n");
                         builder.Append(" Max Y:").Append(num4).Append("\n");
                         builder.Append(" XYScale:").Append(num5).Append("\n");
                         builder.Append("\n");
                     }
                     catch (Exception exception1)
                     {
                         exception = exception1;
                     }
                     builder.Append("Z Domain:\n");
                     try
                     {
                         double num6;
                         double num7;
                         double num8 = 0.0;
                         sr.GetZDomain(out num6, out num7);
                         sr.GetZFalseOriginAndUnits(out num6, out num8);
                         builder.Append("  Min Z:").Append(num6).Append("\n");
                         builder.Append("  Max Z:").Append(num7).Append("\n");
                         builder.Append("  ZScale:").Append(num8).Append("\n");
                         builder.Append("\n");
                     }
                     catch (Exception exception2)
                     {
                         exception = exception2;
                     }
                     try
                     {
                         double num9;
                         double num10;
                         builder.Append("M Domain:\n");
                         double num11 = 0.0;
                         sr.GetMDomain(out num9, out num10);
                         sr.GetMFalseOriginAndUnits(out num9, out num11);
                         builder.Append("  Min M:").Append(num9).Append("\n");
                         builder.Append("  Max M:").Append(num10).Append("\n");
                         builder.Append("  MScale:").Append(num11).Append("\n");
                     }
                     catch (Exception exception3)
                     {
                         exception = exception3;
                     }
                 }
                 else if (sr is IGeographicCoordinateSystem)
                 {
                     builder.Append("Geographic Coordinate System:\n");
                     system2 = sr as IGeographicCoordinateSystem;
                     builder.Append("  Name:").Append(system2.Name).Append("\n");
                     builder.Append("  Alias:").Append(system2.Alias).Append("\n");
                     builder.Append("  Abbreviation:").Append(system2.Abbreviation).Append("\n");
                     builder.Append("  Remarks:").Append(system2.Remarks).Append("\n");
                     builder.Append("  Angular Unit:").Append(system2.CoordinateUnit.Name).Append("(").Append(system2.CoordinateUnit.RadiansPerUnit).Append(")\n");
                     builder.Append("  Prime Meridian:").Append(system2.PrimeMeridian.Name).Append("(").Append(system2.PrimeMeridian.Longitude).Append(")\n");
                     builder.Append("  Datum:").Append(system2.Datum.Name).Append("\n");
                     builder.Append("    Spheroid:").Append(system2.Datum.Spheroid.Name).Append("\n");
                     builder.Append("      Semimajor Axis:").Append(system2.Datum.Spheroid.SemiMajorAxis).Append("\n");
                     builder.Append("      Semiminor Axis:").Append(system2.Datum.Spheroid.SemiMinorAxis).Append("\n");
                     builder.Append("      Inverse Flattening:").Append((double)(1.0 / system2.Datum.Spheroid.Flattening)).Append("\n");
                 }
             }
         }
         return builder.ToString();
     }
     catch (Exception ex)
     { return ""; }
 }
Exemple #2
0
 public static string FormatSpatialReference(ISpatialReference sr)
 {
     try
     {
         if (sr == null)
         {
             return("");
         }
         StringBuilder builder = new StringBuilder();
         if (sr is UnknownCoordinateSystemClass)
         {
             builder.Append("UnknownCoordinateSystem");
         }
         else
         {
             if (sr.Name == "Unknown")
             {
                 builder.Append("UnknownCoordinateSystem");
             }
             else
             {
                 IGeographicCoordinateSystem system2;
                 if (sr is IProjectedCoordinateSystem)
                 {
                     Exception exception;
                     IProjectedCoordinateSystem system = sr as IProjectedCoordinateSystem;
                     builder.Append("投影坐标系:\n");
                     builder.Append("  Name:").Append(system.Name).Append("\n");
                     builder.Append("  Alias:").Append(system.Alias).Append("\n");
                     builder.Append("  Abbreviation:").Append(system.Abbreviation).Append("\n");
                     builder.Append("  Remarks:").Append(system.Remarks).Append("\n");
                     builder.Append("投影:").Append(system.Projection.Name).Append("\n");
                     builder.Append("投影参数:\n");
                     builder.Append("   False_Easting:").Append(system.FalseEasting).Append("\n");
                     builder.Append("   False_Northing:").Append(system.FalseNorthing).Append("\n");
                     builder.Append("   Central_Meridian:").Append(system.get_CentralMeridian(true)).Append("\n");
                     try
                     {
                         builder.Append("   Scale_Factor:").Append(system.ScaleFactor).Append("\n");
                     }
                     catch { }
                     builder.Append("   Latitude_Of_Origin:0\n");
                     builder.Append("Linear Unit:").Append(system.CoordinateUnit.Name).Append("(").Append(system.CoordinateUnit.MetersPerUnit).Append(")\n");
                     builder.Append("Geographic Coordinate System:\n");
                     system2 = system.GeographicCoordinateSystem;
                     builder.Append("  Name:").Append(system2.Name).Append("\n");
                     builder.Append("  Alias:").Append(system2.Alias).Append("\n");
                     builder.Append("  Abbreviation:").Append(system2.Abbreviation).Append("\n");
                     builder.Append("  Remarks:").Append(system2.Remarks).Append("\n");
                     builder.Append("  Angular Unit:").Append(system2.CoordinateUnit.Name).Append("(").Append(system2.CoordinateUnit.RadiansPerUnit).Append(")\n");
                     builder.Append("  Prime Meridian:").Append(system2.PrimeMeridian.Name).Append("(").Append(system2.PrimeMeridian.Longitude).Append(")\n");
                     builder.Append("  Datum:").Append(system2.Datum.Name).Append("\n");
                     builder.Append("    Spheroid:").Append(system2.Datum.Spheroid.Name).Append("\n");
                     builder.Append("      Semimajor Axis:").Append(system2.Datum.Spheroid.SemiMajorAxis).Append("\n");
                     builder.Append("      Semiminor Axis:").Append(system2.Datum.Spheroid.SemiMinorAxis).Append("\n");
                     builder.Append("      Inverse Flattening:").Append((double)(1.0 / system2.Datum.Spheroid.Flattening)).Append("\n");
                     builder.Append("X/Y Domain:\n");
                     try
                     {
                         double num  = 0.0;
                         double num2 = 0.0;
                         double num3 = 0.0;
                         double num4 = 0.0;
                         double num5 = 0.0;
                         sr.GetDomain(out num, out num3, out num2, out num4);
                         sr.GetFalseOriginAndUnits(out num, out num2, out num5);
                         builder.Append(" Min X:").Append(num).Append("\n");
                         builder.Append(" Min Y:").Append(num2).Append("\n");
                         builder.Append(" Max X:").Append(num3).Append("\n");
                         builder.Append(" Max Y:").Append(num4).Append("\n");
                         builder.Append(" XYScale:").Append(num5).Append("\n");
                         builder.Append("\n");
                     }
                     catch (Exception exception1)
                     {
                         exception = exception1;
                     }
                     builder.Append("Z Domain:\n");
                     try
                     {
                         double num6;
                         double num7;
                         double num8 = 0.0;
                         sr.GetZDomain(out num6, out num7);
                         sr.GetZFalseOriginAndUnits(out num6, out num8);
                         builder.Append("  Min Z:").Append(num6).Append("\n");
                         builder.Append("  Max Z:").Append(num7).Append("\n");
                         builder.Append("  ZScale:").Append(num8).Append("\n");
                         builder.Append("\n");
                     }
                     catch (Exception exception2)
                     {
                         exception = exception2;
                     }
                     try
                     {
                         double num9;
                         double num10;
                         builder.Append("M Domain:\n");
                         double num11 = 0.0;
                         sr.GetMDomain(out num9, out num10);
                         sr.GetMFalseOriginAndUnits(out num9, out num11);
                         builder.Append("  Min M:").Append(num9).Append("\n");
                         builder.Append("  Max M:").Append(num10).Append("\n");
                         builder.Append("  MScale:").Append(num11).Append("\n");
                     }
                     catch (Exception exception3)
                     {
                         exception = exception3;
                     }
                 }
                 else if (sr is IGeographicCoordinateSystem)
                 {
                     builder.Append("Geographic Coordinate System:\n");
                     system2 = sr as IGeographicCoordinateSystem;
                     builder.Append("  Name:").Append(system2.Name).Append("\n");
                     builder.Append("  Alias:").Append(system2.Alias).Append("\n");
                     builder.Append("  Abbreviation:").Append(system2.Abbreviation).Append("\n");
                     builder.Append("  Remarks:").Append(system2.Remarks).Append("\n");
                     builder.Append("  Angular Unit:").Append(system2.CoordinateUnit.Name).Append("(").Append(system2.CoordinateUnit.RadiansPerUnit).Append(")\n");
                     builder.Append("  Prime Meridian:").Append(system2.PrimeMeridian.Name).Append("(").Append(system2.PrimeMeridian.Longitude).Append(")\n");
                     builder.Append("  Datum:").Append(system2.Datum.Name).Append("\n");
                     builder.Append("    Spheroid:").Append(system2.Datum.Spheroid.Name).Append("\n");
                     builder.Append("      Semimajor Axis:").Append(system2.Datum.Spheroid.SemiMajorAxis).Append("\n");
                     builder.Append("      Semiminor Axis:").Append(system2.Datum.Spheroid.SemiMinorAxis).Append("\n");
                     builder.Append("      Inverse Flattening:").Append((double)(1.0 / system2.Datum.Spheroid.Flattening)).Append("\n");
                 }
             }
         }
         return(builder.ToString());
     }
     catch (Exception ex)
     { return(""); }
 }