陈炯炯,陈 胜
(1.湖南省第三测绘院,湖南 长沙 410007)
智能化识别宗地四至研究
陈炯炯1,陈 胜1
(1.湖南省第三测绘院,湖南 长沙 410007)
探讨了一种智能化﹑自动化的宗地四至识别方法。使用AutoCAD平台ObjectARX开发软件包实现了对宗地四至的自动化识别,为农村集体土地所有权项目和宅基地使用权项目节省了大量人力,提高了数据准确性。
宗地四至;邻宗地;智能化;最小外包凸多边形
宗地即土地权属界址线封闭的地块或空间,是不动产权属调查和登记发证的基本土地单元。宗地四至是每宗地四邻的名称,一般填写相邻宗地的土地使用权人﹑所有权人的名称;与道路﹑河流等线状地物相邻的应填写地物名称;与空地﹑荒山﹑荒滩等未确定使用权的国有土地相邻的,应准确描述相应地物﹑地貌的名称。由于没有比较完善的宗地四至识别方法,目前大部分权属调查软件﹑建库软件均不提供四至识别功能,通常是在地籍调查阶段或数据入库整理阶段由作业员对照地籍图和宗地图进行人工识别,并手动录入。该方法不仅效率低下,而且由于作业员的判别能力差异,判断标准也不完全一致,导致最终成果并不理想。为了提高效率,出现了一些辅助软件用于自动识别宗地四至:有的软件以宗地中心为起点,向东﹑南﹑西﹑北4个方向作射线,以与射线相交﹑离本宗地最近的邻宗地作为四至(图1),该方法对界址线数量少﹑形状简单的宗地识别速度快,但对复杂的宗地无效;有的软件先获取宗地的外接矩形,将宗地左上角和右上角之间的邻宗地判定为北至,宗地右上角和右下角之间的邻宗地判定为东至,宗地右下角和左下角之间的邻宗地判定为南至,宗地左下角和左上角之间的邻宗地判定为西至(图2),该方法较前种方法识别效果有所提升,但对复杂图形(图3)的处理效果仍不理想。通过对其他软件识别效果的比较,结合实践经验,笔者提出了一种智能化﹑自动化的宗地四至识别方法。
图1 宗地识别射线法
图2 简单宗地识别结果
图3 复杂图形宗地
1.1 宗地四至识别方法
1)各条界址线邻宗地的识别:计算每条界址线中点与其他宗地的距离,若距离小于0.01 m,则该宗地为邻宗地,该条界址线为公共界址线。
2)各条界址线方向的判断:先计算宗地的外包凸多边形,再以外包凸多边形确定宗地的东﹑东南﹑南﹑西南﹑西﹑西北﹑北﹑东北8个极值点,最后以8个极值点形成的方位区间判断宗地界址线的方位。
3)生成四至:若每至只取一个宗地,则取北极值点两条界址线中与Y轴夹角较小的一条作为北至,取东极值点两条界址线中与X轴夹角较小的一条作为东至,取南极值点两条界址线中与Y轴夹角较小的一条作为南至,取西极值点两条界址线中与X轴夹角较小的一条作为西至;若每至要取所有宗地,则合并西北至北﹑北至东北两个区间的邻宗地为北至,合并东北至东﹑东至东南两个区间的邻宗地为东至,合并东南至南﹑南至西南两个区间的邻宗地为南至,合并西南至西﹑西至西北两个区间的邻宗地为西至。
1.2 宗地四至识别流程
根据识别思路,绘制宗地四至识别流程图,见图4。
图4 宗地四至识别流程图
在AutoCAD平台上,本文使用ObjectARX开发实现了宗地四至识别方法。
2.1 界址点序列的提取
界址点序列是宗地所有界址点的集合,集合中前一个点和后一个点的连线为界址线。《地籍调查规程》规定宗地界址点编号从西北角开始,顺时针增加,因此宗地范围线的起点也是西北角,方向为顺时针方向。依次获取所有节点,由于AutoCAD中闭合线的特性,无法表示最后一条边,需把第一个节点再复制到节点序列末尾,其主要实现代码为:
AcDb2dPolyline* p2dPl; ‘宗地范围线,在AutoCAD中为二维多段线
AcDbObjectIterator* pVertexIter = p2dPl->vertexIterator();‘二维多段线的节点迭代器
AcDb2dVertex *pVertex; ‘单个节点对象
vector<AcGePoint3d> vertexs; ‘节点序列
‘依次打开节点,获取节点坐标
for (vertexNum = 0; !pVertexIter->done(); pVertexIter->step()) {
acdbOpenObject(pVertex, pVertexIter->objectId(), AcDb::kForRead);
vertexs.push_back(pVertex->position());
pVertex->close();
}
vertexs.push_back(vertexs[0]);‘把第一个点复制到末尾
2.2 最小外包凸多边形的生成
界址线较多的宗地可能为凹多边形,但凹边对四至的识别没有影响,为了简化极值角点的计算,需先生成总的最小外包凸多边形。计算多边形最小外包凸多边形的算法有很多,如卷包裹法﹑格雷厄姆法等。宗地范围线为顺时针方向的多段线,因此可以简化算法:计算各点的前﹑中﹑后3点是否为顺时针,若为顺时针则为凸点;若为逆时针,则为凹点,应删除,以提高计算速度。其主要实现代码为:
for (i = 1; i < hullPts.size() - 1; i++) {
vector<AcGePoint3d> triangle; ‘3点形成的三角形
triangle.push_back(hullPts[i - 1]);
triangle.push_back(hullPts[i]);
triangle.push_back(hullPts[i + 1]);
if (IsClockWise(triangle) > 0) {‘前、中、后3点是否为顺时针
hullPts.erase(hullPts.begin() + i);
i = 0; ‘删除一个点后,应重新从头开始计算
}
}
2.3 东、南、西、北4个角点的获取
宗地范围线的东﹑东南﹑南﹑西南﹑西﹑西北﹑北﹑东北8个极值点是依次间隔存在的,其中东﹑南﹑西﹑北4个极值点可通过简单比较坐标值获取,再进一步确定其他4个极值点。获取的方法比较直接:先把东﹑南﹑西﹑北4个极值点初始化为节点序列的第一个点,再与后面所有点的X﹑Y坐标进行比较,取X值最大者为北极值点,X值最小者为南极值点,Y值最大者为东极值点,Y值最小者为西极值点。
2.4 东、南、西、北4条边的确定
东﹑南﹑西﹑北4条极值边是与相应的极值点相连的,可以极值点所在两条边中方向与相应的方位最接近的边为极值边。取北极值点两条界址线中与Y轴夹角较小的一条作为北至边,取东极值点两条界址线中与X 轴夹角较小的一条作为东至边,取南极值点两 条界址线中与Y轴夹角较小的一条作为南至边,取西极值点两条界址线中与X轴夹角较小的一条作为西至边。先计算各极值点前后界址线的方向,再计算极值点前后夹角,其主要实现代码为:
vector<long> directs; ‘外包凸多边形边方位角,0待定,2东,4南,8西,16北
frontDirect = GetAzimuth(hullPts[0], hullPts[1]);
frontAng = CSCH::Pi * 2 - frontDirect;
backDirect = GetAzimuth(hullPts[0], hullPts[hullPts.size() - 1]); backAng = backDirect - CSCH::Pi;
if (frontAng < backAng) directs[0] += 16; else directs[directs.size() - 1] += 16;}
2.5 东北、东南、西南、西北角点的获取
先计算其他未定边的方位,顺时针方向,起点→终点,(0, 45]为北方向,(225, 315]为东方向,(135,225]为南方向,(45,135]为西方向,(315,360]为北方向。当前后两条边刚好跨越两个区间时,该点视为东北﹑东南﹑西南﹑西北角点,其主要实现代码为:
for (i = 0; i < directs.size(); i++) { if (directs[i] > 0) continue;
if (frontDirect > Degree315) {
ENPt = hullPts[i + 1];
} else if (frontDirect > Degree270) {
if (findENPt) continue;
ENPt = hullPts[i];
f
indENPt = true;
}
}
2.6 其他界址线方位的确定
计算8个极值点在点序列中的序号,标记西北点至北点﹑北点至东北点两个区间的界址线为北至边;东北点至东点﹑东点至东南点两个区间的界址线为东至边;东南点至南点﹑南点至西南点两个区间的界址线为南至边;西南点至西点﹑西点至西北点两个区间的界址线为西至边。
2.7 各条边邻宗地信息的获取
计算每条界址线中点与其他宗地的距离,若距离小于0.01 m,则认为该宗地为邻宗地,该条界址线为公共界址线,其主要实现代码为:
for (i = 0; i < midPts.size(); i++)
for (j = 0; j < ZDids.length(); j++)
if (!OpenObject(pCurve, ZDids[j])) continue;
if (Acad::eOk == pCurve->getClosestPointTo(midPts[i], pt)) { if (GetDistance(midPts[i], pt) < 0.1) {‘该宗地为邻宗地
}
}
2.8 合并邻宗地信息至四至
4个方向的邻宗地名称存储在4个字符串列表中,且每条界址线的邻宗地名称均被记录了,所以当同一方向的同一邻宗地有多条公共界址线时,邻宗地名称会被记录多次,需依次进行比较,剔除重复名称;再把同一方向的邻宗地名称进行拼接,以“﹑”进行分隔,形成东至﹑西至﹑南至﹑北至4个字符串,并写入宗地范围线的XData。
本文所提出的宗地四至提取方法已应用于多个农村集体土地所有权项目和宅基地使用权项目中,四至识别正确率达到99%以上,与人工识别的结果基本一致。该方法的推广使用,可大大减少内业工作量,提高数据正确率,也可广泛应用于其他不动产统一登记权籍调查工作。
[1] 陈维汉.基于CASS开发宗地四至属性的自动生成探讨[J].城市建设理论研究,2014(16):62-67
[2] 邵晴晴,朱福利.一种宗地四至提取方法探讨[J].测绘地理信息,2014,39(4):58-61
[3] 郑江,李曦凌,李磊,等.一种宗地四至关系提取算法的实现[J].云南水力发电,2015(5):17-19
[4] 陈艳梅,付宁波.基于AutoCAD的宗地四至自动识别与表达[J].江西建材,2016(24):183-184
[5] 方衎,胡维.农村土地承包地块四至自动读取的研究[J].测绘与空间地理信息,2015(11):202-204
[6] 中华人民共和国国土资源部.地籍调查规程:TD/T 1001-2012[S].北京:中国标准出版社,2012:13-15
[7] 詹长根.地籍测量学[M].武汉:武汉大学出版社,2010
[8] 李长勋.AutoCAD ObjectARX程序开发技术[M].北京:国防工业出版社,2005:79-190
P273
B
1672-4623(2017)09-0100-03
10.3969/j.issn.1672-4623.2017.09.030
2017-02-08。
陈炯炯,硕士研究生,高级工程师,主要从事不动产权籍测量、摄影测量与遥感、地理信息系统的研究。