MapObjects2.2 在C#中的应用(动态加载地图) 关键字:MapObjects 2.2 C# 本篇文章实现了动态加载地图的功能,废话少说,功能实现见代码。 加载过程代码: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace LoadMap { /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { private AxMapObjects2.AxMap axMap1; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null; public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // } /// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改[page] /// 此方法的内容。 /// </summary> private void InitializeComponent() { System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.axMap1 = new AxMapObjects2.AxMap(); ((System.ComponentModel.ISupportInitialize)(this.axMap1)).BeginInit(); this.SuspendLayout(); // // axMap1 // this.axMap1.Dock = System.Windows.Forms.DockStyle.Fill; this.axMap1.Location = new System.Drawing.Point(0, 0); this.axMap1.Name = "axMap1"; this.axMap1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMap1.OcxState"))); this.axMap1.Size = new System.Drawing.Size(600, 357); this.axMap1.TabIndex = 0; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(600, 357); this.Controls.Add(this.axMap1); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.axMap1)).EndInit(); this.ResumeLayout(false); } #endregion /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); } private void Form1_Load(object sender, System.EventArgs e) { //定义数据连接 MapObjects2.DataConnection dc = new MapObjects2.DataConnectionClass(); //定义图层 MapObjects2.MapLayer layer = new MapObjects2.MapLayerClass(); //我的地图文件都存在了"G:\\LoadMap\\bin\\Debug\\"目录下,请替换为自己的地图目录 dc.Database = "G:\\LoadMap\\bin\\Debug\\"; //连接不成功就退出 if(!dc.Connect()) { MessageBox.Show("在指定的文件夹下没找到图层数据文件"); Application.Exit(); } else//连接成功了就加载地图 { /* * 地图加载顺序一般是面、线、点,先加载的在地图的最下 */ //加载图层States, layer.GeoDataset = dc.FindGeoDataset("States"); axMap1.Layers.Add(layer); //加载图层Rivers, layer.GeoDataset = dc.FindGeoDataset("Rivers"); axMap1.Layers.Add(layer); //加载其它图层... } //必须进行刷新后才能显示 axMap1.Refresh(); } } } 中国.Net俱乐部转载此文。让我们一起进步,共享人类技术资源。[www.chinaaspx.com]
|