backup3

时间:2023-03-09 03:54:24
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 = ; 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, );
}
else
{
pGraphicsContainer.AddElement(pElement, );
}
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 = ;
rgbColor.Green = ;
rgbColor.Blue = ;
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 = ;
pLineSymbol.Color = color; pMapGrid.LineSymbol = pLineSymbol;
pMapGrid.Border = null; // clear the default border; //Set the Tick Properties
pMapGrid.TickLength = ;
pLineSymbol = new CartographicLineSymbolClass();
//pLineSymbol = (ICartographicLineSymbol)pServerContext.CreateObject("esriDisplay.CartographicLineSymbol");
pLineSymbol.Cap = esriLineCapStyle.esriLCSButt;
pLineSymbol.Width = ;
pLineSymbol.Color = color;
pMapGrid.TickLineSymbol = pLineSymbol;
pMapGrid.TickMarkSymbol = null; //clear the default
pMapGrid.LabelFormat.Font.Size = ; //Set the Sub Tick Properties
pMapGrid.SubTickCount = ;
pMapGrid.SubTickLength = ;
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 = ; stdole.StdFont pFont = new stdole.StdFont();
pFont.Name = "Arial";
pFont.Size = ; 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 = ; //shift grid 5
pMeasuredGrid.YIntervalSize = 0.5; //parallel interval
pMeasuredGrid.YOrigin = ; //shift grid 5 // add mapg grid to Layout and refresh
pMapGrids = pMapFrame as IMapGrids;
pMapGrids.AddMapGrid(pMapGrid);
} string aaa = @"C:\Users\Administrator\Desktop\bbbbbbb.mxd";
IMapDocument pMapDocument = new MapDocumentClass();
pMapDocument.Open(aaa); string file = @"C:\Users\Administrator\Desktop\A90_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