Ejemplo n.º 1
0
 private void TrySetDataFrameEnvelope(IGxdDataFrame gxdDataFrame, IDataFrame dataFrame, ILayout layout)
 {
     try
     {
         ThemeGraphRegion region = ThemeGraphRegionSetting.GetThemeGraphRegion("FLD");
         if (region != null && _region != null)
         {
             foreach (PrjEnvelopeItem item in region.PrjEnvelopeItems)
             {
                 if (item.Name.ToUpper() == _region)
                 {
                     PrjEnvelope env    = item.PrjEnvelope;
                     GxdEnvelope gxdEnv = ToPrjEnvelope(env, gxdDataFrame, dataFrame);
                     if (gxdEnv != null)
                     {
                         FitSizeToTemplateWidth(layout, (float)(gxdEnv.MaxX - gxdEnv.MinX), (float)(gxdEnv.MaxY - gxdEnv.MinY));
                         gxdDataFrame.Envelope = gxdEnv;
                         return;
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         //PrintInfo(ex.Message);
     }
 }
Ejemplo n.º 2
0
        protected override void ApplyAttributesOfLayoutTemplate(ILayoutTemplate template)
        {
            string instanceIdentify = _argumentProvider.GetArg("OutFileIdentify") as string;

            if (instanceIdentify == "NCSI" || instanceIdentify == "NMCS")
            {
                string[]       files = GetStringArray("SelectedPrimaryFiles");
                RasterIdentify rstId = new RasterIdentify(files[0]);
                if (!string.IsNullOrWhiteSpace(rstId.RegionIdentify))
                {
                    DefinedRegionParse reg        = new DefinedRegionParse();
                    BlockItemGroup     blockGroup = reg.BlockDefined.FindGroup("积雪");
                    PrjEnvelopeItem    envItem    = blockGroup.GetPrjEnvelopeItem(rstId.RegionIdentify);
                    if (envItem != null)
                    {
                        RasterProject.PrjEnvelope prjEnvelope = RasterProject.PrjEnvelope.CreateByCenter(envItem.PrjEnvelope.CenterX, envItem.PrjEnvelope.CenterY, 10, 10);
                        ILayout layout = template.Layout;
                        if (layout.Size.Width != 1000 || layout.Size.Height != 1000)
                        {
                            ChangeTemplateSize(layout, 1000, 1000);
                        }
                        _envelope = new Layout.GxdEnvelope(prjEnvelope.MinX, prjEnvelope.MaxX, prjEnvelope.MinY, prjEnvelope.MaxY);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private GxdEnvelope GetGxdEnvelope(XElement ele, string attName)
        {
            var e = ele.Attribute(attName);

            if (e == null)
            {
                return(null);
            }
            return(GxdEnvelope.From(e.Value));
        }
Ejemplo n.º 4
0
        protected override void ApplyAttributesOfDataFrame(IGxdDataFrame gxdDataFrame, IDataFrame dataFrame, ILayout layout)
        {
            string instanceIdentify = _argumentProvider.GetArg("OutFileIdentify") as string;

            Layout.GxdEnvelope evp = ToPrjEnvelope(_envelope, gxdDataFrame, dataFrame);
            if (evp != null)
            {
                FitSizeToTemplateWidth(layout, (float)(evp.MaxX - evp.MinX), (float)(evp.MaxY - evp.MinY));
                gxdDataFrame.Envelope = evp;
                _envelope             = null;
            }
        }
Ejemplo n.º 5
0
 public GxdDataFrame(string name, GxdEnvelope coordEnvelope,
                     IGxdVectorHost vectorHost,
                     string spatialRef,
                     XElement gridXml,
                     XElement documentableLayersHostXml)
 {
     _name                      = name;
     _coordEnvelope             = coordEnvelope;
     _vectorHost                = vectorHost;
     _spatialRef                = spatialRef;
     _gridXml                   = gridXml;
     _documentableLayersHostXml = documentableLayersHostXml;
 }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
        protected override void ApplyAttributesOfDataFrame(IGxdDataFrame gxdDataFrame, IDataFrame dataFrame, ILayout layout)
        {
            string instanceIdentify = _argumentProvider.GetArg("OutFileIdentify") as string;
            string envelope         = null;

            if (instanceIdentify == "TFRI")
            {
                envelope = _argumentProvider.GetArg("OldThemeEnvelope").ToString();
            }
            else
            {
                envelope = _argumentProvider.GetArg("ThemeEnvelope").ToString();
            }
            if (string.IsNullOrEmpty(envelope))
            {
                return;
            }
            string[] latlon = envelope.Split(',');
            if (latlon == null || latlon.Length < 4)
            {
                return;
            }
            ISmartSession session = _argumentProvider.GetArg("SmartSession") as ISmartSession;

            if (session == null)
            {
                return;
            }
            double[] geoRange;
            if (!IsSetRange(session, latlon, out geoRange))
            {
                return;
            }
            GxdEnvelope env = new GxdEnvelope(double.Parse(latlon[0]), double.Parse(latlon[1]), double.Parse(latlon[2]), double.Parse(latlon[3]));

            Layout.GxdEnvelope evp = ToPrjEnvelope(env, gxdDataFrame, dataFrame);
            if (evp != null)
            {
                FitSizeToTemplateWidth(layout, (float)(evp.MaxX - evp.MinX), (float)(evp.MaxY - evp.MinY));
                gxdDataFrame.Envelope = evp;
            }
            base.ApplyAttributesOfDataFrame(gxdDataFrame, dataFrame, layout);
        }
Ejemplo n.º 8
0
        protected override void ApplyAttributesOfLayoutTemplate(ILayoutTemplate template)
        {
            string instanceIdentify = _argumentProvider.GetArg("OutFileIdentify") as string;

            string[] files  = GetStringArray("SelectedPrimaryFiles");
            ILayout  layout = template.Layout;
            double   minx;
            double   miny;
            double   maxx;
            double   maxy;

            using (IRasterDataProvider dataPrd = GeoDataDriver.Open(files[0], "") as IRasterDataProvider)
            {
                minx = dataPrd.CoordEnvelope.MinX - 1;   //扩大数据框范围
                maxx = dataPrd.CoordEnvelope.MaxX + 1;
                miny = dataPrd.CoordEnvelope.MinY - 1;
                maxy = dataPrd.CoordEnvelope.MaxY + 1;
            }
            _envelope = new Layout.GxdEnvelope(minx, maxx, miny, maxy);
        }
Ejemplo n.º 9
0
 private GxdEnvelope ToPrjEnvelope(GxdEnvelope env, IGxdDataFrame gxdDataFrame, IDataFrame dataFrame)
 {
     if (env == null)
     {
         return(null);
     }
     GeoDo.Project.IProjectionTransform tran = GetProjectionTransform(gxdDataFrame.SpatialRef);
     if (tran == null)
     {
         return(null);
     }
     double[] xs = new double[] { env.MinX, env.MaxX };
     double[] ys = new double[] { env.MaxY, env.MinY };
     try
     {
         tran.Transform(xs, ys);
         return(new Layout.GxdEnvelope(xs[0], xs[1], ys[1], ys[0]));
     }
     catch
     {
         return(null);
     }
 }