MapObjects2 在C#中的应用--基本地图功能

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace Artemis.IVS.Test { /// <summary> /// 处理实例 /// </summary> public class FrmMain : System.Windows.Forms.Form { private AxMapObjects2.AxMap mapMain; private System.Windows.Forms.MainMenu mainMenu1; private System.Windows.Forms.MenuItem miZoomIn; private System.Windows.Forms.MenuItem miZoomOut; private System.Windows.Forms.MenuItem miPan; private System.Windows.Forms.MenuItem miFullView; private int CurOperate = 0; private System.Windows.Forms.MenuItem miSelectByPoint; private System.Windows.Forms.MenuItem miDistance; private System.Windows.Forms.MenuItem miArea; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null; public FrmMain() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(FrmMain)); this.mapMain = new AxMapObjects2.AxMap(); this.mainMenu1 = new System.Windows.Forms.MainMenu(); this.miZoomIn = new System.Windows.Forms.MenuItem(); this.miZoomOut = new System.Windows.Forms.MenuItem(); this.miPan = new System.Windows.Forms.MenuItem(); this.miFullView = new System.Windows.Forms.MenuItem(); this.miSelectByPoint = new System.Windows.Forms.MenuItem(); this.miDistance = new System.Windows.Forms.MenuItem(); this.miArea = new System.Windows.Forms.MenuItem(); ((System.ComponentModel.ISupportInitialize)(this.mapMain)).BeginInit(); this.SuspendLayout(); // // mapMain // this.mapMain.Dock = System.Windows.Forms.DockStyle.Fill; this.mapMain.Location = new System.Drawing.Point(0, 0); this.mapMain.Name = "mapMain"; this.mapMain.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("mapMain.OcxState"))); this.mapMain.Size = new System.Drawing.Size(592, 401); this.mapMain.TabIndex = 0; this.mapMain.MouseDownEvent += new AxMapObjects2._DMapEvents_MouseDownEventHandler(this.mapMain_MouseDownEvent); // // mainMenu1 // this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.miZoomIn, this.miZoomOut, this.miPan, this.miFullView, this.miSelectByPoint, this.miDistance, this.miArea}); // // miZoomIn // this.miZoomIn.Index = 0; this.miZoomIn.Text = "放大"; this.miZoomIn.Click += new System.EventHandler(this.miZoomIn_Click); // // miZoomOut // this.miZoomOut.Index = 1; this.miZoomOut.Text = "缩小"; this.miZoomOut.Click += new System.EventHandler(this.miZoomOut_Click); // // miPan // this.miPan.Index = 2; this.miPan.Text = "漫游"; this.miPan.Click += new System.EventHandler(this.miPan_Click); // // miFullView // this.miFullView.Index = 3; this.miFullView.Text = "全图"; this.miFullView.Click += new System.EventHandler(this.miFullView_Click); // // miSelectByPoint // this.miSelectByPoint.Index = 4; this.miSelectByPoint.Text = "点选"; this.miSelectByPoint.Click += new System.EventHandler(this.miSelectByPoint_Click); // // miDistance // this.miDistance.Index = 5; this.miDistance.Text = "距离"; this.miDistance.Click += new System.EventHandler(this.miDistance_Click); // // miArea // this.miArea.Index = 6; this.miArea.Text = "面积"; this.miArea.Click += new System.EventHandler(this.miArea_Click); // // FrmMain // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(592, 401); this.Controls.Add(this.mapMain); this.Menu = this.mainMenu1; this.Name = "FrmMain"; this.Text = "Artemis.IVS.Test"; this.Load += new System.EventHandler(this.FrmMain_Load); ((System.ComponentModel.ISupportInitialize)(this.mapMain)).EndInit(); this.ResumeLayout(false); } #endregion /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run(new FrmMain()); } /// <summary> /// 全图 /// </summary> private void miFullView_Click(object sender, System.EventArgs e) { this.CurOperate = 4; mapMain.Extent = mapMain.FullExtent; mapMain.MousePointer = MapObjects2.MousePointerConstants.moDefault; } /// <summary> /// 漫游 /// </summary> private void miPan_Click(object sender, System.EventArgs e) { this.CurOperate = 3; mapMain.MousePointer = MapObjects2.MousePointerConstants.moPan; } /// <summary> /// 缩小 /// </summary> private void miZoomOut_Click(object sender, System.EventArgs e) { this.CurOperate = 2; mapMain.MousePointer = MapObjects2.MousePointerConstants.moZoomOut; } /// <summary> /// 放大 /// </summary> private void miZoomIn_Click(object sender, System.EventArgs e) { this.CurOperate = 1; mapMain.MousePointer = MapObjects2.MousePointerConstants.moZoomIn; } /// <summary> /// 放大缩小等的处理过程 /// </summary> private void mapMain_MouseDownEvent(object sender, AxMapObjects2._DMapEvents_MouseDownEvent e) { MapObjects2.Rectangle rect; MapObjects2.Point pt = mapMain.ToMapPoint(e.x,e.y); if(e.button == 2) this.CurOperate = 0;//右键点击取消 switch(this.CurOperate) { case 1://放大 { rect = mapMain.TrackRectangle(); if(rect == null|| (rect.Width < 0.00005) || (rect.Height < 0.00005)) { rect = mapMain.Extent; rect.ScaleRectangle(0.6667); rect.Offset(-(rect.Center.X - pt.X),-(rect.Center.Y - pt.Y)); } mapMain.Extent = rect; break; } case 2://缩小 { rect = mapMain.TrackRectangle(); if ((null == rect) || (rect.Width < 0.00005) || (rect.Height < 0.00005)) { rect = mapMain.Extent; rect.ScaleRectangle(1.5); rect.Offset(-(rect.Center.X - pt.X),-(rect.Center.Y - pt.Y)); } else { double dRate = mapMain.Extent.Width / rect.Width * 10; rect.ScaleRectangle(dRate); } mapMain.Extent = rect; break; } case 3://漫游 { mapMain.Pan(); break; } case 5://点选 { break; } case 6://距离 { MapObjects2.Points pts; pts = (MapObjects2.Points)mapMain.TrackLine().Parts.Item(0); double dDistance = 0; for(int i=0;i<pts.Count-1;i++) { dDistance += Math.Sqrt(pts.Item(i).X*pts.Item(i).X + pts.Item(i).Y*pts.Item(i).Y); } this.Text = mapMain.ToMapDistance((float)dDistance).ToString(); break; } case 7://面积 { MapObjects2.Polygon ply = mapMain.TrackPolygon(); double dArea = ply.Area; this.Text = mapMain.ToMapDistance((float)dArea).ToString(); break; } default://箭头 { mapMain.MousePointer = MapObjects2.MousePointerConstants.moDefault; break; } } } /// <summary> /// 点选 /// </summary> private void miSelectByPoint_Click(object sender, System.EventArgs e) { this.CurOperate = 5; mapMain.MousePointer = MapObjects2.MousePointerConstants.moArrowQuestion; } /// <summary> /// 距离 /// </summary> private void miDistance_Click(object sender, System.EventArgs e) { this.CurOperate = 6; mapMain.MousePointer = MapObjects2.MousePointerConstants.moCross; } /// <summary> /// 面积 /// </summary> private void miArea_Click(object sender, System.EventArgs e) { this.CurOperate = 7; mapMain.MousePointer = MapObjects2.MousePointerConstants.moCross; } } } 

你可能感兴趣的:(windows,object,C#,null,resources,Components)