private IGxdDataFrame GetGxdDataFrame(XElement ele) { string name = GetStringAttribute(ele, "name"); double minx = GetDoubleAttribute(ele, "minx"); double maxx = GetDoubleAttribute(ele, "maxx"); double miny = GetDoubleAttribute(ele, "miny"); double maxy = GetDoubleAttribute(ele, "maxy"); GxdEnvelope evp = null; if (!(double.IsNaN(minx) || double.IsNaN(maxx) || double.IsNaN(miny) || double.IsNaN(maxy))) { evp = new GxdEnvelope(minx, maxx, miny, maxy); } List <IGxdRasterItem> gxItems = null; if (ele.Element("GxdRasterItems") != null) { var eles = ele.Element("GxdRasterItems").Elements("GxdRasterItem"); if (eles != null) { gxItems = new List <IGxdRasterItem>(); foreach (XElement e in eles) { IGxdRasterItem item = GetRasterItem(e); if (item != null) { gxItems.Add(item); } } } } string spatialRef = null; XElement prjEle = ele.Element("SpatialRef"); if (prjEle != null) { spatialRef = prjEle.Value; } IGxdVectorHost vhost = GetGxdVectorHost(ele.Element("GxdVectorHost")); IGxdDataFrame df = new GxdDataFrame(name, evp, vhost, spatialRef, ele.Element("GeoGrid"), ele.Element("DocumentableLayersHost")); if (gxItems != null) { df.GxdRasterItems.AddRange(gxItems.ToArray()); } return(df); }
private void TryGeneratreAOISecondaryFile(int[] aoi, IGxdRasterItem rst) { string fname = Path.Combine(Path.GetDirectoryName(rst.FileName), Path.GetFileNameWithoutExtension(rst.FileName) + ".aoi"); if (File.Exists(fname)) { File.Delete(fname); } if (aoi == null || aoi.Length == 0) { return; } using (FileStream sw = new FileStream(fname, FileMode.Create)) { using (BinaryWriter bw = new BinaryWriter(sw)) { for (int i = 0; i < aoi.Length; i++) { bw.Write(aoi[i]); } } } }