当前位置:编程学习 > C#/ASP.NET >>

C# ArcEngine 网格查询问题 急

ArcgisEngine C# vs2005 

C# Arcgis engine 二次开发 动态生成网格

现在需要生成一个网格

根据现有图层的边界 在动态生成一个新的图层(没有实现) 
*我用的是一下代码能生成网格

 IPageLayout pPageLayout;
            IActiveView pActiveView;
            IMap pMap;
            pPageLayout = axPageLayoutControl1.PageLayout;
            pActiveView = (IActiveView)pPageLayout;
            pMap = (IMap)pActiveView.FocusMap;

            //产生一个measuredgrid对象
            IMapGrid pMapGrid;
            IMeasuredGrid pMeasuredGrid = (IMeasuredGrid)new MeasuredGrid();
            pMapGrid = (IMapGrid)pMeasuredGrid;

            //pMeasuredGrid.FixedOrigin = true;
            //pMeasuredGrid.Units = pMap.MapUnits;
            //pMeasuredGrid.XIntervalSize = 100;
            //pMeasuredGrid.XOrigin = 0;
            //pMeasuredGrid.YIntervalSize = 100;
            //pMeasuredGrid.YOrigin = 0;

            pMeasuredGrid.FixedOrigin = true;
            pMeasuredGrid.Units = pMap.MapUnits;
            pMeasuredGrid.XIntervalSize =5000;//(pActiveView.FullExtent.XMax - pActiveView.FullExtent.XMin) / 20;
            pMeasuredGrid.XOrigin = pActiveView.FullExtent.XMin;
            pMeasuredGrid.YIntervalSize = 5000;//(pActiveView.FullExtent.YMax - pActiveView.FullExtent.YMin) / 20; ;
            pMeasuredGrid.YOrigin = pActiveView.FullExtent.YMin;

            //设置投影属性
            IProjectedGrid pProjectedGrid = (IProjectedGrid)pMeasuredGrid;
            pProjectedGrid.SpatialReference = pMap.SpatialReference;
            pMapGrid.Name = "Measureed Grid";

            //设置颜色
            IRgbColor gCol = new RgbColor();
            gCol.Red = 255;
            gCol.Blue = 255;
            gCol.Green = 255;

            IRgbColor ForeColor = new RgbColor();
            ForeColor.Red = 0;
            ForeColor.Blue = 0;
            ForeColor.Green = 0;
            //标签格式设置
            ICalibratedMapGridBorder pCalibratedBorder = (ICalibratedMapGridBorder)new CalibratedMapGridBorder();

            //设置ICalibratedMapGridBorder的属性
            pCalibratedBorder.BackgroundColor = gCol;
            pCalibratedBorder.ForegroundColor = ForeColor;
            pCalibratedBorder.BorderWidth = 2;
            pCalibratedBorder.Interval = 50;
            pCalibratedBorder.Alternating = true;
            pMapGrid.Border = (IMapGridBorder)pCalibratedBorder;

            IFormattedGridLabel pFormattedGridLabel = (IFormattedGridLabel)new FormattedGridLabel();
            //设置IGridLabel属性
            IGridLabel pGridLabel = (IGridLabel)pFormattedGridLabel;
            stdole.StdFont pFont = new stdole.StdFont();
            pFont.Name = "Arial";
            pFont.Size = 16;
            pGridLabel.Font = (stdole.IFontDisp)pFont;
            pGridLabel.Color = ForeColor;
            pGridLabel.LabelOffset = 2;

            //////bool Horizontal;
            //////Horizontal = true;
            //////pGridLabel.set_LabelAlignment(esriGridAxisEnum.esriGridAxisLeft, Horizontal) = false;
            //////pGridLabel.set_LabelAlignment(esriGridAxisEnum.esriGridAxisRight, Horizontal) = false;

            //设置IFormattedGridLabel属性
            INumericFormat pNumericFormat = (INumericFormat)new NumericFormat();
            pNumericFormat.AlignmentOption = esriNumericAlignmentEnum.esriAlignRight;
            pNumericFormat.RoundingOption = esriRoundingOptionEnum.esriRoundNumberOfDecimals;
            pNumericFormat.RoundingValue = 2;
            pNumericFormat.ShowPlusSign = false;
            pNumericFormat.UseSeparator = true;
            pNumericFormat.ZeroPad = true;
            pFormattedGridLabel.Format = (INumberFormat)pNumericFormat;

            //设置mapgrid的标签
            pMapGrid.LabelFormat = pGridLabel;

            //添加mapgrid到版式视图
            IGraphicsContainer pGraphicsContainer = (IGraphicsContainer)pActiveView;
            IMapFrame pMapFrame = (IMapFrame)pGraphicsContainer.FindFrame(pMap);
            IMapGrids pMapGrids = (IMapGrids)pMapFrame;
            pMapGrids.AddMapGrid(pMapGrid);

            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null);

但是不能满足我的要求

公司要求对生成后的网格进行填写值。(我想应该不是让生成网格 是不是应该生成 面装图层 然后在一个个面装属性里面填写值)  怎么实现 大师们帮帮我把;

ps :最好有动态生成面装网格图层  代码 

因为我还要根据面装图块  到其他图层里面查相交的区域。。。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,