gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1673回复:4

MapObjects2.2 在C#中的应用(基本地图功能)

楼主#
更多 发布于:2004-09-30 12:57
<P  align=left><B>关键字:MapObjects 2.2 C#<p></p></B></P>
<P  align=left> <p></p></P>
<P  align=left>仅仅实现了地图的放大、缩小、漫游、全图、距离、面积等功能。<p></p></P>
<P  align=left> <p></p></P>
<P  align=left>/*<p></p></P>
<P  align=left> * 杨雨田 blue_bat@126.com<p></p></P>
<P  align=left> * 2004年7月27日<p></p></P>
<P  align=left> */<p></p></P>
<P  align=left>using System;<p></p></P>
<P  align=left>using System.Drawing;<p></p></P>
<P  align=left>using System.Collections;<p></p></P>
<P  align=left>using System.ComponentModel;<p></p></P>
<P  align=left>using System.Windows.Forms;<p></p></P>
<P  align=left>using System.Data;<p></p></P>
<P  align=left> <p></p></P>
<P  align=left>namespace Artemis.IVS.Test<p></p></P>
<P  align=left>{<p></p></P>
<P  align=left>     /// <summary><p></p></P>
<P  align=left>     /// 处理实例<p></p></P>
<P  align=left>     /// </summary><p></p></P>
<P  align=left>     public class FrmMain : System.Windows.Forms.Form<p></p></P>
<P  align=left>     {<p></p></P>
<P  align=left>          private AxMapObjects2.AxMap mapMain;<p></p></P>
<P  align=left>          private System.Windows.Forms.MainMenu mainMenu1;<p></p></P>
<P  align=left>          private System.Windows.Forms.MenuItem miZoomIn;<p></p></P>
<P  align=left>          private System.Windows.Forms.MenuItem miZoomOut;<p></p></P>
<P  align=left>          private System.Windows.Forms.MenuItem miPan;<p></p></P>
<P  align=left>          private System.Windows.Forms.MenuItem miFullView;<p></p></P>
<P  align=left>          private int CurOperate = 0;<p></p></P>
<P  align=left>          private System.Windows.Forms.MenuItem miSelectByPoint;<p></p></P>
<P  align=left>          private System.Windows.Forms.MenuItem miDistance;<p></p></P>
<P  align=left>          private System.Windows.Forms.MenuItem miArea;<p></p></P>
<P  align=left>         /// <summary><p></p></P>
<P  align=left>         /// 必需的设计器变量。<p></p></P>
<P  align=left>         /// </summary><p></p></P>
<P  align=left>          private System.ComponentModel.Container components = null;<p></p></P>
<P  align=left> <p></p></P>
<P  align=left>         public FrmMain()<p></p></P>
<P  align=left>         {<p></p></P>
<P  align=left>              //<p></p></P>
<P  align=left>              // Windows 窗体设计器支持所必需的<p></p></P>
<P  align=left>              //<p></p></P>
<P  align=left>              InitializeComponent();<p></p></P>
<P  align=left>         }<p></p></P>
<P  align=left> <p></p></P>
<P  align=left>         /// <summary><p></p></P>
<P  align=left>         /// 清理所有正在使用的资源。<p></p></P>
<P  align=left>         /// </summary><p></p></P>
<P  align=left>          protected override void Dispose( bool disposing )<p></p></P>
<P  align=left>         {<p></p></P>
<P  align=left>              if( disposing )<p></p></P>
<P  align=left>              {<p></p></P>
<P  align=left>                   if (components != null) <p></p></P>
<P  align=left>                   {<p></p></P>
<P  align=left>                        components.Dispose();<p></p></P>
<P  align=left>                   }<p></p></P>
<P  align=left>              }<p></p></P>
<P  align=left>              base.Dispose( disposing );<p></p></P>
<P  align=left>         }<p></p></P>
<P  align=left> <p></p></P>
<P  align=left>          #region Windows 窗体设计器生成的代码<p></p></P>
<P  align=left>         /// <summary><p></p></P>
<P  align=left>         /// 设计器支持所需的方法 - 不要使用代码编辑器修改<p></p></P>
<P  align=left>         /// 此方法的内容。<p></p></P>
<P  align=left>          /// </summary><p></p></P>
<P  align=left>          private void InitializeComponent()<p></p></P>
<P  align=left>         {<p></p></P>
<P  align=left>              System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(FrmMain));<p></p></P>
<P  align=left>              this.mapMain = new AxMapObjects2.AxMap();<p></p></P>
<P  align=left>              this.mainMenu1 = new System.Windows.Forms.MainMenu();<p></p></P>
<P  align=left>              this.miZoomIn = new System.Windows.Forms.MenuItem();<p></p></P>
<P  align=left>              this.miZoomOut = new System.Windows.Forms.MenuItem();<p></p></P>
<P  align=left>              this.miPan = new System.Windows.Forms.MenuItem();<p></p></P>
<P  align=left>              this.miFullView = new System.Windows.Forms.MenuItem();<p></p></P>
<P  align=left>              this.miSelectByPoint = new System.Windows.Forms.MenuItem();<p></p></P>
<P  align=left>              this.miDistance = new System.Windows.Forms.MenuItem();<p></p></P>
<P  align=left>              this.miArea = new System.Windows.Forms.MenuItem();<p></p></P>
<P  align=left>              ((System.ComponentModel.ISupportInitialize)(this.mapMain)).BeginInit();<p></p></P>
<P  align=left>              this.SuspendLayout();<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // mapMain<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.mapMain.Dock = System.Windows.Forms.DockStyle.Fill;<p></p></P>
<P  align=left>              this.mapMain.Location = new System.Drawing.Point(0, 0);<p></p></P>
<P  align=left>              this.mapMain.Name = "mapMain";<p></p></P>
<P  align=left>              this.mapMain.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("mapMain.OcxState")));<p></p></P>
<P  align=left>              this.mapMain.Size = new System.Drawing.Size(592, 401);<p></p></P>
<P  align=left>              this.mapMain.TabIndex = 0;<p></p></P>
<P  align=left>              this.mapMain.MouseDownEvent += new AxMapObjects2._DMapEvents_MouseDownEventHandler(this.mapMain_MouseDownEvent);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // mainMenu1<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<p></p></P>
<P  align=left>                                                                                                    this.miZoomIn,<p></p></P>
<P  align=left>                                                                                                    this.miZoomOut,<p></p></P>
<P  align=left>                                                                                                    this.miPan,<p></p></P>
<P  align=left>                                                                                                    this.miFullView,<p></p></P>
<P  align=left>                                                                                                    this.miSelectByPoint,<p></p></P>
<P  align=left>                                                                                                    this.miDistance,<p></p></P>
<P  align=left>                                                                                                    this.miArea});<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // miZoomIn<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.miZoomIn.Index = 0;<p></p></P>
<P  align=left>              this.miZoomIn.Text = "放大";<p></p></P>
<P  align=left>              this.miZoomIn.Click += new System.EventHandler(this.miZoomIn_Click);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // miZoomOut<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.miZoomOut.Index = 1;<p></p></P>
<P  align=left>              this.miZoomOut.Text = "缩小";<p></p></P>
<P  align=left>              this.miZoomOut.Click += new System.EventHandler(this.miZoomOut_Click);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // miPan<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.miPan.Index = 2;<p></p></P>
<P  align=left>              this.miPan.Text = "漫游";<p></p></P>
<P  align=left>              this.miPan.Click += new System.EventHandler(this.miPan_Click);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // miFullView<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.miFullView.Index = 3;<p></p></P>
<P  align=left>              this.miFullView.Text = "全图";<p></p></P>
<P  align=left>              this.miFullView.Click += new System.EventHandler(this.miFullView_Click);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // miSelectByPoint<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.miSelectByPoint.Index = 4;<p></p></P>
<P  align=left>              this.miSelectByPoint.Text = "点选";<p></p></P>
<P  align=left>              this.miSelectByPoint.Click += new System.EventHandler(this.miSelectByPoint_Click);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // miDistance<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.miDistance.Index = 5;<p></p></P>
<P  align=left>              this.miDistance.Text = "距离";<p></p></P>
<P  align=left>              this.miDistance.Click += new System.EventHandler(this.miDistance_Click);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // miArea<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.miArea.Index = 6;<p></p></P>
<P  align=left>              this.miArea.Text = "面积";<p></p></P>
<P  align=left>              this.miArea.Click += new System.EventHandler(this.miArea_Click);<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // FrmMain<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);<p></p></P>
<P  align=left>              this.ClientSize = new System.Drawing.Size(592, 401);<p></p></P>
<P  align=left>              this.Controls.Add(this.mapMain);<p></p></P>
<P  align=left>              this.Menu = this.mainMenu1;<p></p></P>
<P  align=left>              this.Name = "FrmMain";<p></p></P>
<P  align=left>              this.Text = "Artemis.IVS.Test";<p></p></P>
<P  align=left>              this.Load += new System.EventHandler(this.FrmMain_Load);<p></p></P>
<P  align=left>              ((System.ComponentModel.ISupportInitialize)(this.mapMain)).EndInit();<p></p></P>
<P  align=left>              this.ResumeLayout(false);<p></p></P>
<P  align=left> <p></p></P>
<P  align=left>         }<p></p></P>
<P  align=left>          #endregion<p></p></P>
<P  align=left> <p></p></P>
喜欢0 评分0
GIS麦田守望者,期待与您交流。
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-09-30 12:57
<FONT size=2><FONT face=新宋体>        /// <summary><p></p></FONT></FONT><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 应用程序的主入口点。<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          [STAThread]<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         static void Main() <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              Application.Run(new FrmMain());<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// <summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 全图<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void miFullView_Click(object sender, System.EventArgs e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              this.CurOperate = 4;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.Extent = mapMain.FullExtent;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.MousePointer = MapObjects2.MousePointerConstants.moDefault;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// <summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 漫游<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void miPan_Click(object sender, System.EventArgs e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              this.CurOperate = 3; <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.MousePointer = MapObjects2.MousePointerConstants.moPan;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// <summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 缩小<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void miZoomOut_Click(object sender, System.EventArgs e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              this.CurOperate = 2;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.MousePointer = MapObjects2.MousePointerConstants.moZoomOut;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// <summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 放大<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void miZoomIn_Click(object sender, System.EventArgs e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              this.CurOperate = 1;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.MousePointer = MapObjects2.MousePointerConstants.moZoomIn;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// <summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 放大缩小等的处理过程<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void mapMain_MouseDownEvent(object sender, AxMapObjects2._DMapEvents_MouseDownEvent e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              MapObjects2.Rectangle rect;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              MapObjects2.Point pt = mapMain.ToMapPoint(e.x,e.y);<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              if(e.button == 2) this.CurOperate = 0;//右键点击取消<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              switch(this.CurOperate)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   case 1://放大<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       rect = mapMain.TrackRectangle();<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        if(rect == null|| (rect.Width < 0.00005) || (rect.Height < 0.00005))<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       {                           <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            rect = mapMain.Extent;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            rect.ScaleRectangle(0.6667);<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            rect.Offset(-(rect.Center.X - pt.X),-(rect.Center.Y - pt.Y));<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        mapMain.Extent = rect;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       break;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   case 2://缩小<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       rect = mapMain.TrackRectangle();<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       if ((null == rect) || (rect.Width < 0.00005) || (rect.Height < 0.00005))<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            rect = mapMain.Extent;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            rect.ScaleRectangle(1.5);<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            rect.Offset(-(rect.Center.X - pt.X),-(rect.Center.Y - pt.Y));<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       else<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       {    <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            double dRate = mapMain.Extent.Width / rect.Width * 10;  <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            rect.ScaleRectangle(dRate);<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        mapMain.Extent = rect;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       break;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   case 3://漫游<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        mapMain.Pan();<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       break;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   case 5://点选<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       break;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   case 6://距离<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        MapObjects2.Points  pts;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       pts = (MapObjects2.Points)mapMain.TrackLine().Parts.Item(0);<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       double dDistance = 0;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        for(int i=0;i<pts.Count-1;i++)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                            dDistance += Math.Sqrt(pts.Item(i).X*pts.Item(i).X + pts.Item(i).Y*pts.Item(i).Y);<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        this.Text = mapMain.ToMapDistance((float)dDistance).ToString();<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       break;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   case 7://面积<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        MapObjects2.Polygon ply = mapMain.TrackPolygon();<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       double dArea = ply.Area;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        this.Text = mapMain.ToMapDistance((float)dArea).ToString();<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       break;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   default://箭头<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                        mapMain.MousePointer = MapObjects2.MousePointerConstants.moDefault;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                       break;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>                   }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2004-09-30 12:58
<FONT size=2><FONT face=新宋体>        /// <summary><p></p></FONT></FONT><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 点选<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void miSelectByPoint_Click(object sender, System.EventArgs e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              this.CurOperate = 5;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.MousePointer = MapObjects2.MousePointerConstants.moArrowQuestion;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// <summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 距离<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void miDistance_Click(object sender, System.EventArgs e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              this.CurOperate = 6;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.MousePointer = MapObjects2.MousePointerConstants.moCross;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> <p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// <summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// 面积<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         /// </summary><p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>          private void miArea_Click(object sender, System.EventArgs e)<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         {<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              this.CurOperate = 7;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>              mapMain.MousePointer = MapObjects2.MousePointerConstants.moCross;<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>         }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>     }<p></p></P><P 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>}<p></p></P><P 0cm 0cm 0pt"> <p></p></P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
eeleo_Lion
论坛版主
论坛版主
  • 注册日期2003-11-29
  • 发帖数1798
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-10-12 00:30
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
举报 回复(0) 喜欢(0)     评分
xinbo
路人甲
路人甲
  • 注册日期2006-02-28
  • 发帖数29
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-03-03 22:46
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部