999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CASS地籍圖中界址信息批量轉出方法研究

2020-07-09 09:55:20陳麗金
資源信息與工程 2020年3期
關鍵詞:信息

陳麗金

(福建東辰綜合勘察院,福建 福州 350001)

1 引言

地籍調(diào)查是依照國家相關法律法規(guī),通過地籍測繪和權屬調(diào)查,確定宗地的權屬狀態(tài)、位置坐落、界址分布、宗地面積、宗地用途等信息,并形成一系列調(diào)查表格、圖件、數(shù)據(jù)庫等信息成果,為土地登記和發(fā)證提供依據(jù)的一項重要基礎工作[1]。宗地是地籍調(diào)查的基本單元,是指由封閉的權屬線所包圍的地塊或空間,構成宗地的邊界線稱為界址線,而界址線的轉折點稱為界址點,因此可以說,界址點、界址線唯一確定了宗地的空間位置[2]。

在地籍調(diào)查中,地籍圖和地籍調(diào)查表是兩類非常重要的成果,地籍圖是以特定的投影、比例、符號系統(tǒng)將地籍要素表示在地圖中,反映各宗地的位置分布和空間關系的圖件,CASS是地籍調(diào)查中應用非常廣泛的制圖軟件[3]。地籍調(diào)查表是以表格的形式記錄宗地相關屬性信息的載體,由封面、宗地基本信息表、界址信息表等部分構成,其中,界址信息表中記錄界址點號、界址間距等界址描述信息[4]。由于地籍圖中已經(jīng)記錄了宗地各界址點的坐標,因此可以利用地籍圖中的相關信息自動生成界址信息表。本文將討論CASS軟件繪制的地籍圖中批量轉出界址信息的方法。

2 CASS地籍圖中界址信息存儲及轉出方式

CASS地籍圖中宗地、界址線、界址點通過宗地代碼進行關聯(lián),對于同一宗地,其界址點編號自宗地西北角從1開始順時針進行編號,如圖1所示。

圖1 地籍圖中的界址點編號

CASS提供了兩種方式批量轉出界址信息,一種是通過“輸出宗地屬性”工具將所有宗地的權屬信息轉出到mdb數(shù)據(jù)庫中,該數(shù)據(jù)庫包含zdinfo、jzdinfo、jzxinfo三個表,分別存儲宗地、界址點、界址線屬性信息。在jzxinfo表中QDH和ZDH分別記錄界址線的起止界址點點號,然而該編號是以地籍子區(qū)為單位而不是以宗地為單位進行順序編號,與圖面表達不一致,如圖2所示。

圖2 CASS中批量轉出的jzxinfo表的界址點號

另一種方式是通過“繪制地籍表格”菜單組中的“界址點成果表(excel)”導出界址信息,以excel方式存儲,每宗地的界址信息存儲在一個表單(sheet)中,如圖3所示。該種方式中的界址點號仍以地籍子區(qū)為單位進行順序編號。此外,如果宗地數(shù)量較多,該種方式導出界址信息時軟件容易崩潰,無法將所有宗地的界址信息導出。

圖3 CASS中批量轉出的界址點成果表

上述兩種方式轉出的界址信息的共同點是界址點無法按宗地進行從1開始編號,本文探索一種基于CASS中權屬文件的界址信息批量轉出方式。

3 基于權屬文件的界址信息批量轉出算法

首先,利用CASS軟件中的“權屬文件生成”菜單組中的“由界址線生成”,指定一條閉合線,可將內(nèi)部所有宗地的界址信息導出到外部后綴格式為.qs的文本文件中,用記事本打開該文件,內(nèi)容格式如圖4所示。文件中,每宗地包含一組信息,第一行為宗地代碼,第二行為權利人名稱,第三行為地類代碼,第四行開始每三行為一個界址點信息,包含點號和橫縱坐標值,宗地信息以“E,宗地面積”作為最后一行,然后繼續(xù)下一宗地的信息組,直到最后一宗地,再以“E”結束權屬文件。

圖4 權屬文件格式

權屬文件中,界址點以地籍子區(qū)為單位從小到大編號,對于單宗地,從西北角開始按順時針方向編號。例如,某地籍子區(qū)第一宗地的界址點編號為J1-J5,第二宗地的界址點號為J6-J12,以此類推。在地籍調(diào)查表中,每一宗地的界址點編號一般從西北角開始順時針從1開始編號,因此,需要對上述權屬文件(.qs)進行解析處理,對每宗地的界址點重新進行編號即可。算法步驟如下:

(1)讀取權屬文件,將所有行的內(nèi)容存儲在行信息數(shù)組中。

(2)創(chuàng)建宗地信息動態(tài)數(shù)組,數(shù)組元素為宗地信息,宗地信息元素包含宗地代碼屬性和界址點動態(tài)數(shù)組,界址點數(shù)組元素包含界址點x,y坐標值。

(3)遍歷行信息數(shù)組,讀取并記錄第一行宗地代碼,存入當前宗地元素的宗地代碼屬性。

(4)跳3行讀取原始界址點號,如果不是以“E,”開頭,則記錄下面2行的坐標值,存入當前宗地元素界址點數(shù)組。

(5)重復執(zhí)行步驟(4),直到遇到“E,”,說明本宗地信息組結束。轉入步驟(3),繼續(xù)讀取下一宗地信息。

(6)重復執(zhí)行步驟(3)到步驟(5),直到所有行信息讀取結束。

(7)創(chuàng)建一個csv文件用于存儲界址信息,每行用于存儲一條界址線信息,包括宗地代碼、起始界址點號、終止界址點號、界址線長度四個字段信息。

(8)遍歷上述宗地信息動態(tài)數(shù)組,讀取每一宗地的宗地代碼屬性和界址點動態(tài)數(shù)組,界址點編號從1開始續(xù)編,相鄰兩個界址點構成一條界址線(最后一個點與第一個點閉合),計算其直線距離即為界址線長度,存入界址信息文件。

(9)直到宗地信息動態(tài)數(shù)組遍歷結束,關閉界址信息文件,轉換結束。

4 算法實現(xiàn)

用C#語言對上述算法進行編程實現(xiàn),核心代碼如下所示:

private void ConvertQS(string qsFile,string result)

{

string zddm = "";

string[]lines = File.ReadAllLines(qsFile, Encoding.Default);//行信息數(shù)組

lines = lines.Take(lines.Length-1).ToArray();//去掉最后一行結束標記(E)

int line_count = lines.Length;//行數(shù)

int lineIndex = 0;//行序號

List zdInfos = new List();//宗地信息動態(tài)數(shù)組

while(lineIndex < line_count)//遍歷行信息數(shù)組

{

zddm = lines[lineIndex];//第一行為宗地代碼

ZDInfo zdInfo = new ZDInfo(zddm);

lineIndex += 3;//轉到界址點記錄處

string jzp_no = lines[lineIndex];//原始界址點點號

//未遇到E,表示本宗地界址點未遍歷結束,記錄本界址點信息

while(!jzp_no.StartsWith("E,"))

{

string x = lines[lineIndex + 1];

string y = lines[lineIndex + 2];

zdInfo.jzs.Add(new JZInfo(x, y));//當前界址點存入宗地信息

lineIndex += 3;//每個點有3行信息

jzp_no = lines[lineIndex];//繼續(xù)遍歷本宗地界址點

}

zdInfos.Add(zdInfo)//本宗地遍歷結束,存入宗地信息數(shù)組

lineIndex++;//轉入下一宗地

}

//遍歷宗地信息動態(tài)數(shù)組進行界址點重編號

string[]contents = zdInfos.OrderBy(item => item.zddm).ToList().Select(zdInfo =>

{

StringBuilder sb = new StringBuilder();

//遍歷當前宗地界址點動態(tài)數(shù)組,相鄰兩點構成一條界址線(最后一點與起點閉合)

for(int i = 1, len = zdInfo.jzs.Count; i <= len; i++)//對每一宗地的界址點從1開始序編

{

string start = string.Format("J{0}", i);

string end = i != len ? string.Format("J{0}", i + 1): "J1";

//計算兩點之間的直線距離

JZInfo startP = zdInfo.jzs[i-1];

JZInfo endP = zdInfo.jzs[i != len ? i : 0];

string dis = Math.Sqrt(Math.Pow(startP.x-endP.x, 2)+ Math.Pow(startP.y-endP.y, 2)).ToString("F3");

sb.AppendLine(string.Format("{0},{1},{2},{3}", zdInfo.zddm, start, end, dis));

}

return sb.ToString().TrimEnd(new char[]{ ‘ ’, ‘ ’ });

}).ToArray();

//寫入結果文件

File.WriteAllText(result, "宗地代碼,起始點號,終止點號,界址線長度 " + string.Join(" ", contents), Encoding.Default);

}

5 結果分析

運行上述代碼對原始權屬文件進行處理,得到如圖5所示結果,可以看出,每一宗地的界址點號已從1開始編碼,并自動計算得到每條界址線的長度。在地籍圖中對宗地原始的界址點號和界址線的長度

圖5 轉換結果

進行了比對,轉換結果中相鄰界址點的編號保持了原有的相對關系,且界址線長度也與地籍圖上一致,驗證了該方法的可行性。在該結果的基礎上可以很容易地進行地籍調(diào)查表中界址信息的格式化輸出以及數(shù)據(jù)入庫等其他轉化,本文不做深入闡述。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
展會信息
展會信息
展會信息
展會信息
展會信息
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲Aⅴ无码专区在线观看q| 精品超清无码视频在线观看| 国产va视频| 人人妻人人澡人人爽欧美一区 | 欧美亚洲网| 欧美日韩北条麻妃一区二区| 99精品影院| 国产精品一区二区久久精品无码| 日韩精品成人在线| 青青青视频免费一区二区| 日本成人在线不卡视频| 国产欧美日韩在线一区| 色婷婷亚洲综合五月| 中文无码毛片又爽又刺激| 亚洲视频二| 午夜综合网| 99r在线精品视频在线播放| 亚洲中文字幕在线观看| 国产粉嫩粉嫩的18在线播放91| 全部免费毛片免费播放 | 日韩欧美在线观看| 秋霞一区二区三区| 国产成人av一区二区三区| 精品国产自在现线看久久| 久久精品国产精品青草app| 白丝美女办公室高潮喷水视频| 好紧好深好大乳无码中文字幕| 美女被操91视频| 88国产经典欧美一区二区三区| 成年人免费国产视频| 亚洲无码高清一区| 视频一区视频二区日韩专区| 国产成人精品高清在线| 日韩午夜片| 亚洲开心婷婷中文字幕| 91蝌蚪视频在线观看| 国产白浆视频| 亚洲综合二区| 国产成人盗摄精品| 精品国产一区二区三区在线观看| 亚洲国产中文在线二区三区免| 国产情侣一区| 宅男噜噜噜66国产在线观看| 亚洲美女AV免费一区| 97在线视频免费观看| 亚洲丝袜第一页| 国产精品综合久久久| 在线精品欧美日韩| 国产丝袜丝视频在线观看| www.亚洲色图.com| 91蜜芽尤物福利在线观看| 日日拍夜夜操| 国内精自线i品一区202| 久久久久国产一级毛片高清板| 国产交换配偶在线视频| 精品少妇三级亚洲| 日本欧美视频在线观看| 国产免费人成视频网| 亚洲视频在线青青| 日韩无码视频播放| 青青青亚洲精品国产| 免费一级成人毛片| 中文字幕在线免费看| 欧美精品啪啪一区二区三区| 91免费片| 99久久精品国产综合婷婷| 伊人久久综在合线亚洲2019| 成人国产精品网站在线看| 2021国产精品自拍| 成人午夜久久| 青青草原偷拍视频| 国产尤物在线播放| 成人午夜久久| 国产网站免费| 国产乱人免费视频| 88av在线| 久久久成年黄色视频| 欧美国产另类| 久久婷婷色综合老司机| 亚洲人成色在线观看| 伊人大杳蕉中文无码| 久久人人妻人人爽人人卡片av|