开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看

在窗体上放置好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();
















本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/941213 ,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Mybatis 分页插件 Pagehelper 的 PageInfo 字段属性解释
Mybatis 分页插件 Pagehelper 的 PageInfo 字段属性解释
67 0
MyBatis加强(2)~mybatis 插件开发 【分页插件-PageHelper】
MyBatis加强(2)~mybatis 插件开发 【分页插件-PageHelper】
31 0
MyBatis快速入门(二) 多表映射
前面介绍了MyBatis的单表映射。下面来看看更复杂的多表映射。 实体类和数据表 在这个例子中有三个实体类,作者、文章和评论。 public class Author { private int id; private String u...
731 0
[原创].NET 业务框架开发实战之八 业务层Mapping的选择策略
原文:[原创].NET 业务框架开发实战之八 业务层Mapping的选择策略 .NET 业务框架开发实战之八 业务层Mapping的选择策略 前言:在上一篇文章中提到了mapping,感觉很像在重新实现NHibernate。
772 0
强类型ASP.N“.NET研究”ET数据绑定改进版之第2版
  相关文章:教你30秒打造强类型ASP.NET数据绑定、强类型ASP.NET数据绑定改进版   之前的方法存在一个问题: Ivony...说:“每个类型都去写个Eval方法也很不爽的。” Kingthy说:“这样就到处有Func了,会不会太过头了?” 李永京说:“在项目中任何地方都要使用的方法,应该收集在Core级别的Dll中写成扩展方法。
798 0
+关注
10136
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载