• AE基础(8)PageLayout属性设置和添加元素


      1 using ESRI.ArcGIS.Carto;
      2 using ESRI.ArcGIS.Controls;
      3 using ESRI.ArcGIS.Display;
      4 using ESRI.ArcGIS.esriSystem;
      5 using ESRI.ArcGIS.Geometry;
      6 using System;
      7 using System.Collections.Generic;
      8 using System.ComponentModel;
      9 using System.Data;
     10 using System.Drawing;
     11 using System.Linq;
     12 using System.Text;
     13 using System.Threading.Tasks;
     14 using System.Windows.Forms;
     15 
     16 namespace Ch02Ex09
     17 {
     18     public partial class Form1 : Form
     19     {
     20         public Form1()
     21         {
     22             InitializeComponent();
     23         }
     24         int flag = 0;
     25         IMapDocument mapDocumentClass ;
     26         private void button1_Click(object sender, EventArgs e)
     27         {//设置边框
     28             axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassBorders;
     29         }
     30         private void button2_Click(object sender, EventArgs e)
     31         {//设置阴影
     32             axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassShadows;
     33         }
     34         //加载地图文档
     35         private void loadMapDocument()
     36         {
     37             System.Windows.Forms.OpenFileDialog openFileDialog;
     38             openFileDialog = new OpenFileDialog();
     39             openFileDialog.Title = "打开地图文档";
     40             openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
     41             openFileDialog.ShowDialog();
     42             mapDocumentClass = new MapDocument();
     43             string filePath = openFileDialog.FileName;
     44             try
     45             {
     46                 mapDocumentClass.Open(filePath, "");
     47                 axPageLayoutControl1.PageLayout = mapDocumentClass.PageLayout;
     48                 axPageLayoutControl1.Refresh();
     49             }
     50             catch (Exception ex)
     51             {
     52                 MessageBox.Show(ex.ToString());
     53             }
     54         }
     55 
     56         private void Form1_Click(object sender, EventArgs e)
     57         {
     58             loadMapDocument();
     59             Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\ESRI\CoreRuntime", true);
     60             //  axSymbologyControl1.LoadStyleFile(regKey.GetValue("InstallDir") + "\Styles\ESRI.ServerStyle");
     61             axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassBackgrounds).Update();
     62             axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassBorders).Update();
     63             axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassShadows).Update();
     64         }
     65 
     66         private void button3_Click(object sender, EventArgs e)
     67         {//设置背景
     68             axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassBackgrounds;
     69         }
     70 
     71         private void button4_Click(object sender, EventArgs e)
     72         {//设置网络
     73             IMap map;
     74             IActiveView activeView;
     75             activeView = axPageLayoutControl1.PageLayout as IActiveView;
     76             map = activeView.FocusMap;
     77 
     78             IMapGrid mapGrid;
     79             IMeasuredGrid measuredGrid;
     80             measuredGrid = new MeasuredGrid() as IMeasuredGrid;
     81             mapGrid = measuredGrid as IMapGrid;
     82             measuredGrid.FixedOrigin = true;
     83             measuredGrid.Units = map.MapUnits;
     84             measuredGrid.XIntervalSize = 10;
     85             measuredGrid.YIntervalSize = 10;
     86             measuredGrid.XOrigin = -180;
     87             measuredGrid.YOrigin = -90;
     88 
     89             IProjectedGrid projectedGrid;
     90             projectedGrid = measuredGrid as IProjectedGrid;
     91             projectedGrid.SpatialReference = map.SpatialReference;
     92             mapGrid.Name = "Measured Grid";
     93             IMapFrame mapFrame;
     94             IGraphicsContainer graphicsContainer;
     95             graphicsContainer = activeView as IGraphicsContainer;
     96             mapFrame = graphicsContainer.FindFrame(map) as IMapFrame;
     97             IMapGrids mapGrids = mapFrame as IMapGrids;
     98             mapGrids.AddMapGrid(mapGrid);
     99             activeView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null);
    100         }
    101 
    102         private void button6_Click(object sender, EventArgs e)
    103         {//添加文字
    104             IActiveView activeView;
    105             IGraphicsContainer graphicsContainer;
    106             ITextElement textElement;
    107             ITextSymbol textSymbol;
    108             IRgbColor color;
    109             IElement element;
    110             IEnvelope envelope;
    111 
    112             activeView = axPageLayoutControl1.PageLayout as IActiveView;
    113             envelope = new Envelope() as IEnvelope;
    114             envelope.PutCoords(0, 0, 5, 5);
    115             textElement = new TextElement() as ITextElement;
    116             element = textElement as IElement;
    117             element.Geometry = envelope;
    118             textElement.Text = "我的地图";
    119             textSymbol = new TextSymbol();
    120             color = new RgbColor();
    121             color.Green = 255;
    122             color.Blue = 255;
    123             color.Red = 0;
    124             textSymbol.Color = color as IColor;
    125             textSymbol.Size = 30;
    126             textElement.Symbol = textSymbol;
    127             graphicsContainer = activeView as IGraphicsContainer;
    128             graphicsContainer.AddElement(element, 0);
    129             axPageLayoutControl1.Refresh();
    130             //axPageLayoutControl1.ActiveView.PartialRefresh (esriViewDrawPhase.esriViewBackground ,null ,null );
    131         }
    132 
    133         private void button5_Click(object sender, EventArgs e)
    134         {
    135             //添加图例
    136             UID uid;
    137             IEnvelope envelope;
    138             IMapSurround mapSurround;
    139             IGraphicsContainer graphicsContainer;
    140             IMapFrame mapFrame;
    141             IMapSurroundFrame mapSurroundFrame;
    142             IElement element;
    143             ITrackCancel trackCancel;
    144 
    145             uid = new UID();
    146             uid.Value = "esriCarto.legend";
    147             envelope = new Envelope() as IEnvelope;
    148             envelope.PutCoords(1, 1, 2, 2);
    149             graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;
    150             mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;
    151 
    152             mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);
    153             mapSurroundFrame.MapSurround.Name = "图例";
    154             element = mapSurroundFrame as IElement;
    155             element.Geometry = envelope;
    156             element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);
    157             trackCancel = new CancelTracker();
    158             element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);
    159             graphicsContainer.AddElement(element, 0);
    160             axPageLayoutControl1.Refresh();
    161         }
    162 
    163         private void button7_Click(object sender, EventArgs e)
    164         {
    165             //文字比例尺
    166             UID uid;
    167             IEnvelope envelope;
    168             IMapSurround mapSurround;
    169             IGraphicsContainer graphicsContainer;
    170             IMapFrame mapFrame;
    171             IMapSurroundFrame mapSurroundFrame;
    172             IElement element;
    173             ITrackCancel trackCancel;
    174             uid = new UID();
    175             uid.Value = "esriCarto.ScaleText";
    176             envelope = new Envelope() as IEnvelope;
    177             envelope.PutCoords(1, 1, 2, 2);
    178             graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;
    179             mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;
    180             mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);
    181             element = mapSurroundFrame as IElement;
    182             element.Geometry = envelope;
    183             element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);
    184             trackCancel = new CancelTracker();
    185             element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);
    186             graphicsContainer.AddElement(element, 0);
    187             axPageLayoutControl1.Refresh();
    188         }
    189 
    190         private void button8_Click(object sender, EventArgs e)
    191         {
    192             //图形比例尺
    193 
    194             UID uid;
    195             IEnvelope envelope;
    196             IMapSurround mapSurround;
    197             IGraphicsContainer graphicsContainer;
    198             IMapFrame mapFrame;
    199             IMapSurroundFrame mapSurroundFrame;
    200             IElement element;
    201             ITrackCancel trackCancel;
    202             uid = new UID();
    203             uid.Value = "esriCarto.ScaleLine";
    204             envelope = new Envelope() as IEnvelope;
    205             envelope.PutCoords(1, 1, 10, 2);
    206             graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;
    207             mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;
    208             mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);
    209             element = mapSurroundFrame as IElement;
    210             element.Geometry = envelope;
    211             element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);
    212             trackCancel = new CancelTracker();
    213             element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);
    214             graphicsContainer.AddElement(element, 0);
    215             axPageLayoutControl1.Refresh();
    216         }
    217 
    218         private void button9_Click(object sender, EventArgs e)
    219         {
    220             axPageLayoutControl1.Extent = axPageLayoutControl1.FullExtent;
    221             axPageLayoutControl1.Refresh();  
    222         }
    223 
    224         private void button10_Click(object sender, EventArgs e)
    225         {
    226             axPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerZoomIn;
    227             flag = 2;
    228         }
    229 
    230         private void button11_Click(object sender, EventArgs e)
    231         {
    232             axPageLayoutControl1.MousePointer = esriControlsMousePointer.esriPointerZoomOut;
    233             flag = 1;
    234         }
    235 
    236       
    237     }
    238 }
  • 相关阅读:
    python 元组及操作
    python 字典所有操作
    python 列表操作
    python 运算符
    python while循环
    python 分支语句 等值判断 逻辑运算符
    GDI+_从Bitmap里得到的Color数组值分解
    服务器设计策略
    服务器设计策略
    IOCP的缓冲区
  • 原文地址:https://www.cnblogs.com/rockman/p/3325899.html
Copyright © 2020-2023  润新知