• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ArcEngine的農(nóng)村土地承包經(jīng)營權(quán)數(shù)據(jù)庫建設(shè)

    2018-04-18 09:51:44于中偉
    地理空間信息 2018年11期
    關(guān)鍵詞:村組字段權(quán)屬

    于中偉

    (1.沈陽市勘察測(cè)繪研究院,遼寧 沈陽 110014)

    農(nóng)村土地承包經(jīng)營權(quán)確權(quán)登記的主要目的是解決承包地塊面積不準(zhǔn)、空間位置不明、四至關(guān)系不清等問題,最終形成權(quán)屬合法、界址清楚、面積準(zhǔn)確、圖數(shù)實(shí)地一致的農(nóng)村土地承包經(jīng)營權(quán)調(diào)查成果。農(nóng)村土地確權(quán)登記數(shù)據(jù)庫是開展農(nóng)村土地承包經(jīng)營權(quán)確權(quán)登記最重要的成果之一。確權(quán)登記數(shù)據(jù)庫主要包括用于農(nóng)村土地承包經(jīng)營權(quán)調(diào)查、確權(quán)登記的地理信息數(shù)據(jù)和權(quán)屬數(shù)據(jù),權(quán)屬數(shù)據(jù)又包括業(yè)務(wù)數(shù)據(jù)和權(quán)屬資料數(shù)據(jù)。NY/T 2539-2016《農(nóng)村土地承包經(jīng)營權(quán)確權(quán)登記數(shù)據(jù)庫規(guī)范》對(duì)數(shù)據(jù)庫的分層、圖層名稱、字段名稱以及約束信息等進(jìn)行了嚴(yán)格定義,實(shí)現(xiàn)了數(shù)據(jù)庫成果的規(guī)范化和標(biāo)準(zhǔn)化。

    農(nóng)村土地承包經(jīng)營權(quán)數(shù)據(jù)庫建設(shè)是先將入庫后的實(shí)地測(cè)量圖形數(shù)據(jù)與權(quán)屬調(diào)查信息進(jìn)行掛接,形成公示結(jié)果和待解決記錄表;再根據(jù)公示反饋的信息修改數(shù)據(jù)庫,整理完善承包地塊屬性,形成界址信息;然后利用質(zhì)量檢查功能對(duì)數(shù)據(jù)庫進(jìn)行檢查;最終形成無質(zhì)量問題的國家標(biāo)準(zhǔn)格式數(shù)據(jù)。

    1 工作流程

    根據(jù)NY/T 2539-2016《農(nóng)村土地承包經(jīng)營權(quán)確權(quán)登記數(shù)據(jù)庫規(guī)范》,農(nóng)村土地確權(quán)登記標(biāo)準(zhǔn)數(shù)據(jù)庫包括地理信息數(shù)據(jù)和權(quán)屬數(shù)據(jù)共26個(gè)圖層。實(shí)際作業(yè)中,圖形地理信息成果主要包括地塊(DK)、界址點(diǎn)(JZD)、界址線(JZX)等圖層,權(quán)屬數(shù)據(jù)主要包括發(fā)包方(FBF)、承包方(CBF)、承包地塊信息(CBDKXX)、承包合同(CBHT)、家庭成員(CBF_JTCY)、承包經(jīng)營權(quán)證登記簿(CBJYQZDJB)等表格。本文著重討論如何在程序中實(shí)現(xiàn)數(shù)據(jù)庫圖形地理信息成果與權(quán)屬數(shù)據(jù)的自動(dòng)掛接,并形成符合國家規(guī)范的數(shù)據(jù)庫。

    1)為標(biāo)準(zhǔn)數(shù)據(jù)庫添加DKYBM過渡字段。為了方便地塊與村組填寫的CBDKXX表進(jìn)行對(duì)應(yīng),地塊預(yù)編碼采用01001的編碼方式,而不是規(guī)范中要求的順序碼,其中01為承包方在村組中的順序碼,001為承包方所有的地塊順序碼。

    2)將利用CASS或ArcGIS等繪圖軟件繪制的地塊圖層導(dǎo)入標(biāo)準(zhǔn)數(shù)據(jù)庫的DK圖層中,并將預(yù)編碼放入DK預(yù)編碼中,以實(shí)現(xiàn)圖形數(shù)據(jù)與屬性數(shù)據(jù)的掛接。針對(duì)DK圖層,根據(jù)地塊編碼規(guī)則按村組對(duì)所有地塊進(jìn)行編碼,此時(shí)DK圖層中的每個(gè)要素均對(duì)應(yīng)一個(gè)預(yù)編碼DKYBM和一個(gè)規(guī)范編碼DKBM。

    3)順序讀入村組填寫的FBF表,CBF表和CBDKXX表,并將相關(guān)屬性信息入庫。發(fā)包方入庫時(shí),僅涉及FBF表;承包方入庫時(shí),共涉及CBF、CBF_JTCY、CBHT和CBJYQZDJB四個(gè)屬性表;執(zhí)行承包地塊入庫時(shí),涉及DK圖層和CBDKXX表。承包地塊信息入庫后,可將DKYBM字段刪除。

    4)生成JZD、JZX圖層,實(shí)現(xiàn)四至等屬性的自動(dòng)識(shí)別錄入,并對(duì)數(shù)據(jù)庫進(jìn)行檢查,形成國家標(biāo)準(zhǔn)格式的數(shù)據(jù)庫。

    2 關(guān)鍵技術(shù)的實(shí)現(xiàn)

    1)為了避免在讀取和保存Excel時(shí)不區(qū)別版本,本文引用了NetOffice控件,在程序中添加NetOffice.dll、ExcelApi.dll和VBIDEApi.dll引用,相關(guān)代碼為:

    ‘添加引用

    using NetOffice.ExcelApi;

    using NetOffice.ExcelApi.Enums;

    ‘初始化Excel實(shí)例,并打開工作簿

    NetOffice.ExcelApi.Application application= new NetOffice.ExcelApi.Application();

    Workbook workbook= application.Workbooks.Add(excelPath);

    Worksheet worksheet= workbook.Worksheets[1] as Worksheet;

    ‘讀取普通文本單元格

    string FBFMC=worksheet.Range("C8").Text.ToString();

    ‘針對(duì)數(shù)據(jù)序列,驗(yàn)證單元格

    char[] ch= new char[] { ',' };

    string[] validation= worksheet.Range("D11").Validation.Formula1.Split(ch);

    ‘退出并釋放

    application.Quit();

    application.Dispose();

    2)由于需將調(diào)查表格信息寫入或更新到mdb數(shù)據(jù)庫中,會(huì)多次執(zhí)行SQL語句,可將常用操作封裝成類,予以調(diào)用。例如,在Access Tools類中,包括以下字段和方法:

    public OleDbConnection Conn;

    public string ConnString; ‘鏈接字符串

    DataTable SelectToDataTable(string SQL); ‘根據(jù)SQL返回DataTable數(shù)據(jù)表

    OleDbDataAdapter SelectToOleDbDataAdapter(string SQL); ‘根據(jù)SQL返回OleDbDataAdapter

    int ExecuteSQLNonquery(string SQL); ‘執(zhí)行SQL,適用于刪除、更新

    AccessTools(string Dbpath); ‘構(gòu)造函數(shù),鏈接數(shù)據(jù)庫

    void Close(); ‘關(guān)閉數(shù)據(jù)鏈接

    3)在對(duì)DK圖層進(jìn)行統(tǒng)一編碼時(shí),首先需獲得DK圖層的幾何重心,可通過程序依次調(diào)用GP工具的FeatureToPoint和AddXY工具,將DK轉(zhuǎn)為點(diǎn),并添加X、Y坐標(biāo)。執(zhí)行后的DK_FeatureToPoint圖層即為DK圖層對(duì)應(yīng)的幾何重心圖層,具有嚴(yán)格對(duì)應(yīng)的ObjectID。采用GP調(diào)用FeatureToPoint工具的代碼為:

    ESRI.ArcGIS.Geoprocessor.Geoprocessor gp= new Geoprocessor();

    FeatureToPoint featureToPoint= new FeatureToPoint();

    featureToPoint.in_features= mdbPath + "\DK";

    featureToPoint.out_feature_class= mdbPath + "\DK_FeatureToPoint";

    IGeoProcessorResult result=gp.Execute(featureToPoint,null) as IGeoProcessorResult;

    然后獲取DK圖層的包絡(luò)線,即圖層的最小外接矩形。根據(jù)該包絡(luò)線構(gòu)建一定步長的正方形框,自左上角遍歷正方形框,同一個(gè)正方形框中的地塊僅比較幾何重心的橫向(東西)關(guān)系,從而可按自北向南、自西向東的順序?qū)λ械貕K進(jìn)行編碼。執(zhí)行編碼賦值時(shí),可直接采用SQL語句的方式,根據(jù)添加的POINT_X和POINT_Y字段設(shè)立條件關(guān)系,提高執(zhí)行效率。JZD圖層的編碼方法與之類似。部分關(guān)鍵代碼為:

    IFeatureClass featureClass= featureWorkspace.OpenFeatureClass("DK");

    IGeoDataset geoDataset= featureClass as IGeoDataset;

    IEnvelope envelope= geoDataset.Extent; ‘獲得DK圖層的包絡(luò)線

    double buchang= 50.0; ‘設(shè)置一定步長的正方形框

    int xCount= Math.Ceiling((envelope.XMax-envelope.XMin) / buchang);

    int yCount= Math.Ceiling((envelope.YMax-envelope.YMin) / buchang);

    for (int i= 0; i < yCount; i++)

    {

    for (int j= 0; j < xCount; j++)

    {

    ‘求出正方形框四角的坐標(biāo)

    xmin= envelope.XMin + j * buchang);

    ymin= envelope.YMax-(i + 1) * buchang;

    xmax= envelope.XMin + (j + 1) * buchang;

    ymax= envelope.YMax-i * buchang;

    sql= "select * from DK_FeatureToPoint WHERE POINT_X>=" + xmin.ToString() + " and POINT_X<" + xmax.ToString() + " and POINT_Y <=" + ymax.ToString() + " and POINT_Y >" + ymin.ToString();

    dt= accessTools.SelectToDataTable(sql); ‘選中正方形框內(nèi)的所有點(diǎn)

    foreach (DataRow row in dt.Rows)

    {

    list.Add(Convert.ToInt16(row["ORIG_FID"].ToString()),Convert.ToDouble(row["POINT_X"].ToString()));

    }

    ‘按照X坐標(biāo)進(jìn)行排序,key值即為ObjectID

    List<KeyValuePair<int, double>> lstorder= list.OrderBy(c=> c.Value).ToList();

    }

    } ‘再根據(jù)lstorder,采用SQL語句的update進(jìn)行ZD的編碼更新操作

    4)將圖形導(dǎo)入標(biāo)準(zhǔn)數(shù)據(jù)庫,并進(jìn)行相關(guān)拓?fù)溴e(cuò)誤處理后,可進(jìn)一步實(shí)現(xiàn)地塊四至的自動(dòng)讀取。算法通過遍歷DK圖層中的要素,利用空間關(guān)系找出當(dāng)前地塊的相鄰地塊,并根據(jù)相鄰地塊與當(dāng)前地塊的幾何重心連線計(jì)算方位角;再根據(jù)方位角的大小判斷四至關(guān)系,并更新到地塊記錄的四至字段中。實(shí)踐證明,該方法自動(dòng)讀取的成功率在90%以上。其部分代碼為:

    ‘遍歷DK圖層

    IPoint gravityDK= new PointClass(); ‘用于存放DK要素的幾何重心

    ISpatialFilter spatialFilter= new SpatialFilterClass(); ‘用于空間位置查詢

    string dongzhi=””,xizhi=””,nanzhi=””,beizhi=””; ‘用于存放四至

    foreach (DataRow rowDK in dtDK.Rows){

    ‘獲得當(dāng)前DK要素

    featureDK= featureClassDK.GetFeature(int.Parse(rowDK["OBJECTID"].ToString()));

    ‘利用SQL查詢方式從DK_FeatureToPoint表中獲得DK的幾何重心,比使用ArcEngine游標(biāo)效率高

    sql="select * from DK_FeatureToPoint where ORIG_FID="+rowDK["OBJECTID"].ToString();

    dt= accessTools.SelectToDataTable(sql);

    rowDK_FeatureToPoint=dt.Rows[0];

    gravityDK.PutCoords(Convert.ToDouble(rowDK_FeatureToPoint["POINT_X"].ToString()),Convert.ToDouble(rowDK_FeatureToPoint["POINT_Y"].ToString()));

    ‘查找當(dāng)前DK要素的相鄰地塊

    spatialFilter.Geometry= featureDK.ShapeCopy;

    spatialFilter.SpatialRel= esriSpatialRelEnum.esriSpatialRelIntersects;

    featureCursor= featureClassDK.Search(spatialFilter, false);

    feature= featureCursor.NextFeature();

    while(feature!=null)

    {

    ‘獲取相鄰要素的幾何中心并計(jì)算方位角,根據(jù)方位角判定四至并存入對(duì)應(yīng)的字符串

    feature= featureCursor.NextFeature();

    }

    featureDK.set_Value(feature.Fields.FindField("DKDZ"),dongzhi); ‘設(shè)置東至

    ‘釋放查詢游標(biāo)featureCursor

    System.Runtime.InteropServices.Marshal.ReleaseComObje ct(featureCursor);

    }

    3 需要注意的問題

    1)由于FBF表、CBF表和CBDKXX表均由村組填寫,水平參差不齊,為了避免Excel在讀取或?qū)懭霐?shù)據(jù)庫時(shí)的異常報(bào)錯(cuò)(或錯(cuò)誤信息較多),在根據(jù)NY/T 2537-2014《農(nóng)村土地承包經(jīng)營權(quán)調(diào)查規(guī)程》設(shè)計(jì)數(shù)據(jù)庫模板時(shí),可將某些字段的強(qiáng)制性要求設(shè)計(jì)為弱強(qiáng)制性,如相關(guān)必填字段可設(shè)計(jì)為空,限制長度的字段可先不做檢查,而在完成數(shù)據(jù)庫建設(shè)后統(tǒng)一執(zhí)行數(shù)據(jù)庫檢查程序。

    2)在向村組下發(fā)FBF表、CBF表和CBDKXX表時(shí),不應(yīng)直接采取NY/T 2537-2014《農(nóng)村土地承包經(jīng)營權(quán)調(diào)查規(guī)程》中定義的相關(guān)表格樣式,如CBF表中的家庭成員列未包含是否共有人等字段,但數(shù)據(jù)庫中卻包含該字段。因此,應(yīng)該根據(jù)NY/T 2539-2016《農(nóng)村土地承包經(jīng)營權(quán)確權(quán)登記數(shù)據(jù)庫規(guī)范》中的數(shù)據(jù)庫字段設(shè)計(jì)完整的表格,并在完成數(shù)據(jù)庫建設(shè)后根據(jù)NY/T 2537-2014《農(nóng)村土地承包經(jīng)營權(quán)調(diào)查規(guī)程》執(zhí)行相應(yīng)表格規(guī)范和統(tǒng)一輸出。

    3)在批量讀取執(zhí)行表格信息時(shí),應(yīng)具有一定的容錯(cuò)能力。在某個(gè)Excel讀取或?qū)懭胧『?,?yīng)自動(dòng)跳過,并在批量執(zhí)行結(jié)束后,進(jìn)行錯(cuò)誤信息提示。在對(duì)數(shù)據(jù)庫表執(zhí)行增加、更新、刪除等遍歷操作時(shí),考慮到執(zhí)行效率,應(yīng)盡量使用SQL語句的方式,并在操作完成后,及時(shí)對(duì)表進(jìn)行關(guān)閉,以避免出現(xiàn)“無法打開表格”等異常。在利用ArcEngine執(zhí)行遍歷操作時(shí),應(yīng)及時(shí)釋放游標(biāo)。

    4 結(jié) 語

    在沈陽市開展農(nóng)村土地承包經(jīng)營權(quán)確權(quán)登記試點(diǎn)的過程中,由作業(yè)單位實(shí)際負(fù)責(zé)承包地塊的測(cè)繪工作,并出具具體的CBF、FBF、CBDKXX等表格樣式;由村組負(fù)責(zé)完成表格填寫和權(quán)屬資料整理。結(jié)合該工作模式,本文利用Esri公司提供的ArcEngine二次開發(fā)技術(shù),實(shí)現(xiàn)了表格權(quán)屬信息與測(cè)繪圖形信息的自動(dòng)關(guān)聯(lián),有效調(diào)動(dòng)了村組在信息調(diào)查方面的優(yōu)勢(shì)和動(dòng)力,不僅提高了工作效率,而且節(jié)約了作業(yè)成本,在實(shí)際作業(yè)中取得了較好的效果。

    猜你喜歡
    村組字段權(quán)屬
    圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
    房屋“權(quán)屬存在爭議”的合理認(rèn)定
    上海房地(2020年9期)2020-10-21 13:12:56
    試論農(nóng)村村組職能社區(qū)化
    農(nóng)村宅基地房屋權(quán)屬的確定
    紅土地(2016年12期)2017-01-15 13:46:52
    河南嚴(yán)控"確權(quán)確股不確地"范圍
    淺談農(nóng)村集體土地上房屋權(quán)屬登記與交易管理
    委托創(chuàng)作合同中著作人身權(quán)權(quán)屬的約定
    淺析當(dāng)前村組財(cái)務(wù)管理工作中存在的問題及改進(jìn)措施
    CNMARC304字段和314字段責(zé)任附注方式解析
    無正題名文獻(xiàn)著錄方法評(píng)述
    阿尔山市| 和田市| 安宁市| 牡丹江市| 永安市| 介休市| 陆丰市| 盐边县| 太仓市| 嵩明县| 德化县| 独山县| 左云县| 建瓯市| 那坡县| 清水县| 微博| 克东县| 信宜市| 迭部县| 文山县| 布尔津县| 乐东| 双柏县| 凤凰县| 荔浦县| 万源市| 五指山市| 宣恩县| 垦利县| 舟山市| 南京市| 巴林右旗| 金秀| 西充县| 临邑县| 卢龙县| 江口县| 含山县| 伊金霍洛旗| 通化县|