/// <summary>
 /// 设置测量格网的单位和间隔
 /// </summary>
 /// <param name="pMeasuredGrid">测量格网</param>
 /// <param name="units">单位</param>
 /// <param name="xInter">X间隔</param>
 /// <param name="yInter">Y间隔</param>
 public static void SetMeasuredGrid(IMeasuredGrid pMeasuredGrid, esriUnits units, double xInter, double yInter)
 {
     pMeasuredGrid.Units         = units;  //单位
     pMeasuredGrid.FixedOrigin   = false;
     pMeasuredGrid.XIntervalSize = xInter; //间隔
     pMeasuredGrid.YIntervalSize = yInter; //间隔
 }
Exemple #2
0
 private void btnOK_Click(object sender, EventArgs e)
 {
     try
     {
         IEnvelope envelope = new EnvelopeClass();
         this.imap_0.MapScale = Convert.ToDouble(this.txtScale.Text);
         double xMin = Convert.ToDouble(this.txtX.Text);
         double yMin = Convert.ToDouble(this.txtY.Text);
         for (int i = 0; i < (this.imapFrame_0 as IMapGrids).MapGridCount; i++)
         {
             IMeasuredGrid grid = (this.imapFrame_0 as IMapGrids).get_MapGrid(i) as IMeasuredGrid;
             if ((grid != null) && grid.FixedOrigin)
             {
                 grid.XOrigin = xMin;
                 grid.YOrigin = yMin;
             }
         }
         IEnvelope envelope2 = (this.imapFrame_0 as IElement).Geometry.Envelope;
         envelope.PutCoords(xMin, yMin, xMin + ((envelope2.Width * this.imap_0.MapScale) * 0.01),
                            yMin + ((envelope2.Height * this.imap_0.MapScale) * 0.01));
         (this.imap_0 as IActiveView).Extent = envelope;
         (this.imap_0 as IActiveView).Refresh();
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
 }
        public void CreateGrid(IActiveView activeView, IPageLayout pageLayout)
        {
            IMapGrid mapGrid = new GraticuleClass();

            mapGrid.Name = "Map Grid";
            IColor color = new RgbColorClass(); color.RGB = 0XBBBBBB;

            ICartographicLineSymbol cartographicLineSymbol = new CartographicLineSymbolClass();

            cartographicLineSymbol.Cap   = esriLineCapStyle.esriLCSButt;
            cartographicLineSymbol.Color = color; cartographicLineSymbol.Width = 2;
            mapGrid.LineSymbol           = (ILineSymbol)cartographicLineSymbol;
            mapGrid.Border     = null;
            mapGrid.TickLength = 15;

            cartographicLineSymbol       = new CartographicLineSymbolClass();
            cartographicLineSymbol.Cap   = esriLineCapStyle.esriLCSButt;
            cartographicLineSymbol.Color = color; cartographicLineSymbol.Width = 1;
            mapGrid.TickLineSymbol       = (ILineSymbol)cartographicLineSymbol;
            mapGrid.TickMarkSymbol       = null; mapGrid.SubTickCount = 5; mapGrid.SubTickLength = 10;

            cartographicLineSymbol       = new CartographicLineSymbolClass();
            cartographicLineSymbol.Cap   = esriLineCapStyle.esriLCSButt;
            cartographicLineSymbol.Color = color; cartographicLineSymbol.Width = 0.2;
            mapGrid.SubTickLineSymbol    = (ILineSymbol)cartographicLineSymbol;

            IGridLabel gridLabel = mapGrid.LabelFormat;

            gridLabel.LabelOffset = 15;
            mapGrid.SetTickVisibility(true, true, true, true);
            mapGrid.SetSubTickVisibility(true, true, true, true);
            mapGrid.SetLabelVisibility(true, true, true, true);
            mapGrid.Visible = true;
            IMeasuredGrid measuredGrid = mapGrid as IMeasuredGrid;

            measuredGrid.FixedOrigin   = true;
            measuredGrid.XIntervalSize = 10;
            measuredGrid.XOrigin       = 5;  //Shift grid 5
            measuredGrid.YIntervalSize = 10; //Parallel interval.
            measuredGrid.YOrigin       = 5;  //Shift grid 5

            IMap map = activeView.FocusMap;
            IGraphicsContainer graphicsContainer = pageLayout as IGraphicsContainer;
            IFrameElement      frameElement      = graphicsContainer.FindFrame(map);
            IMapFrame          mapFrame          = frameElement as IMapFrame;
            IMapGrids          mapGrids          = null;

            mapGrids = mapFrame as IMapGrids;
            mapGrids.AddMapGrid(mapGrid);

            activeView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null);
        }