你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Web开发
.net中的mapinfo开发:图层读写(二)
 


在窗体上放置好MapControl后,可以用代码的方式来添加图层了,可以向MapControl.Map的属性去添加图层,这个属性是一个地图层,可以通过三种方法来加载地图,MapControl.Map是个Map的类型,表示地图,这个类型有一个Load的方法,支持三种类型的地图:Geoset,Workspace,Tables三种,因为Load方法是一个MapLoader的抽象类,类MapGeosetLoader,MapWorkSpaceLoader,MapTableLoader分别代表三种地图,这几种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();

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089