本發(fā)明涉及一種將勘察測繪得出的CAD地形圖快速入庫的方法。
背景技術(shù):
通過實(shí)地勘察測繪出的CAD圖,經(jīng)過多年長時(shí)間的累計(jì),會(huì)沉余若干同一地區(qū)不同時(shí)間不同數(shù)據(jù)的圖幅。工作人員需要將這些沉余圖幅歸納整理到系統(tǒng)中,以便后續(xù)工作查閱,并且有效長期管理數(shù)據(jù)。一般會(huì)使用以下兩種方式:
1.通過DWGdirect.NET、ArcGIS 等二次開發(fā)工具,將CAD數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)分層、要素拓?fù)錂z測、屬性追加,最終自動(dòng)提取轉(zhuǎn)換成分層的GIS數(shù)據(jù)。
2.通過人工提取,在分幅CAD提取關(guān)鍵要素,轉(zhuǎn)換成GIS文件,附屬性,合并成分層GIS數(shù)據(jù)。
上述兩種方法均勻一定缺陷,具體是:
通過工具批量自動(dòng)將CAD地形圖轉(zhuǎn)化為分層GIS地形圖,對原CAD數(shù)據(jù)要求高,圖層的數(shù)據(jù)組織格式、要素分類方式等必須保持基本一直,才能進(jìn)行批量自動(dòng)轉(zhuǎn)換,而很多勘察測繪單位早期的地形圖由于生產(chǎn)時(shí)間不同、作業(yè)方式不同、數(shù)據(jù)來源不同,無法保證原有數(shù)據(jù)結(jié)果的一致性,無法實(shí)現(xiàn)批量轉(zhuǎn)換。只有后期進(jìn)過標(biāo)準(zhǔn)化要求生產(chǎn)的CAD地形數(shù)據(jù)才能經(jīng)過批量轉(zhuǎn)換生產(chǎn)GIS地形圖。
通過人工提取方式可以滿足不同時(shí)期、不同作業(yè)方式、不同數(shù)據(jù)來源的CAD地形數(shù)據(jù)轉(zhuǎn)換成GIS地形數(shù)據(jù),但是一般的勘察測繪單位經(jīng)過數(shù)十年的積累基本上都有數(shù)以萬計(jì)的地形圖需要規(guī)整,人力成本過大無法完成。
CAD地形數(shù)據(jù)轉(zhuǎn)換成GIS數(shù)據(jù),可以從總體上保證數(shù)據(jù)內(nèi)容的一致性,但是兩種格式數(shù)據(jù)底層還是有著本質(zhì)區(qū)別,在符號(hào)表示也無法保證100%的一致性。
CAD地形數(shù)據(jù)全要素轉(zhuǎn)換成GIS地形數(shù)據(jù)會(huì)造成,GIS分層過多、數(shù)據(jù)量大,嚴(yán)重影響系統(tǒng)顯示查詢效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的在于提供一種將勘察測繪得出的CAD地形圖快速入庫的方法。
本發(fā)明所述的一種將勘察測繪得出的CAD地形圖快速入庫的方法,其特征在于,包括以下步驟:
S1、將需要轉(zhuǎn)化的CAD地形圖文件存儲(chǔ)于工作目錄中;
S2、輸入需要轉(zhuǎn)換的CAD地形圖文件基本信息,包括比例尺、坐標(biāo)系以及年份;
S3、通過ArcEngine接口,工作空間工廠對所有CAD地形圖文件進(jìn)行實(shí)例化;
S4、提取單個(gè)CAD地形圖文件圖面信息,包括點(diǎn)信息、線信息以及面信息;
S5、將CAD地形圖文件數(shù)據(jù)轉(zhuǎn)換成ArcGis數(shù)據(jù),由IfeatureClass接口提取;
S6、根據(jù)S4提取的點(diǎn)信息、線信息、面信息,生成對應(yīng)的點(diǎn)shp數(shù)據(jù)、線shp數(shù)據(jù),以及面shp數(shù)據(jù);
S7、提取點(diǎn)shp數(shù)據(jù)中的坐標(biāo)極值,組成點(diǎn)極值坐標(biāo)組;提取線shp數(shù)據(jù)中的端點(diǎn)坐標(biāo)極值,組成線極值坐標(biāo)組;提取面shp數(shù)據(jù)中的多邊形頂點(diǎn)坐標(biāo)極值,組成面極值坐標(biāo)組;
S8、提取出點(diǎn)極值坐標(biāo)組、線極值坐標(biāo)組以及面極值坐標(biāo)組中的坐標(biāo)極值,組成最值坐標(biāo)組;
S9、以最值坐標(biāo)組的點(diǎn)為基準(zhǔn),生成CAD地形圖圖幅四邊形;
S10、將CAD地形圖圖幅四邊形的邊長與S2中比例尺對應(yīng)的圖幅邊長進(jìn)行比較得到邊長差值,以及邊長差值與比例尺對應(yīng)的圖幅邊長的比值;
S11、當(dāng)四條邊的邊長差值與比例尺對應(yīng)的圖幅邊長的比值都小于設(shè)定的比例閾值時(shí),將該CAD地形圖圖幅四邊形的所有數(shù)據(jù)追加到面狀GIS地形圖幅數(shù)據(jù)中;
S12、將S4中的CAD地形圖文件圖面信息和CAD地形圖文件的磁盤路徑同時(shí)賦值到CAD地形圖圖幅四邊形的屬性中;
S13、重復(fù)S4-S12,直至工作目錄下的所有CAD地形圖文件完成轉(zhuǎn)換;
S14、將所有完成轉(zhuǎn)換的CAD地形圖文件與轉(zhuǎn)換后對應(yīng)的面狀GIS地形圖幅數(shù)據(jù)生成一一對應(yīng)的映射關(guān)系;
S15、將所有轉(zhuǎn)換后的GIS地形圖幅數(shù)據(jù)錄、S14中完成的映射關(guān)系以及所有CAD地形圖文件錄入數(shù)據(jù)庫。
本發(fā)明所述的一種將勘察測繪得出的CAD地形圖快速入庫的方法,利用了點(diǎn)線面三個(gè)不同層次的掃描方式,將各層次的極值坐標(biāo)找出,然后再通過所有極值坐標(biāo)找出整個(gè)CAD地形圖的最大以及最小坐標(biāo)。根據(jù)這個(gè)最值坐標(biāo)組建立CAD地形圖幅,可以確保建立CAD地形圖幅時(shí)不會(huì)因?yàn)閽呙璨蝗娑股傻膱D幅不能全面覆蓋原CAD地形圖,減少了數(shù)據(jù)失真和錯(cuò)誤率。將勘察測量單位歷史沉淀下來的不同時(shí)期、不同作業(yè)方式、不同坐標(biāo)系、不同數(shù)據(jù)標(biāo)準(zhǔn)的地形數(shù)據(jù)快速且低成本地轉(zhuǎn)換成GIS數(shù)據(jù)、形成GIS數(shù)據(jù)一張圖,使其滿足基于地圖的瀏覽、查詢、統(tǒng)計(jì)、快速顯示等,讓歷史數(shù)據(jù)重新產(chǎn)生價(jià)值,減少重復(fù)測繪、重復(fù)生產(chǎn),提高效率。由于建立了一一對應(yīng)的映射關(guān)系,工程人員可以通過原CAD地形圖文件查出對應(yīng)的GIS地形圖幅數(shù)據(jù),或者反向通過GIS地形圖幅數(shù)據(jù)查找到原CAD地形圖文件,實(shí)現(xiàn)數(shù)據(jù)的無損應(yīng)用,而且查找比現(xiàn)有技術(shù)要更加快速??梢酝ㄟ^CAD程序直接打開和直接調(diào)用GIS數(shù)據(jù)或原CAD數(shù)據(jù)。
附圖說明
圖1是本發(fā)明方法的工作流程圖。
具體實(shí)施方式
如圖1所示,本發(fā)明所述的一種將勘察測繪得出的CAD地形圖快速入庫的方法,步驟如下。
首先將需要轉(zhuǎn)化的所有CAD地形圖文件存儲(chǔ)于工作目錄,工作目錄可以是同一個(gè)文件夾,也可以是在一個(gè)總目錄下的多個(gè)不同文件夾。然后輸入需要轉(zhuǎn)換的CAD地形圖文件基本信息,包括但并不限于比例尺、坐標(biāo)系以及年份。
通過ArcEngine接口,工作空間工廠實(shí)例化所有CAD地形圖文件。逐一提取單個(gè)CAD地形圖文件圖面信息,包括點(diǎn)信息、線信息以及面信息。將CAD地形圖文件數(shù)據(jù)轉(zhuǎn)換成ArcGis數(shù)據(jù),由IfeatureClass接口提取。再生成點(diǎn)信息、線信息和面信息對應(yīng)的點(diǎn)shp數(shù)據(jù)、線shp數(shù)據(jù)以及面shp數(shù)據(jù)。
提取點(diǎn)shp數(shù)據(jù)中的坐標(biāo)極值,組成點(diǎn)極值坐標(biāo)組;采用冒泡算法,歷遍所有的點(diǎn)坐標(biāo),提取出四個(gè)坐標(biāo)極值:點(diǎn)Xmax、點(diǎn)Xmin、點(diǎn)Ymax和點(diǎn)Ymin。根據(jù)這四個(gè)坐標(biāo)極值兩兩組合得出點(diǎn)極值坐標(biāo)組:(點(diǎn)Xmax,點(diǎn)Ymax)、(點(diǎn)Xmax,點(diǎn)Ymin)、(點(diǎn)Xmin,點(diǎn)Ymax)和(點(diǎn)Xmin,點(diǎn)Ymin)。
提取線shp數(shù)據(jù)中的端點(diǎn)坐標(biāo)極值,組成線極值坐標(biāo)組;采用冒泡算法,歷遍所有的線端點(diǎn),提取出四個(gè)端點(diǎn)坐標(biāo)極值:線Xmax、線Xmin、線Ymax和線Ymin。根據(jù)這四個(gè)端點(diǎn)坐標(biāo)極值兩兩組合得出線極值坐標(biāo)組:(線Xmax,線Ymax)、(線Xmax,線Ymin)、(線Xmin,線Ymax)和(線Xmin,線Ymin)。
提取面shp數(shù)據(jù)中的多邊形頂點(diǎn)坐標(biāo)極值,組成面極值坐標(biāo)組;采用冒泡算法,歷遍所有的多邊形頂點(diǎn),提取出四個(gè)頂點(diǎn)坐標(biāo)極值:面Xmax、面Xmin、面Ymax和面Ymin。根據(jù)這四個(gè)頂點(diǎn)坐標(biāo)極值兩兩組合得出面極值坐標(biāo)組:(面Xmax,面Ymax)、(面Xmax,面Ymin)、(面Xmin,面Ymax)和(面Xmin,面Ymin)。
提取出點(diǎn)極值坐標(biāo)組、組成線極值坐標(biāo)組以及組成面極值坐標(biāo)組中的坐標(biāo)極值,組成最值坐標(biāo)組;同樣采用冒泡算法,歷遍點(diǎn)線面的極值坐標(biāo),提取出所有極值坐標(biāo)中的四個(gè)最值:Xmax、Xmin、Ymax和Ymin。然后根據(jù)這四個(gè)最值兩兩組合得出最值坐標(biāo)組:(Xmax,Ymax)、(Xmax,Ymin)、(Xmin,Ymax)和(Xmin,Ymin)。
以最值坐標(biāo)組的四個(gè)點(diǎn)為基準(zhǔn),生成CAD地形圖圖幅四邊形,將CAD地形圖圖幅四邊形的邊長與輸入比例尺對應(yīng)的圖幅邊長進(jìn)行比較得到邊長差值,以及邊長差值與比例尺對應(yīng)的圖幅邊長的比值。
將CAD地形圖圖幅四邊形中四條邊的比值都同時(shí)小于比例閾值的CAD地形圖圖幅四邊形反饋轉(zhuǎn)換正常。將轉(zhuǎn)換正常的圖幅四邊形的所有數(shù)據(jù)追加到面狀GIS地形圖幅數(shù)據(jù)中。再將CAD地形圖文件圖面信息和CAD地形圖文件的磁盤路徑同時(shí)賦值到CAD地形圖圖幅四邊形的屬性中。在實(shí)踐中獲知,比例閾值取值為10%為最佳。
在進(jìn)行所述的所有數(shù)據(jù)追加到面狀GIS地形圖幅數(shù)據(jù)中之前,先檢查該CAD地形圖文件的初始數(shù)據(jù)中記錄的坐標(biāo)系是否與系統(tǒng)的坐標(biāo)系相同。如果坐標(biāo)系不一致,例如系統(tǒng)使用西安80坐標(biāo)系,則將該CAD地形圖所對應(yīng)的坐標(biāo)系通過七參數(shù)轉(zhuǎn)換方法進(jìn)行坐標(biāo)轉(zhuǎn)換,統(tǒng)一轉(zhuǎn)換為西安80坐標(biāo)系,再進(jìn)行GIS數(shù)據(jù)的追加。
為了完成所有CAD地形圖的轉(zhuǎn)換,重復(fù)上述對單個(gè)CAD地形圖的轉(zhuǎn)換過程,直至完成工作目錄下的所有CAD地形圖文件轉(zhuǎn)換。然后將所有完成轉(zhuǎn)換的CAD地形圖文件與轉(zhuǎn)換后對應(yīng)的面狀GIS地形圖幅數(shù)據(jù)生成一一對應(yīng)的映射關(guān)系。最后將所有轉(zhuǎn)換后的GIS地形圖幅數(shù)據(jù)錄、映射關(guān)系以及所有CAD地形圖文件錄入數(shù)據(jù)庫,完成CAD地形圖入庫流程。
本發(fā)明將勘察測量單位歷史沉淀下來的不同時(shí)期、不同作業(yè)方式、不同數(shù)據(jù)標(biāo)準(zhǔn)的地形數(shù)據(jù)快速且低成本地轉(zhuǎn)換成GIS數(shù)據(jù),使其滿足基于地圖的瀏覽、查詢、統(tǒng)計(jì)、快速顯示等,讓歷史數(shù)據(jù)重新產(chǎn)生價(jià)值,減少重復(fù)測繪、重復(fù)生產(chǎn),提高效率。