MapX中为出图加上公里格和边框

本文介绍了一种使用MapX库为地图添加边框网格的方法。通过创建临时图层,并利用循环绘制水平和垂直线条的方式,实现均匀分布的网格线覆盖整个地图范围。此方法适用于需要在地图上显示坐标网格的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void AddFrameGridLine(AxMapXLib.AxMap CaxMap,double ticker)//为地图添加边框
        {
            MapXLib.Feature TempFea;
            MapXLib.Feature m_fea;
            MapXLib.StyleClass tempStyle;
            MapXLib.Layer m_tempLayer;
            double pntMinX;
            double pntMinY;
            try
            {               
                    tempStyle = new MapXLib.StyleClass();
                    //设置矩形边框样式
                    m_tempLayer = CaxMap.Layers.CreateLayer("FrameLayer", System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                    tempStyle.RegionPattern = MapXLib.FillPatternConstants.miPatternNoFill;
                    tempStyle.RegionBorderColor = (uint)MapXLib.ColorConstants.miColorBlack;
                    tempStyle.RegionBorderWidth = 1;
                    //在临时图层添加大小为mymap的边界的Rectangle对象
                    MapXLib.Points pnts = new MapXLib.Points();
                   
                    pntMinX = Math.Round(CaxMap.CtlBounds.XMin,0);
                    pntMinY = Math.Round(CaxMap.CtlBounds.YMin, 0);
                    while (pntMinX < CaxMap.CtlBounds.XMax)
                    {
                        pnts.RemoveAll();
                        pnts.AddXY(pntMinX,CaxMap.CtlBounds.YMin,System.Reflection.Missing.Value);
                        pnts.AddXY(pntMinX, CaxMap.CtlBounds.YMax, System.Reflection.Missing.Value);
                        TempFea = CaxMap.FeatureFactory.CreateLine(pnts, tempStyle);
                        m_fea = m_tempLayer.AddFeature(TempFea, System.Reflection.Missing.Value);
                        m_fea.Update(true, System.Reflection.Missing.Value);
                        pntMinX = pntMinX + ticker;
                    }
                    while (pntMinY < CaxMap.CtlBounds.YMax)
                    {
                        pnts.RemoveAll();
                        pnts.AddXY(CaxMap.CtlBounds.XMin, pntMinY, System.Reflection.Missing.Value);
                        pnts.AddXY(CaxMap.CtlBounds.XMax, pntMinY, System.Reflection.Missing.Value);
                        TempFea = CaxMap.FeatureFactory.CreateLine(pnts, tempStyle);
                        m_fea = m_tempLayer.AddFeature(TempFea, System.Reflection.Missing.Value);
                        m_fea.Update(true, System.Reflection.Missing.Value);
                        pntMinY = pntMinY + ticker;
                    }
                    pnts.RemoveAll();
                    pnts.AddXY(CaxMap.CtlBounds.XMin, CaxMap.CtlBounds.YMin, 1);
                    pnts.AddXY(CaxMap.CtlBounds.XMax, CaxMap.CtlBounds.YMin, 2);
                    pnts.AddXY(CaxMap.CtlBounds.XMax, CaxMap.CtlBounds.YMax, 3);
                    pnts.AddXY(CaxMap.CtlBounds.XMin, CaxMap.CtlBounds.YMax, 4);
                    TempFea = CaxMap.FeatureFactory.CreateRegion(pnts, tempStyle);
                    m_fea = m_tempLayer.AddFeature(TempFea, System.Reflection.Missing.Value);
                    m_fea.Update(true, System.Reflection.Missing.Value);               
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("InitEagleReigon:" + ex.Message);
            }
        }        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值