天天看点

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

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

表信息,包括表名,和列的添加都在这里,可以通过信息,创建一个table,只是有两个列,是必备的

一个是geometry列:存放的图型类别,如:是点,还是线,还是其它,(坐标在创建点或线的时候就有写在里面了)

一个是style列,存放的是图形类别的样式,如:点的颜色,点的形状。线的宽度之类的

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

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

5.table

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

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

相关代码:

创建表: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;

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

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(行);

地图层面

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

有一个featurelayer图层,点要放入图层集layers里,图层要放入map里,map又放入mapfactory里

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

把图层放入图层集里就是layers.add(图层);

把图层集属于地图,所以才有map.layers.add(图层);

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

继续阅读