物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 615|回复: 0

.net中的mapinfo开发:图层读写(二)

[复制链接]
发表于 2013-3-13 20:29:27 | 显示全部楼层 |阅读模式

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

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

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

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

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.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();


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-5-13 00:52 , Processed in 0.068818 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表