亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-04-18 09:51:44于中偉
        地理空間信息 2018年11期
        關鍵詞:數(shù)據(jù)庫

        于中偉

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

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

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

        1 工作流程

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

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

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

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

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

        2 關鍵技術的實現(xiàn)

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

        ‘添加引用

        using NetOffice.ExcelApi;

        using NetOffice.ExcelApi.Enums;

        ‘初始化Excel實例,并打開工作簿

        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();

        ‘針對數(shù)據(jù)序列,驗證單元格

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

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

        ‘退出并釋放

        application.Quit();

        application.Dispose();

        2)由于需將調(diào)查表格信息寫入或更新到mdb數(shù)據(jù)庫中,會多次執(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); ‘構造函數(shù),鏈接數(shù)據(jù)庫

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

        3)在對DK圖層進行統(tǒng)一編碼時,首先需獲得DK圖層的幾何重心,可通過程序依次調(diào)用GP工具的FeatureToPoint和AddXY工具,將DK轉(zhuǎn)為點,并添加X、Y坐標。執(zhí)行后的DK_FeatureToPoint圖層即為DK圖層對應的幾何重心圖層,具有嚴格對應的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圖層的包絡線,即圖層的最小外接矩形。根據(jù)該包絡線構建一定步長的正方形框,自左上角遍歷正方形框,同一個正方形框中的地塊僅比較幾何重心的橫向(東西)關系,從而可按自北向南、自西向東的順序?qū)λ械貕K進行編碼。執(zhí)行編碼賦值時,可直接采用SQL語句的方式,根據(jù)添加的POINT_X和POINT_Y字段設立條件關系,提高執(zhí)行效率。JZD圖層的編碼方法與之類似。部分關鍵代碼為:

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

        IGeoDataset geoDataset= featureClass as IGeoDataset;

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

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

        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++)

        {

        ‘求出正方形框四角的坐標

        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)的所有點

        foreach (DataRow row in dt.Rows)

        {

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

        }

        ‘按照X坐標進行排序,key值即為ObjectID

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

        }

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

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

        ‘遍歷DK圖層

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

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

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

        foreach (DataRow rowDK in dtDK.Rows){

        ‘獲得當前DK要素

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

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

        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()));

        ‘查找當前DK要素的相鄰地塊

        spatialFilter.Geometry= featureDK.ShapeCopy;

        spatialFilter.SpatialRel= esriSpatialRelEnum.esriSpatialRelIntersects;

        featureCursor= featureClassDK.Search(spatialFilter, false);

        feature= featureCursor.NextFeature();

        while(feature!=null)

        {

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

        feature= featureCursor.NextFeature();

        }

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

        ‘釋放查詢游標featureCursor

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

        }

        3 需要注意的問題

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

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

        3)在批量讀取執(zhí)行表格信息時,應具有一定的容錯能力。在某個Excel讀取或?qū)懭胧『螅瑧詣犹^,并在批量執(zhí)行結束后,進行錯誤信息提示。在對數(shù)據(jù)庫表執(zhí)行增加、更新、刪除等遍歷操作時,考慮到執(zhí)行效率,應盡量使用SQL語句的方式,并在操作完成后,及時對表進行關閉,以避免出現(xiàn)“無法打開表格”等異常。在利用ArcEngine執(zhí)行遍歷操作時,應及時釋放游標。

        4 結 語

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

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2015年3期)2015-06-09 17:41:31
        數(shù)據(jù)庫
        財經(jīng)(2014年21期)2014-08-18 01:50:18
        數(shù)據(jù)庫
        財經(jīng)(2014年6期)2014-03-12 08:28:19
        數(shù)據(jù)庫
        財經(jīng)(2013年6期)2013-04-29 17:59:30
        亚洲悠悠色综合中文字幕| 精品乱码久久久久久久| 啦啦啦www在线观看免费视频| 在线观看国产精品日韩av| 色yeye在线观看| 女女同性av一区二区三区免费看| 亚洲国产大胸一区二区三区| 无码人妻久久久一区二区三区 | 国产成人无码综合亚洲日韩| 蜜臀aⅴ国产精品久久久国产老师 国产精品久久婷婷六月丁香 | 国产免费一区二区av| 亚洲天堂久久午夜福利| 国产精品久久久天天影视| 久久国产免费观看精品3| 天堂在线www中文| 国产精品自拍首页在线观看| 亚洲av成人一区二区| 欧美激情视频一区二区三区免费| 变态 另类 欧美 大码 日韩| 91最新免费观看在线| 日本在线综合一区二区| 日本熟女中文字幕在线| 中文字幕免费不卡二区| 欧美国产亚洲精品成人a v | 亚洲av老熟女一区二区三区| 无码专区人妻系列日韩精品| 欧美巨大巨粗黑人性aaaaaa| 可以免费在线看黄的网站| 黄片午夜免费观看视频国产| 一区二区三区中文字幕在线播放 | 人妻少妇邻居少妇好多水在线 | 超碰日韩AV在线| 精品人妻av区乱码| 日韩国产一区二区三区在线观看| 久久婷婷五月综合色高清| 天堂国精产品2023年| 国产免费播放一区二区| 少妇被猛烈进入中文字幕| 青娱乐极品视觉盛宴国产视频| 伊人蕉久中文字幕无码专区| 久久亚洲国产成人亚|