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); } }
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); } } } }
private GxdEnvelope GetGxdEnvelope(XElement ele, string attName) { var e = ele.Attribute(attName); if (e == null) { return(null); } return(GxdEnvelope.From(e.Value)); }
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; } }
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; }
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); }
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); }
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); }
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); } }