<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> 中国房产测绘网-温州市数字房产分幅平面图测绘情况介绍
 
    您的位置 >> 数字房产 >> 数字技术  
 
温州市数字房产分幅平面图测绘情况介绍

 

房产分幅平面图是房屋产权产籍管理工作的基础图。温州市房产管理局目前使用的房产分幅平面图是1993年以产权发证为目的而测绘的,由于近年来大量的城市改造活动,这批图已经难以适应现阶段产权产籍管理工作的需要。1998年温州市政府将城市基础测绘列入财政计划,由温州市测绘局组织实施。两年后,温州市基础测绘可提供的数字地形图多达138平方公里。在这种大环境下,温州市房产管理局决定启动1:500数字房产分幅平面图的测绘工作,以更新现有的房产分幅平面图。其作业模式是:购买温州基础测绘的数字地形图,在此基础上进行修测和房产调查,并对数据进行改造,最终完成数字房产图。
    2003年5月,我公司取得105平方公里数字房产分幅平面图的作业任务,到目前为止,,已完成14平方公里。经过局产权产籍处组织验收、评估后,对这批成果给予了充分的肯定。本文就这批房产图的生产情况作一介绍。
    一、测量精度
    《房产测量规范》(以下简称《规范》)3.2.3.3规定,采用全野外数据采集所测的房产图,其地物点相对于邻近控制点的点位误差不超过±0.05m,一级界址点中误差≤±0.02m,二级≤±0.05m,三级≤±0.10m。浙江省测绘局颁布的基础测绘1:500基础数字地形图的精度指标是:一类地物点点位误差、间距误差≤±0.05m;二类地物点≤±0.075m;三类地物点≤±0.15m。对比可以发现,一方面两者的精度规定有差别;另一方面,基础测绘定义的一类地物点并不就是房产测绘定义的二级界址点。因此理论上讲,利用基础测绘成果,无法直接满足房产二级界址点测量精度的要求。考虑到实际的可操作性,经委托方同意,以基础测绘的地物精度要求作为这批房产分幅平面图的精度,并把修测、补测精度定为±0.075m。
    二、房产数据改造技术方案设计
    由于温州市基础测绘是多家测量单位参与完成的,产品质量参差不齐。部分产品存在数据分层模糊;在点、线、面数据组织上,大量使用低效率的符号,如虚线是由多条线段组成,面状填充符号由基本线段组成,这离地理信息系统(简称GIS)对数据的要求还有一段距离。温州市房管局对这次房产分幅平面图测绘的投入力度和决心是非常大的。作为生产单位,我们除了要竭尽全力把工作做到位之外,还应追求在技术上先进性:我们承诺按GIS要求生产数据,保证数据能够直接进入GIS数据库。为了达到这个目标,我们采用AutoCAD2002作为数据生产平台,通过使用地类编码、数据分层、符号化等技术,共引入19个层,9大类118种地类编码,在每个图形上附加编码数据和属性扩展数据,比如在一条表示房屋的封闭多义线上,附加了房屋类编码13111,其图形扩展数据为:
    (-3("wzFCT"(1070.405)(1071.13111) (1000."桔1幢")))
    由于每条线上都带有属性数据,这样就可以直接从图形上检索(如图)。
    按照这种思路,我公司自主研制了基于AutoCAD 2000/2002的房产图数据改造程序,用Visual Lisp 语言编写的,经过编译后的程序Pwzfc.vlx只有119K,程序的主要功能有:点线面地物数字化改造,多义线合成,符号化,分幅图自动切割,自动绘制图廓,丘号编写与检查,丘界线封闭性检查,丘界线链接图幅号,图素查询等。
    为了今后GIS数据管理方便,我们在符号化程序设计上,对线、面图形统一使用LWPolyline多义线,并将入库图形和非入库图形通过编码和层区分开来,比如围墙线符号,只对骨干线进行编码数据,这样在数据入库时,只根据代码提取骨干线。
    以下是根据编码分类提取要素的Vlisp程序。
    (defun DP-getEntityByEC1071(EC1071 / num i tempObj tempssname EntSelection xdata
    ret sum newlayer ppath filename ssobj pssets setsnum ss1 time1 time2 s msg)
    (setq s (getvar "DATE"))
    (setq time1 (* 86400.0 (- s (fix s))))
    (setq newlayer (itoa EC1071))
    (setq pssets (vla-get-selectionsets curdoc))
    (setq setnum (vla-get-count pssets) ssobj nil i 0)
    (while (< i setnum)
    (if (= (vla-get-name (vla-item pssets i)) newlayer)
    (setq ssobj (vla-item pssets i))
    )
    (setq i (1+ i))
    )
    (if ssobj
    (vla-clear ssobj)
    (setq ssobj (vla-add (vla-get-selectionsets curdoc) ec1071)))
    (setq EntSelection (ssget"X"(list (list -3 (list myApp)))))
    (setq num (sslength EntSelection) i 0)
    (setq ss1 (vlax-make-safearray vlax-vbobject (cons 0 0)))
    (while (< i num)
    (setq tempssname (ssname EntSelection i))
    (setq tempObj (vlax-ename->vla-object tempSSname))
    (if (setq xdata (getxdata tempObj myapp))
    (if (= (cdr (assoc′1071 xdata)) EC1071)
    (progn
    (vlax-safearray-put-element ss1 0 tempobj)
    (vla-additems ssobj ss1)
    ))
    )
    (setq i (1+ i))
    )
    (if (> (setq sum (vla-get-count ssobj)) 0)
    (progn
    (setq ppath (vla-get-fullname curdoc))
    (setq filename (strcat (substr ppath 1 (vl-string-position (ascii ".") ppath)) "_EC" newlayer ".dwg"))
    (vla-wblock curdoc filename ssobj)
    (setq s (getvar "DATE"))
    (setq time2 (* 86400.0 (- s (fix s)))) (princ msg)
    (setq s (- time2 time1)) t
    (setq msg (strcat "" newlayer ":检索到" )
    (itoa sum) "个图形元素,用时" (rtos s 2 1) "秒!")) )
    )
    这是程序提取的代码为12411的要素图:
    为了验证数据符合GIS入库要求,我们利用经过改造的4平方公里房产分幅平面图数据做了一项编程试验:从AutoCAD中提取多义线到SQLserver数据库,再从SQLserver数据库中读到AutoCAD中来。先在SQLserver中,建立数据库,添加一个polyline表,其结构如下:
    CREATE TABLE [dbo].[polyline] (
    [int] NOT NULL ,
    [smallint] NULL ,
    [image] NULL ,
    [image] NULL ,
    [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    ON TEXTIMAGE_ON
    程序使用VB6.0编写,下面是两个主要的子程序代码,Write_Plobj2DB向数据库中写入一条多义线记录;Generate_polyline 从数据库中读取多边形,在AutoCAD的当前活动文档内生成一条多义线。
    Public Function Write_Plobj2DB(PLobj As AcadLWPolyline) As Long
    Dim pts As Variant, lb%, ub%, i%, Pnum%, j%
    Dim select_lwObj As AcadSelectionSet
    Dim rs1 As New adodb.Recordset
    Dim tempptlist() As Double
    Dim pl_layer$,pl_ltype$,PL_closed as byte,PL_bulge as double
    Dim ptr1 As Long, ptr2 As Long,ptxy as double
    Dim tempByte() As Byte, len1%, FcCode As Long,ret As Long
    FcCode = getObjFcCode(PLobj)
    rs1.CursorType = adOpenKeyset
    rs1.LockType = adLockOptimistic
    rs1.Open "polyline", conn1, , , adCmdTable
    'AppActivate myApp.Caption
    pts = PLobj.Coordinates: lb = LBound(pts): ub = UBound(pts)
    len1 = ub - lb + 1
    Erase tempByte: ReDim tempByte(len1 * 8 - 1)
    tempptlist = pts
    rs1.AddNew
    ret = Create_SysID("POLYline", "POLY_ID")
    rs1.Fields("POLY_ID").Value = ret
    rs1.Fields("Ptcount").Value = len1
    rs1.Fields("LayerName").Value = PLobj.Layer
    rs1.Fields("LTypeName").Value=PLobj.Linetype
    If FcCode > 0 Then
    rs1.Fields("FcCode").Value = FcCode
    End If
    If PLobj.Closed Then
    rs1.Fields("closed").Value = 1
    Else
    rs1.Fields("closed").Value = 0
    End If
    ptr1 = VarPtr(tempptlist(lb))
    Call CopyMemory(tempByte(0), ByVal ptr1, len1 * 8)
    rs1.Fields("PtList").AppendChunk tempByte()
    Erase tempByte
    ReDim tempByte(7)
    For i = 0 To len1 / 2 - 1
    PL_bulge = PLobj.GetBulge(i)
    ptr1 = VarPtr(PL_bulge)
    Call CopyMemory(tempByte(0), ByVal ptr1, 8)
    rs1.Fields("Bulges").AppendChunk tempByte()
    Next i
    rs1.Update
    Write_PLobj = ret
    rs1.Close
    et rs1 = Nothing
    End Function
    '从房产数据库中读取多边形到autoCAD的当前活动文档内
    Public Sub Generate_polyline(poly_ID As Long)
    Dim ptlist() As Double
    Dim tempDouble As Double
    Dim tempByte(7) As Byte
    Dim rs1 As New adodb.Recordset
    Dim SQLstr As String
    Dim aa1 As Variant
    Dim PtCount As Integer, i%, j%
    Dim pl_layer As String
    Dim pl_Ltype As String
    Dim PL_closed As Byte
    Dim PL_bulge As Double
    Dim PLobj As AcadLWPolyline
    Dim ptr1 As Long
    rs1.CursorType = adOpenKeyset
    rs1.LockType = adLockOptimistic
    SQLstr = "select * from polyline where Poly_id=" & CStr(poly_ID)
    rs1.Open SQLstr, conn1
    PtCount = rs1.Fields("ptcount").Value
    ReDim ptlist(PtCount - 1)
    For i = 1 To PtCount
    aa1 = rs1.Fields("ptlist").GetChunk(8)
    For j = 0 To 7
    tempByte(j) = aa1(j)
    Next j
    ptr1 = VarPtr(tempByte(0))
    Call CopyMemory(tempDouble, ByVal ptr1, 8)
    ptlist(i - 1) = tempDouble
    Next i
    SetPLobj=myDoc.ModelSpace.AddLightWeightPolyline(ptlist)
    For i = 0 To PtCount / 2 - 1
    aa1 = rs1.Fields("bulges").GetChunk(8)
    For j = 0 To 7
    tempByte(j) = aa1(j)
    Next j
    ptr1 = VarPtr(tempByte(0))
    Call CopyMemory(tempDouble, ByVal ptr1, 8)
    PL_bulge = tempDouble
    If Abs(PL_bulge) > 0.0001 Then
    PLobj.SetBulge i, PL_bulge
    End If
    Next I
    pl_layer=Trim(rs1.Fields("LayerName").Value)
    pl_Ltype = Trim(rs1.Fields("LtypeName").Value)
    PL_closed = rs1.Fields("closed").Value
    PLobj.Layer = pl_layer
    PLobj.Linetype = pl_Ltype
    If PL_closed > 0 Then
    PLobj.Closed = True
    Else
    PLobj.Closed = False
    End If
    PLobj.Update
    rs1.Close
    Set rs1 = Nothing
    End Sub
    三、房产调查
    1、丘的划分。在房产分幅平面图上,丘是一项重要的内容,房产测绘无法回避房屋用地。但是,限于目前的体制,要详细准确地调查房屋用地,对房产管理部门来说,是困难的,也是不现实的。经过讨论协商,我们对丘的划分原则是:按道路、河流、房屋墙体、围墙、栅栏等实地界标围成的机关、学校、企事业单位、别墅、农民住宅等按独立丘处理;非永久性封闭的商品房住宅小区的各幢房屋、无固定界标围护的单幢房屋按房屋占地范围确定独立丘;自然封闭或封闭式管理的住宅小区划分为组合丘,内部按各幢占地范围划分支丘;毗连成片的城镇、村镇居民房屋,如果多幢不同产权人房屋共有一个院落,则划分为组合丘,丘内按幢划分支丘;如果丘内同一产权人的多幢房屋相互毗连,可以合并成一个支丘;对公用设施(如配电房、垃圾站、停车场等)不分丘,图上用注记表示房屋用途。
    2、丘号编写。我们没有采用《规范》所倡导的以房产区、房产分区为单元来编写丘号,而是沿用以图幅为单元编写。从管理角度讲,二者各有利弊。前者单元大,逻辑性、系统性比较强,后者单元小,更新维护方便,丘号变动范围相对集中。对房产系统的测量单位,常规测量力量相对比较弱,大范围的动态维护工作还有难度。
    3、房产调查。作为房产分幅平面图的房产调查,我们确定的调查项目有:房屋建筑结构、层数、房屋实地名称、道路河流等自然名称、门牌号、行政机构名称、企事业单位名称等。这与《规范》要求也有距离,《规范》对房产调查要求的内容很多,但我们的目的不是搞房产普查,有些要素像房屋产别,建成年份,主动调查难度很大,留待产权人申请产权登记时补充调查,工作则好做得多。
    四、质量控制与检验
    为了保证这次房产分幅平面图测绘的质量,我们采取以下措施:
    1、岗位培训。每个作业员在从事这项工作之前,必须学习项目设计书的内容,学习软件应用操作,经过2~3个月学习实践,作出样图,经过评估后,方可上岗。
    2、配备专职房产分幅平面图外业质检员1名,内业质检员1人(兼)。外业检查对所有产品进行全部检验,检查工作认真、细致,每个房屋都走到、看到;内业质检对数据进行检查测试,所有检查都有规范的记录。
    3、制订质量评分标准,制定质量管理细则和奖罚措施,以100%合格率作为质量目标,这些措施在生产过程中得到了    严格贯彻、执行。
以上是我们开展房产分幅平面图数字测绘的情况,请测绘同行多提宝贵意见,以便使我们的工作得到进一步改进。

作者工作单位:温州市房地产测绘队
 
中国房地产地籍测量委员会 版权所有 ©
TEL:(027) 85759413 E-Mail:zfcdujuan@126.com