/// <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; //间隔 }
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); }