快捷搜索:

MapXtreme 2005 学习心得 相关代码知识(三)

在看代码之前,先来懂得下简单的代码常识:

1.MapFactory[索引或舆图又名]:简单理解为寄放舆图的容器,要舆图就来这里取

相关代码:MapInfo.Mapping.Map myMap = MapInfo.Engine.Session.Current.MapFactory[索引或舆图又名];

2.Map:舆图,里面有很多器械,比如坐标体系,很多张图层(Layers),还多个图元(Legends);

相关代码:取图层,myMap.Layers[图层名];取图元,myMap.Legends[图元名]

3.FeatureLayer:图层,Layer的一种,和ps图片一样,一个图层里可以放很多个点,对应一张数据表

相关代码:FeatureLayer feaLayer=(MapInfo.Mapping.FeatureLayer)myMap.Layers[图层名];

4.TableInfo:表信息,包括表名,和列的添加都在这里,可以经由过程信息,创建一个Table,只是有两个列,是必备的

一个是Geometry列:寄放的图型种别,如:是点,照样线,照样其它,(坐标在创建点或线的时刻就有写在里面了)

一个是Style列,寄放的是图形类其余样式,如:点的颜色,点的外形。线的宽度之类的

其它的列,就自己根据必要了创建了

5.Table:数据表,对应一个图层。可以放很多行,和常见的表一样,

相关代码:

创建表:Table table= MapInfo.Engine.Session.Current.Catalog.CreateTable(TableInfo);

获取表:Table table= MapInfo.Engine.Session.Current.Catalog.GetTable(表名);

也可经由过程图层来取,假如已先关联的话了:

FeatureLayer feaLayer=(MapInfo.Mapping.FeatureLayer)myMap.Layers[图层名];

Table table=feaLayer.Table;

6.Catalog,简单说便是类似一个DataSet的器械,里面可以放很多的表

相关代码:MapInfo.Data.Table tb= MapInfo.Engine.Session.Current.Catalog.GetTable(表名);

7.Feature,可以放进图层里的器械,简单的说是应数据的行,行是列组成的,以是实例化是必要传进表格的列

相关代码:MapInfo.Data.Feature point = new MapInfo.Data.Feature(table.TableInfo.Columns);

把Feature放进Layer里:Table.InsertFeature(point ) ;

--------------------------------------------------------

相关的遐想如下:

FeatureLayer和Feature:FeatureLayer是一个层,而Feature只是层上面的一个点(一点就一行数据),或一条线之类的

行是由列组成的,以是创建行时,构造函数要传入列聚拢:

MapInfo.Data.Feature ptPoint = new MapInfo.Data.Feature(table.TableInfo.Columns);

数据层面:有一个Feature行,行就只能放入表Table,表又放Catalog里

以是行添加就Table.InsertFeature(行);

舆图层面:有一个FeatureLayer图层,点要放入图层集Layers里,图层要放入Map里,Map又放入MapFactory里

图层关联Table,Table 有很多行数据.以是就有可能有很多点(一行数据一个点),可能有很多线(一行数据一条线)

把图层放入图层集里便是Layers.Add(图层);

把图层集属于舆图,以是才有Map.Layers.Add(图层);

转自:http://www.cnblogs.com/cyq1162/archive/2009/11/02/1594425.html

您可能还会对下面的文章感兴趣: