博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net中的mapinfo开发:图层读写(二)
阅读量:7034 次
发布时间:2019-06-28

本文共 1244 字,大约阅读时间需要 4 分钟。

在窗体上放置好MapControl后,可以用代码的方式来添加图层了,可以向MapControl.Map的属性去添加图层,这个属性是一个地图层,可以通过三种方法来加载地图,MapControl.Map是个Map的类型,表示地图,这个类型有一个Load的方法,支持三种类型的地图:Geoset,Workspace,Tables三种,因为Load方法是一个MapLoader的抽象类,类MapGeosetLoaderMapWorkSpaceLoaderMapTableLoader分别代表三种地图,这几种Loader的构造都是字符串类型,即三种文件的路径,三种文件的扩展名为*.gst*.mws*.tab

现在画一个图层,有两组折线,图层命名为test.tab

 

首先分析这两组折线,第一组折线由5个点构成,第二组折线有3个点构成,这个图层对应的Table应该有两行数据。

 

下面的代码实现了对图层点的查询:

Catalog Cat = MapInfo.Engine.Session.Current.Catalog;

            Table tblTemp = Cat.GetTable("a");

            DataTable dt = new DataTable();

            MIDataReader dr = tblTemp.ExecuteReader();

            dt.Load(dr);

            dataGridView1.DataSource = dt;

 

            for (int i = 0; i < dt.Rows.Count; i++)

            {

                MultiCurve mc = dt.Rows[i].ItemArray[0] as MapInfo.Geometry.MultiCurve;

                Curve cur = mc[0];

                foreach (var v in cur.SamplePoints())

                {

                    MessageBox.Show("X:" + v.x + "   Y:" + v.y);

                }

            }

ADO.NET的方式进行查询:

            MIConnection con = new MIConnection();

            MICommand cmd = con.CreateCommand();

            cmd.CommandText = "select * from a";

            con.Open();

            MIDataReader dr = cmd.ExecuteReader();

            while (dr.Read())

            {

                MapInfo.Geometry.MultiCurve mc = dr.GetValue(0) as MapInfo.Geometry.MultiCurve;

                Curve cur = mc[0];

                foreach (var v in cur.SamplePoints())

                {

                    MessageBox.Show("X:" + v.x + "   Y:" + v.y);

                }

            }

            dr.Close();

            con.Close();

转载地址:http://hxjal.baihongyu.com/

你可能感兴趣的文章
理想中的分布式架构
查看>>
[转载]jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
查看>>
在网页中嵌入任意字体的解决方案
查看>>
UVa 11491 Erasing and Winning
查看>>
Sencha-Touch开发环境准备(Webstorm+Ruby)
查看>>
MapReduce(3): Partitioner, Combiner and Shuffling
查看>>
转老赵同志的博客:Indy10记录及其他类型的传送
查看>>
用两个栈实现一个队列
查看>>
第三方分享
查看>>
几道题目
查看>>
Silverlight 登陆界面
查看>>
整数溢出(转帖)
查看>>
MySql不支持事务解决
查看>>
SQL Server 数据库备份和还原认识和总结(二)
查看>>
需求改进与系统设计
查看>>
UI Input Validate
查看>>
Git以及TortoiseGit的下载安装使用
查看>>
Oracle + Entity Framework 更新没有设置主键的表
查看>>
包和包体简介
查看>>
显示界面的,调节frame的代码 写到 viewwillappear,
查看>>