C# 中MapX 控件的应用

ContractedBlock.gif ExpandedBlockStart.gif Code
  1using System;
  2using System.Drawing;
  3using System.Collections;
  4using System.ComponentModel;
  5using System.Windows.Forms;
  6using System.Data;
  7
  8namespace wa
  9ExpandedBlockStart.gifContractedBlock.gif{
 10    public class frmMain : System.Windows.Forms.Form
 11ExpandedSubBlockStart.gifContractedSubBlock.gif    {
 12        private AxMapXLib.AxMap mapMain;
 13        private double MapZoom;
 14        private double CenterX;
 15        private double CenterY;
 16        private System.Windows.Forms.StatusBar sbMain;
 17        private System.Windows.Forms.MainMenu mainMenu;
 18        private System.Windows.Forms.MenuItem miMap;
 19        private System.Windows.Forms.MenuItem miMapToolZoomIn;
 20        private System.Windows.Forms.MenuItem miMapToolZoomout;
 21        private System.Windows.Forms.MenuItem miMapToolPan;
 22        private System.Windows.Forms.MenuItem miMapToolRestore;
 23        private System.Windows.Forms.MenuItem miMapToolDistance;
 24        private System.Windows.Forms.MenuItem miMapToolArea;
 25        private System.Windows.Forms.MenuItem miMapTool;
 26        private System.ComponentModel.Container components = null;
 27 
 28        public frmMain()
 29ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 30            InitializeComponent();
 31        }

 32 
 33        protected override void Dispose( bool disposing )
 34ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 35            //
 36        }

 37 
 38ContractedSubBlock.gifExpandedSubBlockStart.gif        Windows 窗体设计器生成的代码Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码       
 39        private void InitializeComponent()
 40ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 41            //
 42        }

 43        #endregion

 44
 45        [STAThread]
 46        static void Main() 
 47ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 48            Application.Run(new Form1());
 49        }

 50 
 51        private void mapMain_PolyToolUsed(object sender, AxMapXLib.CMapXEvents_PolyToolUsedEvent e)
 52ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 53            if(e.toolNum == 99)//测量距离
 54ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 55                MapXLib.Points pts = (MapXLib.Points)e.points;
 56                MapXLib.Point pt1,pt2;
 57                double d=0.0;
 58 
 59                //计算顺序两个点距离,累计得到总距离
 60                for(int i=1;i<pts.Count;i++)
 61ExpandedSubBlockStart.gifContractedSubBlock.gif                {
 62                    pt1=pts.Item(i);
 63                    pt2=pts.Item(i+1);
 64                    d += mapMain.Distance(pt1.X,pt1.Y,pt2.X,pt2.Y);
 65                }

 66
 67                sbMain.Text = "距离:" + d.ToString();
 68            }

 69            else if(e.toolNum == 98)//面积
 70ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 71                MapXLib.Points pts = (MapXLib.Points)e.points;
 72                //偷懒了但是很正确
 73                MapXLib.FeatureFactory dd = mapMain.FeatureFactory;
 74                MapXLib.Style style = mapMain.DefaultStyle;
 75                sbMain.Text = "面积:" + dd.CreateRegion(pts,style).Area.ToString();
 76            }

 77        }

 78 
 79        private void miMapToolZoomIn_Click(object sender, System.EventArgs e)
 80ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 81            //放大
 82            mapMain.CurrentTool = MapXLib.ToolConstants.miZoomInTool;
 83        }
 
 84 
 85        private void miMapToolZoomout_Click(object sender, System.EventArgs e)
 86ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 87            //缩小
 88            mapMain.CurrentTool = MapXLib.ToolConstants.miZoomOutTool;
 89        }

 90 
 91        private void miMapToolPan_Click(object sender, System.EventArgs e)
 92ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 93            //拖动
 94            mapMain.CurrentTool = MapXLib.ToolConstants.miPanTool;
 95        }
 
 96 
 97        private void miMapToolRestore_Click(object sender, System.EventArgs e)
 98ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 99            //缩放到初始大小(全图)
100            mapMain.ZoomTo(this.MapZoom,this.CenterX,this.CenterY);
101        }

102 
103        private void miMapToolDistance_Click(object sender, System.EventArgs e)
104ExpandedSubBlockStart.gifContractedSubBlock.gif        {
105            //测量距离
106            mapMain.CurrentTool = (MapXLib.ToolConstants)99;
107        }

108 
109        private void miMapToolArea_Click(object sender, System.EventArgs e)
110ExpandedSubBlockStart.gifContractedSubBlock.gif        {
111            //测量面积
112            mapMain.CurrentTool = (MapXLib.ToolConstants) 98;
113        }

114 
115        private void frmMain_Load(object sender, System.EventArgs e)
116ExpandedSubBlockStart.gifContractedSubBlock.gif        {
117            //记录地图的比例合中心点
118            this.MapZoom = mapMain.Zoom;
119            this.CenterX = mapMain.CenterX;
120            this.CenterY = mapMain.CenterY;
121 
122            //创建测量距离的
123            mapMain.CreateCustomTool(99,(short)MapXLib.ToolTypeConstants.miToolTypePoly,MapXLib.CursorConstants.miCrossCursor,
124                MapXLib.CursorConstants.miCrossCursor,MapXLib.CursorConstants.miCrossCursor,false);
125 
126            //创建测量面积的工具
127            mapMain.CreateCustomTool(98,(short)MapXLib.ToolTypeConstants.miToolTypePolygon,MapXLib.CursorConstants.miCrossCursor,
128                MapXLib.CursorConstants.miCrossCursor,MapXLib.CursorConstants.miCrossCursor,false);
129        }

130    }

131}

132

转载于:https://www.cnblogs.com/LeenAnn/archive/2009/06/06/1497413.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值