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

MapObjects2.2 在C#中的应用(动态加载地图)

楼主#
更多 发布于:2004-09-30 12:49
<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> <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 LoadMap<p></p></P>
<P  align=left>{<p></p></P>
<P  align=left>     /// <summary><p></p></P>
<P  align=left>     /// Form1 的摘要说明。<p></p></P>
<P  align=left>     /// </summary><p></p></P>
<P  align=left>     public class Form1 : System.Windows.Forms.Form<p></p></P>
<P  align=left>     {<p></p></P>
<P  align=left>          private AxMapObjects2.AxMap axMap1;<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 Form1()<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>              // TOD 在 InitializeComponent 调用后添加任何构造函数代码<p></p></P>
<P  align=left>              //<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(Form1));<p></p></P>
<P  align=left>              this.axMap1 = new AxMapObjects2.AxMap();<p></p></P>
<P  align=left>              ((System.ComponentModel.ISupportInitialize)(this.axMap1)).BeginInit();<p></p></P>
<P  align=left>              this.SuspendLayout();<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // axMap1<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              this.axMap1.Dock = System.Windows.Forms.DockStyle.Fill;<p></p></P>
<P  align=left>              this.axMap1.Location = new System.Drawing.Point(0, 0);<p></p></P>
<P  align=left>              this.axMap1.Name = "axMap1";<p></p></P>
<P  align=left>              this.axMap1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMap1.OcxState")));<p></p></P>
<P  align=left>              this.axMap1.Size = new System.Drawing.Size(600, 357);<p></p></P>
<P  align=left>              this.axMap1.TabIndex = 0;<p></p></P>
<P  align=left>              // <p></p></P>
<P  align=left>              // Form1<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(600, 357);<p></p></P>
<P  align=left>              this.Controls.Add(this.axMap1);<p></p></P>
<P  align=left>              this.Name = "Form1";<p></p></P>
<P  align=left>              this.Text = "Form1";<p></p></P>
<P  align=left>              this.Load += new System.EventHandler(this.Form1_Load);<p></p></P>
<P  align=left>              ((System.ComponentModel.ISupportInitialize)(this.axMap1)).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>
<P  align=left>         /// <summary><p></p></P>
<P  align=left>         /// 应用程序的主入口点。<p></p></P>
<P  align=left>         /// </summary><p></p></P>
<P  align=left>          [STAThread]<p></p></P>
<P  align=left>         static void Main() <p></p></P>
<P  align=left>         {<p></p></P>
<P  align=left>              Application.Run(new Form1());<p></p></P>
<P  align=left>         }<p></p></P>
<P  align=left> <p></p></P>
<P  align=left>          private void Form1_Load(object sender, System.EventArgs e)<p></p></P>
<P  align=left>         {<p></p></P>
<P  align=left>              //定义数据连接<p></p></P>
<P  align=left>              MapObjects2.DataConnection dc = new MapObjects2.DataConnectionClass();<p></p></P>
<P  align=left>              //定义图层<p></p></P>
<P  align=left>              MapObjects2.MapLayer layer = new MapObjects2.MapLayerClass();<p></p></P>
<P  align=left>              //我的地图文件都存在了"G:\\LoadMap\\bin\\Debug\\"目录下,请替换为自己的地图目录<p></p></P>
<P  align=left>              dc.Database = "G:\\LoadMap\\bin\\Debug\\";<p></p></P>
<P  align=left>              //连接不成功就退出<p></p></P>
<P  align=left>              if(!dc.Connect())<p></p></P>
<P  align=left>              {<p></p></P>
<P  align=left>                   MessageBox.Show("在指定的文件夹下没找到图层数据文件");<p></p></P>
<P  align=left>                   Application.Exit();<p></p></P>
<P  align=left>              }<p></p></P>
<P  align=left>              else//连接成功了就加载地图<p></p></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>                   //加载图层States,<p></p></P>
<P  align=left>                   layer.GeoDataset = dc.FindGeoDataset("States");<p></p></P>
<P  align=left>                   axMap1.Layers.Add(layer);<p></p></P>
<P  align=left>                   //加载图层Rivers,<p></p></P>
<P  align=left>                   layer.GeoDataset = dc.FindGeoDataset("Rivers");<p></p></P>
<P  align=left>                   axMap1.Layers.Add(layer);<p></p></P>
<P  align=left>                   //加载其它图层...<p></p></P>
<P  align=left>              }<p></p></P>
<P  align=left>              //必须进行刷新后才能显示<p></p></P>
<P  align=left>              axMap1.Refresh();<p></p></P>
<P  align=left>         }<p></p></P>
<P  align=left>     }<p></p></P>
<P  align=left>}<p></p></P>
喜欢0 评分0
GIS麦田守望者,期待与您交流。
edward22
路人甲
路人甲
  • 注册日期2004-07-01
  • 发帖数121
  • QQ
  • 铜币506枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-09-30 13:02
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
如果你爱他就让他学GIS,如果你恨他就让他学GIS!
举报 回复(0) 喜欢(0)     评分
berush
路人甲
路人甲
  • 注册日期2003-12-01
  • 发帖数158
  • QQ
  • 铜币622枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-09-30 15:16
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
gis_fnc
路人甲
路人甲
  • 注册日期2004-10-04
  • 发帖数38
  • QQ
  • 铜币268枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-10-04 23:07
好像没有实现动态加载图层!!努力!!
别人笑我太疯癫,我笑他人看不穿,不见五陵豪杰墓,无花无酒锄做田。
举报 回复(0) 喜欢(0)     评分
xinbo
路人甲
路人甲
  • 注册日期2006-02-28
  • 发帖数29
  • QQ
  • 铜币192枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-03-03 23:03
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em05.gif" />
举报 回复(0) 喜欢(0)     评分
万里风云
路人甲
路人甲
  • 注册日期2005-01-20
  • 发帖数16
  • QQ
  • 铜币31枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2006-08-14 15:43
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em05.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部