当绘制累积产区水域时:
BeginAngle = Value(0)/(Value(0)+ Value(1))*180
EndAngle = 180
x3,x4,y3,y4计算方法与累积产油部分相同,上面使用到的API函数Pie声明如下:
Private DeclareFunction Pie Lib 'gdi32' (ByVal hdc As Long, ByVal X1 As Long, ByValY1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal x3 As Long, ByVal y3 AsLong, ByVal x4 As Long, ByVal y4 As Long) As Long
4.3 图形尺寸设置
渲染图层时,渲染图形的绘制尺寸如柱条高度、饼图半径是参考Draw函数传入的各渲染字段值确定的。但有时渲染字段值各记录之间相差数倍乃至数十倍,导致渲染表现困难。为了处理极端数据存在的情况,我们对于渲染图形尺寸设置采用了特殊算法。以计算柱状图各柱条高度为例,用户可以自定义设置最大高度及柱条宽度,如分别为Max和iBarWidth。据此设置柱条的最小高度Min为:

若图层各记录某渲染字段值分别为V1、V2、V3……Vn(其中最大值为Vmax),则各记录对应的柱条高度Hi分别为:

特殊情况下,如果渲染字段数值为0时,柱条高度也为0。若同一图层渲染多个字段,则将各字段值之和作为依据设置各渲染图形尺寸。
5. 专题图设置
5.1 分组显示
为了直观表达图层渲染结果,需要对其显示予以管理。如油井图层绘制综合柱状图之后,可以对月产油、月产水的柱状图及累积产油量、累积产水量的饼图分别单独显示。此功能的实现方法是定义两个MapObjects的组渲染对象,其中一个用来存储用户绘制的所有专题图,另一个用来存储用户当前设置显示的专题图。例如,当绘制综合柱状图时,定义一个pBarRenderer 和pPieRenderer两个图表渲染对像。pBarRenderer实现柱图渲染,pPieRenderer实现饼图渲染。绘图时将pBarRenderer,pPieRenderer加入到两个组渲染对象中,并使用显示组渲染对象渲染图层。不同图层的渲染结果同样可以采用上述方法管理显示。
5.2 标注显示
渲染图形能给人直观的量化概念,但如果用户需要了解其代表的真实数值,还需要对渲染结果予以标注。标注功能同样在Draw函数内实现,标注位置依据该函数X,Y参数及绘图美观需要适当调整得到。
实现方法:在clsBar与clsPie类中,添加一个标志标注是否显示的成员变量m_ShowLabel。在Draw函数中,判断m_ShowLabel是否为真,如是则在当前图元的适当位置绘制数值。用到的Windows API函数为TextOut,其声明格式如下:
Private DeclareFunction TextOut Lib 'gdi32' Alias 'TextOutA' (ByVal hdc AsLong, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCountAs Long) As Long
5.3 图例设置
图例是地图的必备元素,通过其我们可以获知绘制专题图的相关信息,如渲染字段、图形类型、颜色,以及图形尺寸与渲染值的相关关系。绘制图例功能的实现方法是在地图AfterLayerDraw事件中检测,如果图层渲染并且该渲染结果当前显示,则在地图适当位置绘制如图二所示的相关图例。发表论文。绘制方式同样是采用Windows API函数。

图二 图例
5.4 平移专题图
在井点分布稠密区块,油井渲染可能导致柱条或饼图之间相互叠合,此时,需要移动某个或某些井的专题图位置来达到美观的效果。本文已经提到,Draw函数参数中提供了当前渲染图元的坐标,可以作为绘制渲染图形的参考位置。我们可以据此相应设置专题图的平移。实现方法是在渲染类中定义一个动态的MapObjects点类型数组。当渲染某个图层时,设置数组空间与图层记录集个数相符,实现图层中图元与点对象的一一对应。进而用点对象的X,Y属性存储对应图元的渲染图形横纵向偏移量。
6. 结论
通过多个油田区块的实践测试,在关联油田生产或静态数据库之后,本文所述的渲染方法可以灵活绘制各指标各类型专题图,结果如图三所示。并对各专题图显示与否、标注、图例等进行设置。

图三 油井综合柱状图
参考文献
[1]张建荣.油藏动态分析方法在滚动勘探开发中的应用[J]. 石油天然气学报,2006,28 (3)
[2]薛伟. MapObjects——地理信息系统程序设计[M]. 北京:国防工业出版社, 2004
[3]范海军,姚军. 基于MapObjects的油藏动态分析系统[J]. 石油工业计算机应用,2008,3
3/3 首页 上一页 1 2 3 |