DataProviderRefdpRef=newMapXtremeDataProviderRef(dbDPH,mapXtremeURL);
Layerlyr=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.
MapXtreme的新版本中提供了一个新的CompositeRender。通过它可以仅仅将某些需要改变的图层重画刷新,这样MapXtreme可以将图层分为静态图层和动态图层,前者只画一次并保存为本地的栅格图,而每一个处理输出地图请求时只重画动态图层。这样就可以实现诸如地理编码、车辆监控之类的应用。
如:
地理编码:
创建一个临时图层(Annotaion)用来保存地理编码的点符号,通过CompositeRender可以在生成绘出地图后再画点符号,符号在地图(包括地图标注)的上面。如果不使用CompositeRender,标注总是最后绘制,因此显示的编码点符号会位于标注的下面。
车辆监控:
象GPS监控之类的应用,可以将地图绘制一次,每次GPS数据更新时,只重画车辆的位置。
使用CompositeRender的注意事项:
静态图层会保存在本地,需要占用内存,如640x480的图像需要至少2.7MB;
改变视野时,静态图层可能变形,如线出现锯齿;
改变地图中心时,静态图层的边缘不能完成平移,这时必须重新生成静态图层。
示例:
下面代码演示了如何在地图上显示移动目标:
try{
//ASSUMPTIONS:
//ThevariablemapjisoftypeMapJandhasloadedamap
//ThevariablereqisoftypeHttpServletRequest
//ThevariableresisoftypeHttpServletResponse
//ThevariabledpisoftypeDoublePoint
//Addannotationlayer-thislayerwillconsistofoneimagesymbolto"animate"
AnnotationTableDescHelperatdh=newAnnotationTableDescHelper("Animation_Layer");
AnnotationDataProviderHelperadph=newAnnotationDataProviderHelper();
LocalDataProviderRefldpr=newLocalDataProviderRef(adph);
//Addtheannotationlayer
Layeranimate_layer=mapj.getLayers().insert(ldpr,atdh,0,"Animation_Layer");
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-27888-13.html
应该是他儿子去和人