发表用户:LongRiver
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?BoardID=11&id=3696
信息原始来源:不祥

文章标题:MapXtreme for Java开发专题六:怎样进行数据绑定-将数据库中的属性数据与地图进行动态连结


MapXtreme for Java支持数据绑定,可以将和地图相关的数据信息保存在数据库中,通过数据绑定将数据库内的数据在地图上可视化。

数据绑定需要使用DataProvider:com.mapinfo.dp.databinding。

数据绑定的步骤:

1为每个表创建TableDescHelper

2创建DataBindingTableDescHelper,需要第一步中创建的TableDescHelper为参数,还需要关联两个表的字段(未必同名)。

3为每个表创建DataProviderHelper

4创建DataBindingDataProviderHelper,需要用到上一步的DataProvider

5使用DataBindingDataProviderHelper创建DataProviderRef

6向Layers中添加Layer

另外,也可以通过图层控制Bean将数据绑定的图层添加到VisualMapJ。

数据绑定示例:

TABDataProviderHelper tabDPH = new TABDataProviderHelper(directory);

JDBCDataProviderHelper jdbcDPH = new JDBCDataProviderHelper("jdbc:oracle:thin:@localhost:1521:sid", user, pass,"oracle.jdbc.driver.OracleDriver");

DataBindingDataProviderHelper dbDPH = new DataBindingDataProviderHelper(tabDPH, jdbcDPH);

String tabCols = {"State"};

String jdbcCols = {"STATEABBREVIATION"};

TABTableDescHelper tabDesc = new TABTableDescHelper("states.tab");

JDBCTableDescHelper jdbcDesc = new JDBCTableDescHelper("STATES", null, false);

DataBindingTableDescHelper dbDesc = new DataBindingTableDescHelper(tabDesc, jdbcDesc, tabCols,jdbcCols);

DataProviderRef dpRef = new MapXtremeDataProviderRef(dbDPH, mapXtremeURL);

Layer lyr = mapj.getLayers().add(dpRef, dbDesc,"DataBinding");

 

下面介绍数据聚合的概念:(com.mapinfo.dp.databinding.Aggregation)

这个类决定数据绑定时,如果处理相关的多条记录。

如:

dbDesc.addAggregation(Aggregation.SUM);

数据聚合有如下几种类型:

1)  sum求和

2)  count求个数

3)  average求平均

4)  minimum求最小值

5)  maximum求最大值

可以为每个字段定义聚合,但各个字段必须相同。

聚合的所有操作都属于DataBindingTableDescHelper.