zoukankan      html  css  js  c++  java
  • backup3

            private void changLayoutTemp2(IActiveView activeView, IPageLayout pageLayout, IPageLayout pTempPageLayout)
            {
                IPage pTempPage = pTempPageLayout.Page;
    
                //set page size and units
                IPage pCurPage = pageLayout.Page;
                pCurPage.Units = pTempPage.Units;
                pCurPage.Orientation = pTempPage.Orientation;
    
                double dWidth, dHeight;
                pTempPage.QuerySize(out dWidth, out dHeight);
                pCurPage.PutCustomSize(dWidth, dHeight);
                //delet all the element in GraphicsContainer except the MapFrame 
                IGraphicsContainer pGraphicsContainer = activeView.GraphicsContainer;
                IMap pMap = activeView.FocusMap;
                //现有的mxd文档
                IMapFrame pMapFrame = pGraphicsContainer.FindFrame(pMap) as IMapFrame;
    
    
                pGraphicsContainer.Reset();
                IElement pElement = pGraphicsContainer.Next();
                while (pElement != null)
                {
                    if (pElement is IMapFrame)
                    {
                        //模板的
                        IMapFrame pTempMapFrame = (pTempPageLayout as IGraphicsContainer).FindFrame((pTempPageLayout as IActiveView).FocusMap) as IMapFrame;
                        IElement pTempElement = pTempMapFrame as IElement;
                        pElement.Geometry = pTempElement.Geometry;
                        pMapFrame.Border = pTempMapFrame.Border;
    
    
                        //方里网
                        IMapGrids pMapGrids = pMapFrame as IMapGrids;
                        pMapGrids.ClearMapGrids();
                        IMapGrids tempGrids = pTempMapFrame as IMapGrids;
                        for (int i = 0; i < tempGrids.MapGridCount; i++)
                        {
                            pMapGrids.AddMapGrid(tempGrids.get_MapGrid(i));
                        }
                    }
                    //else
                    //{
                    //    pGraphicsContainer.DeleteElement(pElement);
                    //}
                    pElement = pGraphicsContainer.Next();
                }
                
                //add element in the template to your cuurent pagelayout
                IGraphicsContainer pTempGraCon = pTempPageLayout as IGraphicsContainer;
                pTempGraCon.Reset();
                pElement = pTempGraCon.Next();
                while (pElement != null)
                {
                    if (pElement is IMapFrame)
                    {
                        pElement = pTempGraCon.Next();
                        continue;
                    }
                    else if (pElement is IMapSurroundFrame)
                    {
                        IMapSurroundFrame pTempMapSurroundFrame = pElement as IMapSurroundFrame;
                        pTempMapSurroundFrame.MapFrame = pMapFrame;
                        IMapSurround pTempMapSurround = pTempMapSurroundFrame.MapSurround;
                        pMap.AddMapSurround(pTempMapSurround);
                        pGraphicsContainer.AddElement(pTempMapSurroundFrame as IElement, 0);
                    }
                    else
                    {
                        pGraphicsContainer.AddElement(pElement, 0);
                    }
                    pElement = pTempGraCon.Next();
                }
            }
    
    
            /// <summary>
            /// 为PageLayout对象添加经纬网格
            /// </summary>
            /// <param name="pPageLayout"></param>
            /// 
            private void CreateGraticuleMapGrid(IPageLayout pPageLayout)
            {
                //获取MapFrame对象
                IActiveView pAcitiveView = pPageLayout as IActiveView;
                IMap pMap = pAcitiveView.FocusMap;
                IGraphicsContainer pGraphicsContainer = pAcitiveView as IGraphicsContainer;
                IMapFrame pMapFrame = pGraphicsContainer.FindFrame(pMap) as IMapFrame;
    
                IRgbColor rgbColor = new RgbColor();
    
                IMapGrids pMapGrids;
                IMapGrid pMapGrid;
    
                //Create the grid
                pMapGrid = new GraticuleClass();// (IGraticule)pServerContext.CreateObject("esriCarto.Graticule");
                pMapGrid.Name = "Map Grid";
    
                rgbColor.Red = 166;
                rgbColor.Green = 187;
                rgbColor.Blue = 208;
                IColor color = rgbColor as IColor;
    
                //Set the line symbol used to draw the grid
                ICartographicLineSymbol pLineSymbol;
                pLineSymbol = new CartographicLineSymbolClass();
                //pLineSymbol = (ICartographicLineSymbol)pServerContext.CreateObject("esriDisplay.CartographicLineSymbol");
                pLineSymbol.Cap = esriLineCapStyle.esriLCSButt;
                pLineSymbol.Width = 1;
                pLineSymbol.Color = color;
    
                pMapGrid.LineSymbol = pLineSymbol;
                pMapGrid.Border = null; // clear the default border;
    
                //Set the Tick Properties
                pMapGrid.TickLength = 15;
                pLineSymbol = new CartographicLineSymbolClass();
                //pLineSymbol = (ICartographicLineSymbol)pServerContext.CreateObject("esriDisplay.CartographicLineSymbol");
                pLineSymbol.Cap = esriLineCapStyle.esriLCSButt;
                pLineSymbol.Width = 1;
                pLineSymbol.Color = color;
                pMapGrid.TickLineSymbol = pLineSymbol;
                pMapGrid.TickMarkSymbol = null; //clear the default
                pMapGrid.LabelFormat.Font.Size = 20;
    
                //Set the Sub Tick Properties
                pMapGrid.SubTickCount = 5;
                pMapGrid.SubTickLength = 10;
                pLineSymbol = new CartographicLineSymbolClass();
                //pLineSymbol = (ICartographicLineSymbol)pServerContext.CreateObject("esriDisplay.CartographicLineSymbol");
                pLineSymbol.Cap = esriLineCapStyle.esriLCSButt;
                pLineSymbol.Width = 0.1;
                pLineSymbol.Color = color;
                pMapGrid.SubTickLineSymbol = pLineSymbol;
    
                //Marshal.ReleaseComObject(pLineSymbol);
    
                //Set the Grid labels properties
                IGridLabel pGridLabel;
                pGridLabel = pMapGrid.LabelFormat;
                pGridLabel.LabelOffset = 15;
    
                stdole.StdFont pFont = new stdole.StdFont();
                pFont.Name = "Arial";
                pFont.Size = 16;
    
                pMapGrid.LabelFormat.Font = pFont as stdole.IFontDisp;
    
                //Set the Tick, SubTick, Label Visibility along the 4 sides of the grid
                pMapGrid.SetTickVisibility(true, true, true, true);
                pMapGrid.SetSubTickVisibility(true, true, true, true);
                pMapGrid.SetLabelVisibility(true, true, true, true);
    
                //Make map grid visible, so it gets drawn when Active View is updated
                pMapGrid.Visible = true;
    
                //Set the IMeasuredGrid properties
                IMeasuredGrid pMeasuredGrid;
                pMeasuredGrid = pMapGrid as IMeasuredGrid;
                pMeasuredGrid.FixedOrigin = true;
                pMeasuredGrid.XIntervalSize = 0.5; //meridian interval
                pMeasuredGrid.XOrigin = 109; //shift grid 5
                pMeasuredGrid.YIntervalSize = 0.5; //parallel interval
                pMeasuredGrid.YOrigin = 40; //shift grid 5
    
                // add mapg grid to Layout and refresh
                pMapGrids = pMapFrame as IMapGrids;
                pMapGrids.AddMapGrid(pMapGrid);
            }
    
    
    
    
    
                string aaa = @"C:UsersAdministratorDesktopbbbbbb.mxd";
                IMapDocument pMapDocument = new MapDocumentClass();
                pMapDocument.Open(aaa);
    
                string file = @"C:UsersAdministratorDesktopA90_90.mxt";
                IMapDocument pMapDocument2 = new MapDocumentClass();
                pMapDocument2.Open(file);//template's  path
    
                changLayoutTemp2(pMapDocument.ActiveView, pMapDocument.PageLayout, pMapDocument2.PageLayout);
                pMapDocument.SaveAs("d:\aa7.mxd", true, true);
    change_layout
  • 相关阅读:
    mysq 日期相减
    说说时间观与时间管理——北漂18年(71)
    ionic之切换开关
    ionic之单选框
    SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE locks在RR模式下可以看到最新的记录
    14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读
    14.5.2.2 autocommit, Commit, and Rollback
    14.5.2 事务隔离级别
    对于唯一索引使用唯一条件搜索, InnoDB 只锁定找到的index record,不是它之前的区间
    mysql explain 解释
  • 原文地址:https://www.cnblogs.com/yansc/p/6214602.html
Copyright © 2011-2022 走看看