在看代码之前,先来了解下简单的代码知识:
1.MapFactory[索引或地图别名]
相关代码:MapInfo.Mapping.Map myMap = MapInfo.Engine.Session.Current.MapFactory[索引或地图别名];
2.Map:地图
相关代码:取图层,myMap.Layers[图层名];取图元,myMap.Legends[图元名]
3.FeatureLayer
相关代码:FeatureLayer feaLayer=(MapInfo.Mapping.FeatureLayer)myMap.Layers[图层名];
4.TableInfo
一个是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
相关代码: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
行是由列组成的,所以创建行时,构造函数要传入列集合:
MapInfo.Data.Feature ptPoint = new MapInfo.Data.Feature(table.TableInfo.Columns);
数据层面
所以行添加就Table.InsertFeature(行);
地图层面
图层关联Table,Table 有很多行数据.所以就有可能有很多点(一行数据一个点),可能有很多线(一行数据一条线)
把图层放入图层集里就是Layers.Add(图层);
把图层集属于地图,所以才有Map.Layers.Add(图层);