天天看點

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

MapXtreme 2005 學習心得 相關代碼知識(三)

可以放進圖層裡的東西,簡單的說是應資料的行,行是列組成的,是以執行個體化是需要傳進表格的列

相關代碼:mapinfo.data.feature point = new mapinfo.data.feature(table.tableinfo.columns);

把feature放進layer裡:table.insertfeature(point ) ;

MapXtreme 2005 學習心得 相關代碼知識(三)

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

相關的聯想如下:

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 學習心得 相關代碼知識(三)

版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:http://www.cnblogs.com/cyq1162/archive/2009/11/02/1594425.html

繼續閱讀