(湖南省第三测绘院,湖南 长沙 410118)
随着各级政府对基础建设加大投入,越来越多的铁路、公路、管线等线性工程开始进行规划、设计、建设、使用,地形图作为各项工作的基础,贯穿线性工程的整个生命周期。线性工程使用的地形图呈条带状,为区别于其他地形图,一般称之为带状地形图。
带状地形图形状不规则,呈条带状展开,如果使用常规的矩形分幅或梯形图幅,图幅内势必存在大量空白区域,浪费严重,图幅数量巨大,管理不便。
为解决常规分幅带来的问题,各位研究者提出了多种解决方案,并且在AutoCAD、ArcGIS等软件平台进行了实践。
舒玲霞等[1]采用线性回归的方法对线性工程中心线进行分析,将带状地形图按A3幅面进行分幅,能充分利用图纸,且布局较为美观。杨善文等[2]采用矢量数据结构中的Spaghetti结构与拓扑数据结构相结合的数据结构来表达矢量数据模型,对带状地形图进行分幅。党涛等[3]研究了在ArcGIS下采用C#语言进行带状地形图分幅。
目前已有的分幅方法主要考虑充分利用图纸,未对图件管理和使用进行充分研究,分幅后图幅数量多,相邻图幅首尾中心线指向不一,拼接麻烦,使用不便。
笔者采用C++语言,基于AutoCAD2007软件平台,使用ObjectARX开发了带状地形图分幅软件,采用连续排版方式,将带状地形图打印在长度不限的单张图纸,采用手风琴式折叠,折叠后宽度为210 mm,与普通A4纸一致,便于保存归档。使用时可方便地展开至所需要的任意区域,沿分幅图框线对折即可完成拼接。
软件主要流程:
(1)获取线路中心线,采用固定宽度缓冲的方式获得地形图范围。(2)计算包含带状地形图的最小矩形。如果最小矩形的宽度小于图纸宽度,则输出为单一图框图纸,跳过(3)(4)(5)步骤。(3)以线路中心线第一条折线作为起始边,确定第一个图幅的梯形图框范围。(4)确定下一图幅范围,直到终点,图幅范围数据包括起终点的中心线位置,起终点分幅裁切线的方向。(5)计算各图框外接矩形需要的总长度,确定各分幅图框在总图中的目标位置。(6)按分幅裁切线分割图形,并移动至总图中的目标位置,绘制梯形图幅图框。(7)添加矩形图廓,矩形图廓图框包含全部梯形图幅。(8)加入折叠标志,从矩形图幅起点开始,每210 mm(图上距离)在矩形图框的两条长边添加3 mm长的短线,作为折叠标记。(9)加入封面、封底。封面主要包括线路名称、线路起点里程、线路终点里程、图形比例尺等信息。封底主要包括图例和必要的备注信息。
软件设计了多个数据结构和辅助函数,以下说明部分数据结构和辅助函数。
用于保存梯形图框信息的数据结构如下:
class CTrapezoidFrame
{
public:
CTrapezoidFrame():drct(0),startAngle(0),endAngle(0){};
AcGePoint3d startPt;//中线的起点
AcGePoint3d endPt;//中线的终点
double drct;//中线的方向
double startAngle;//起点边的方向
double endAngle;//终点边的方向
AcGePoint3d extStartPt;//外接矩形中线起点
AcGePoint3d extEndPt;//外接矩形中线终点
double extStartLen;//外接矩形的中线起点至图框中线起点的距离
double extEndLen;//外接矩形的中线终点至图框中线终点的距离
};
基于同名坐标点构建转换矩阵的辅助函数:
AcGeMatrix3d GetFourParamsXform(
AcGePoint3d &srcPt1,//原始点1
AcGePoint3d &srcPt2,//原始点2
AcGePoint3d &destPt1,//目标点1
AcGePoint3d &destPt2//目标点2
)
要实现连续横排的图纸在对折后完整接边,图幅之间的分割线方向必须是线路中心线的垂直方向,如果是线段的折点处,则分割线的方向必须是折点的角平分线方向。
为提高搜索效率,图幅分割点按线路中心线逐折点搜索,如果相邻折点间距离大于500 m,则以500 m为步进逐步搜索,在各搜索点形成分割线。
为减少软件计算时间,以线路中心线外扩固定距离形成的边线构成图形范围,图幅分割线与边线求交点,如果交点与图框中线的距离超过内图框宽度的一半,则视为图形超出图框,确定前一个点为图幅间分割点,该处垂线或角平分线为分割线。
在长直线路段如果第一幅图的图幅中线方向与直线段不平行,直线段将被进行多次裁切,形成的图幅数量多,因此需要对较长图幅进行优化。
从长直路段第二幅图开始,搜索到本图幅的末尾分割点时,记录本图幅和上一图幅的长度之和,作为已有最大长度的参考值。将本图幅起始分割点逐节点往回撤,计算回撤后本图幅的末尾分割点,计算此时本图幅和上一图幅的长度之和,如果长度大于已有最大长度,则将该长度作为已有最大长度的参考值,直到找出最大值,以最大值所在的起始分割点和末尾分割点作为本图幅的范围,并修改上一图幅的末尾分割点。
下面以某带状地形图为例进行效果演示,图1为原始带状地形图,图2为添加梯形图框后的示意图,图3为分幅成果示意图。
图1 原始带状地形图
图2 绘制梯形图框
图3 分幅成果图
笔者所在单位利用本软件对湖南境内数千公里铁路进行了分幅处理,解决了带状图连续分幅图幅接边拼接问题,并通过优化,使分幅后图纸总长度最短,取得了良好的经济效果。