Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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]);
                    }
                }
            }
        }