public Extent(PointN[] points)
 {
     try
     {
         this.XMin = new double?(Math.Min(points[0].X, points[1].X));
         this.XMin = new double?(Math.Min(this.XMin.Value, points[2].X));
         this.YMin = new double?(Math.Min(points[0].Y, points[1].Y));
         this.YMin = new double?(Math.Min(this.YMin.Value, points[2].Y));
         this.XMax = new double?(Math.Max(points[0].X, points[1].X));
         this.XMax = new double?(Math.Max(this.XMax.Value, points[2].X));
         this.YMax = new double?(Math.Max(points[0].Y, points[1].Y));
         this.YMax = new double?(Math.Max(this.YMax.Value, points[2].Y));
         if (points[0].SpatialReference != null)
         {
             this.SpatialReference = AGSSpatialReference.GetSpRefString(points[0].SpatialReference);
         }
     }
     catch
     {
     }
 }
        public static string GetWKTFrom(object obj)
        {
            if (obj == null)
            {
                return(null);
            }
            string result;

            try
            {
                string     text       = "";
                IAGSObject iAGSObject = obj as IAGSObject;
                if (iAGSObject != null)
                {
                    if (iAGSObject.Properties.ContainsKey("Full Extent"))
                    {
                        Extent extent = iAGSObject.Properties["Full Extent"] as Extent;
                        text = extent.SpatialReference;
                    }
                    else if (iAGSObject.Properties.ContainsKey("Initial Extent"))
                    {
                        Extent extent2 = iAGSObject.Properties["Initial Extent"] as Extent;
                        text = extent2.SpatialReference;
                    }
                    else if (iAGSObject.Properties.ContainsKey("WKT"))
                    {
                        text = iAGSObject.Properties["WKT"].ToString();
                    }
                    else if (iAGSObject.Properties.ContainsKey("WKID"))
                    {
                        text = iAGSObject.Properties["WKID"].ToString();
                    }
                    else if (iAGSObject.Properties.ContainsKey("WKID"))
                    {
                        text = iAGSObject.Properties["WKID"].ToString();
                    }
                }
                SpatialReference spatialReference = obj as SpatialReference;
                if (spatialReference != null)
                {
                    result = AGSSpatialReference.GetSpRefString(spatialReference);
                }
                else
                {
                    Extent extent3 = obj as Extent;
                    if (extent3 != null)
                    {
                        result = extent3.SpatialReference;
                    }
                    else
                    {
                        result = text;
                    }
                }
            }
            catch
            {
                result = "";
            }
            return(result);
        }