建设工程规划用地测绘成果分发系统实现
2021-10-20张保钢
李 雷 刘 光 张保钢
(1. 北京市测绘设计研究院, 北京 1000382; 2. 城市空间信息工程北京重点实验室, 北京 100038)
0 引言
建设工程规划用地(拨地)测量是土地使用、施工建设的法律依据,在城市规划、管理中发挥着重要作用,测量手段也在不断发展[1-2]。北京市规划和自然资源委员会负责北京地区的用地设计审批,并作为行政主管部门下达“建筑用地钉桩通知单”[3]。北京市测绘设计研究院作为测量的实施单位负责具体的测量工作,并存有历年各个地块的测量成果。丰富用地测量成果管理方式,高效利用已有成果一直以来都是需要被研究和解决的问题[4]。北京市测绘设计研究院王旭辉等已对政务电子地图的编制技术进行研究并形成了相关产品[5],为本系统底图的使用提供了先决条件。在拨地数据处理方面,刘延松基于AutoCAD,对封闭地块的多边形图形算法进行研究,实现了地块坐标成果的自动化输出[2]。秦学秀等设计了相关数据库模型,并实现了AutoCAD格式的地块坐标成果输入到地理信息系统(Geographic Information System,GIS)平台,以及将相关信息存储到Oracle数据库中[6-7]。上述人的研究成果,为本文所述内容提供了前期基础和数据支持。本文在上述研究基础上,将拨地测量成果的表述信息以及钉桩点位信息保存在数据库中,当用户通过范围、工程号等信息获取数据时,系统将自动寻找符合条件的点位信息并转化为计算机辅助设计(Computer Aided Design,CAD)图形提供下载。这使得在拨地测量任务中,历年成果数据均可以得到充分利用,如图1所示。
图1 拨地数据选择
1 基于ArcGIS Server及JS API的数据展示和内容选取
本系统浏览器端负责用户交互,服务器端完成数据生成。其最大优势是用户无须安装专业软件环境,通过主流浏览器输入相应网址,即可以使用相关功能。为方便用户直观定位到所需区域,本文将北京市域范围的政务版电子地图发布到ArcGIS Server并切片,以TileLayer的方式作为底图在浏览器中调用。本文将历年包含地块坐标成果的GIS数据发布为网络服务,并以动态图层的方式在浏览器中进行调取。
通过将空间数据库引擎(Spatial Database Engine,SDE)中的历年拨地钉桩数据建立拨地图层,每个闭合的建设用地范围线具备的属性信息如表1所示,拨地号、提交日期将作为图形筛选的条件项。
表1 建设用地范围线属性信息
将拨地图层发布为Map Service,并采用动态方式加载到浏览器中,以方便用户直观看到当前位置已有的用地线范围和拨地号。在图形选择上,可以采取按年代区间、输入测号、绘制范围、拖入SHP(shape文件格式)和对应数字波束合成(Digital Beam Forming, DBF)文件的方式对所需数据进行选取。
通过以下方式可以实现根据拨地测号获取相应数据:(1)获取拨地服务地址;(2)建立QueryTask;(3)构造query的where条件,根据北京市拨地号命名规则,一个拨地号会出现多种情况,如“2020拨地049”在数据库查询时需要将“2020拨049”、“2020拨049-%”、“2020拨0049”、“2020拨0049-%”、“2020拨地049”、“2020拨地049-%”、“2020拨地0049”、“2020拨地0049-%”均作为查询条件,与GIS服务中的拨地号SURVENO进行匹配;(4)根据属性信息在地图服务上获取对应的Features和属性值。
对于绘制范围获取数据则进行以下处理:(1)利用dojo.connect将“onDrawEnd”动作与处理函数进行挂接;(2)设置Symbol样式,利用点选多边形的geometry建立graphic,并将其添加到页面地图中的graphics图层中,以便用户可以直观看到所绘制的图形范围;(3)获取拨地服务地址;(4)建立IdentifyTask,在IdentifyParameters中将geometry设置为绘制的图形范围;(5)根据图形范围在地图服务上获取对应的Features和属性值。
2 拨地数据生成的关键技术
对CAD文件进行操作具有多种方式,AutoCAD自带的LISP语句是在普通LISP语言基础上,又扩充了适用于CAD功能的设计语言,功能较强[8],但不同CAD版本对应不同的API,兼容性不强,功能修改和版本控制也不方便。通过C#调用CAD的指令集绘图时间较长,中断后需要重新启动执行。上述两种方式都需要与AutoCAD软件直接进行通信,而直接生成图形文件则可以避免调用CAD软件,便于在服务器端实现。DWG格式的CAD文件结构没有公开,无法直接对其进行操作,DXF是绘图交换文件,其作用是用于AutoCAD和其他软件进行交换。笔者通过在服务器端使用C#调用NetDxf库实现DXF文件的创建和拨地数据的图形绘制。
2.1 基于Oracle数据库的点位属性获取
首先需要在Oracle数据库中建立如表2~3所示拨地成果表,将拨地成果的每一个点位信息存储到成果表中,其中具备相同PARCELID的点位属于同一个闭合面,弧长、半径、圆心坐标定义图中的曲线信息。将数据库表中的点位信息还原到CAD中并对点位进行连接、赋予点名和属性值,则可以还原出所需拨地号的完整图形。
表2 地块信息表
表3 点位信息表
具体实现方式为:(1)将拨地号由浏览器发送到服务器端,每个拨地号同时应携带地块唯一编码标识(Identity Document,ID);(2)连接拨地成果表所在的数据库;(3)定义用于AutoCAD绘图交换文件(Drawing Exchange Format,DXF)文件的存储路径;(4)定义字体样式,并选择CAD字体文件;(5)对于拨地号和地块ID进行分割,以便逐一操作;(6)建立List
2.2 CAD图形生成
通常一个拨地工程(即一个SERVENO)中包含多个地块,每个地块通过不同的PARCELID值进行识别,在图形上表现为一个或多个闭合面。对于每个地块进行如下操作:(1)建立LwPolyline,并将此多段线放入以拨地号命名的CAD图层中;(2)建立firstPointName=””(此闭合面首个点的点名),firstnum=0(此闭合面首个点经过点ID排序后所处的位置),count=0,List
当某点圆心X、圆心Y这两个属性项不为空时,可以认为本点属于弧线中的一点,进行图形还原时,需要计算出本点的凸度值。令本点与下一点组成圆弧所在圆的圆心坐标(Xc,Yc),本点坐标 (X1,Y1),下一点坐标 (X2,Y2),起始角A1与结束角A2的计算方法为
(1)
(2)
式中,当计算的角度值A小于0时,A=A+2π。令α=A2-A1,当|α|>π时,α=2π+α,此点凸度B的计算方法为
(3)
并将凸度值赋予多段线中此点的点位上。
3 实现效果
基于上述技术,在北京市测绘设计研究院建立了拨地分发系统,本系统从北京市拨地库中获取历年数据,并生成DXF文件供用户下载。通过本系统的使用,减少了大量外业工作时间,极大提高了北京市各类型用地的划拨效率。用户可以在浏览器中通过选择年代、绘制多边形或输入拨地测号的方式进行选择[9-10]。
选择后系统后台通过上述计算生成DXF图形,将图形保存到服务器,用户可以在浏览器上直接下载所需区域的图形文件,如图2所示。
图2 DXF图形及点名
在对数据库中近半年申请情况进行统计,得出表4所述数据。可以看出本功能在普测、详测、拨地、核建、验测等多种类型的测绘项目中得到了应用,半年来共申请195次,月均使用32.5次,涉及11 204个拨地点位所组成的图形。
表4 各工程测量类型申请数量统计
4 结束语
对于建设工程规划用地(拨地)测绘工程,需要按照规划行政主管部门所下达的《建筑用地钉桩通知单》进行作业,并要求与已有拨地范围线进行无缝连接,不允许出现缝隙或交叉的情况。因此,测绘单位在项目作业前需要到档案部门进行数据申请,再根据已有规划测量成果进行生产作业。本文所开发功能实现了已有拨地成果数据的还原和图形自动生成,使生产单位可以快速、便捷地申请到所需数据,保障了测绘项目顺利实施。本文总结了具体技术路线和相应算法,所编写的系统在项目中得到了广泛应用,为其他单位建设工程规划用地(拨地)成果的信息化建设和利用提供了相应示范。在实际使用过程中要求在数据库中对申请内容进行记录,并保证可追溯性。但当申请面积过大时受数据库自身限制,一条记录难以将所有内容记录完整,因此系统中限制了普通用户的单次申请数量,如何解决此项问题,有待今后进一步研究。