现在的位置: 首页 > 综合 > 正文

MapInfo开发心得——数据篇

2012年01月26日 ⁄ 综合 ⁄ 共 5900字 ⁄ 字号 评论关闭
上一篇文章介绍了一个简单的地图缩放工具的制作,接下来需要介绍一下地图数据读取及加载的设计。
首先,地图上的数据是来自数据库并自动生成的,我在这里并没有采用MapInfo的ADO.NET,而是采用本身系统的查询接口再加上自定义实体来生成地图图元,并插入MapInfo的Session中的临时表中以展示。
考虑到程序的扩展性,我将数据获取、图元展示、地图展示等分离开来,尽量做到灵活易懂。
数据获取接口,我只定义了一个方法:
Code
这个方法返回List<自定义抽象实体>,这个List表示多个需要展示的图元集合。
所以最重要的是AbstractEntity了。
在该抽象实体中,我定义了两个属性X和Y,用来表示图元的坐标:
公用属性

然后就是定义一大堆抽象方法了:

抽象方法
从上面代码可以看出,在同一个List<AbstractEntity>中,只要把不同的子类对象装到List中,在地图上显示的所有图元都可以不相同!
以下展示了其中一个子类的重写:
Code
其中CreateCustomColumn和FillCommand方法是比较重要的,我们来分析一下:
由于现在我使用MapInfo中临时表来插入图元数据,并需要插入一些适当的值到自定义列中,于是在CreateCustomColumn中,我由子类提供一个列列表,以便构造Command对象时使用,并使用FillCommand方法把适当的值插入。这样,子类也具有了在临时图元表中插入自定义值的可能。在地图获取到数据后,只要把所有的数据转换成MapInfo可识别的图元,并插入到临时图元表中,那么所有需要的图元都将出现在地图上了!

 

填充数据到临时图元表中

抱歉!评论已关闭.