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

基于Map3D的規劃圖斑數據轉換為系統數據的方法

2016-12-07 02:38:12劉宓舒濱楊釗
城市勘測 2016年1期

劉宓,舒濱,楊釗

(天津市測繪院,天津 300381)

基于Map3D的規劃圖斑數據轉換為系統數據的方法

劉宓?,舒濱,楊釗

(天津市測繪院,天津 300381)

規劃數據中的圖斑多是以AutoCAD中的填充對象(Hatch)來表示的,這些填充對象無法直接轉換為shp數據。本文討論了基于Map3D平臺將規劃圖斑數據轉換為shp的方法,并對轉換過程中出現的各種問題提出了相應的解決辦法。

Map3D;GIS;規劃圖斑;Shapefile

1 引 言

我們在為規劃部門開發GIS平臺過程中,需要將很多規劃圖斑類的數據轉換為shp數據,如土地細分導則數據。規劃圖斑要素一般都是在AutoCAD軟件中以填充面(Hatch)來表示的,而Hatch填充對象無法直接轉換為shp數據,并且組成Hatch對象的情況非常復雜,幾乎本文詳細討論了在Map3D軟件平臺下,通過二次開發應用程序,實現填充對象轉換為shp數據的流程和方法。

2 技術路線

2.1工具選擇

由于規劃圖斑數據是DWG格式的,所以我們選擇AutoCAD Map3D軟件來處理,它能直接操作DWG文件。在轉換過程中,可以實時的呈現每一步驟的轉換結果,存在數據錯誤時,用戶可以方便地修改。

Map3D軟件包含AutoCAD的所有功能,同時還集成了很多GIS的功能,通過它可以將DWG數據中的點、線、面等要素直接轉換成shp數據,不需要再借助其他的GIS平臺生成shp數據了,這是我們選擇Map3D的一個原因。此外,另一個重要的原因是,對于包含弧段的多段線和面,也能夠完美地轉換到shp,這無疑幫我們解決了一個重要的問題,我們不用再考慮圓弧加密的問題了。

2.2轉換方法

規劃圖斑數據主要由兩部分組成:面狀圖斑、圖斑內部屬性點。其中屬性點一般用多行文件(MTEXT)或屬性塊來表示,所以在轉換時需要對這兩部分分別考慮。

轉換面狀圖斑的方法為:先獲取圖斑邊線,然后拼接成閉合邊線,再將閉合邊線創建成MPOLYGON對象,最后用Map3D的MAPEXPORT命令就可以將MPOLYGON輸出為面狀shp數據。

轉換屬性點的方法為:先將地塊編號、用地代碼、用地面積、容積率等屬性信息創建對象數據并附著到屬性點上,然后用MAPEXPORT命令將屬性點輸出為點狀shp數據。

最后,使用DotSpatial組件或者ArcGIS中的空間連接工具處理點、面的shp數據,通過空間包含關系將點的屬性關聯到面上去。

2.3轉換流程

轉換流程,如圖1所示,其中,拼接邊界線、創建MPOLYGON和創建對象數據是轉換的關鍵環節。

圖1 規劃圖斑轉shp流程圖

3 程序實現

3.1圖形清理

只保留圖中的圖斑填充和屬性點,刪除其他所有對象。因為重建填充邊界線時,有時會生成很多零散的線,然后再對這些新生成的線進行拼接。為了避免與原圖中的線沖突,所以先刪除所有不參與轉換的對象。

3.2重建填充邊界

通過hatchedit命令,可以獲取構建Hatch填充對象的所有邊界線。重建后的邊界線可能存在兩種情況:

(1)對于比較規范的填充面,重建邊界后可以獲得閉合的線;

(2)對于比較復雜的填充面,重建邊界后可能會生成很多零散的直線、圓弧、樣條曲線等。

3.3拼接邊界線

如果新生成的邊界線中存在不閉合的線,就要進行拼接操作。拼接操作主要通過AutoCAD中的PEDIT、JOIN命令來完成。自定義拼接函數結構如下:

(defun Hatch2Shp_PJ(ss loops/)...)

函數接收兩個參數,ss表示一個Hatch對象生成的邊線集合,loops表示該Hatch對象中環的個數。如果函數運行成功,返回閉合多邊形的集合,否則返回nil。

需要注意的是,自定義的拼接函數中必須對返回值的條件進行嚴格地控制:

只有當拼接完成后,拼接后的線全部構成閉合多邊形,而且總數與loops相等時,才能返回拼接結果,其他任何情況都應該返回nil,即表示拼接不成功。此時,需要將拼接的中間成果放置到特定的層,讓用戶去檢查、修改邊線中的錯誤。

如果我們對拼接函數的返回結果不控制,不判斷返回值,那么在創建MPOLYGON對象時,可能創建不成功,或者創建的是完全錯誤的MPOLYGON。例如,當遇島狀的Hatch,由多個環組成,拼接邊線時,如果只拼接成功了外環或者個別內環,那么創建出來的MPOLYGON是完全錯誤的。

拼接算法的實現過程如下:

拼接時的一個重要的原則是:最大限度地拼接將每個填充面(Hatch)生成的邊線。這會給后續的用戶檢核工作帶來極大的便利。

在我們設計的轉換流程中,當不能正確拼接、不能創建MPOLYGON時,我們采取的方式是將邊線放置到特定的層讓用戶去檢查修改邊線。這種情況下,如果當兩個或多個相鄰的Hatch面都不規范,且生成的邊線比較瑣碎的時候,就很難區分各個瑣碎邊線的歸屬,不知道這些互相疊壓的邊線是哪個面生成的,這就給用戶的修改工作造成極大的麻煩。

所以我們用pedit命令拼接后,又用join命令進行更進一步的拼接。

3.4創建MPOLYGON

通過MPOLYGON命令,可以將閉合的多段線創建成MPOLYGON對象,但是對于數據質量有嚴格的要求:多段線上不能有重點、不能有折回、不能自相交。所以需要檢查MPOLYGON對象是否創建成功,如果創建不成功,需要將邊界線添加標記或放到特定的圖層,讓用戶去檢查數據問題,修正后再重新創建。自定義創建MPOLYGON的函數結構如下:

(defun Hatch2Shp_MK_MPOLYGON(ss/)...)

參數ss表示閉合多段線的選擇集。如果函數運行成功,返回新創建的MPOLYGON對象,否則返回nil。

創建MPOLYGON對象以及判斷是否創建成功的方法為:

首先,在創建MPOLYGON對象之前,用(ssget"X")獲取當前圖中的所有對象;然后創建MPOLYGON對象;再用entlast函數獲取當前圖中的最后一個實體;最后用(ssmemb en ss_all)判斷en是否在原始圖中存在,如果不存在,就說明en是最新生成的實體,再判斷en的類型是否為MPOLYGON,如果是就說明創建成功了。

3.5輸出面狀shp

通過MAPEXPORT命令可以直接將MPOLYGON對象輸出為shp數據。

3.6創建對象數據

在規劃圖斑數據中,屬性點一般用屬性塊或多行文本來表示,其中包含了地塊編號、用地代碼等信息,如圖2所示:

圖2 屬性數據示例

創建對象數據的步驟:

(1)創建對象數據表。Map3D中的對象數據表相當于shp中的DBF數據庫表,LISP語言中通過ade_ oddefinetab函數來定義,方法如下:

定義時,必須指定表的名稱(tablename)、說明(tabledesc)和字段列表;定義字段列表時,必須指定每個字段的名稱(colname)、說明(coldesc)、類型(coltype)和默認值(defaultval)。字段類型共有四種,分別為:整型(integer)、字符型(character)、點(point)、實型(real)。

(2)附著對象數據。定義完對象數據表之后,僅僅是在圖形環境中定義了一個屬性結構,還沒有與具體的對象相關聯。我們需要先把對象與對象數據表關聯,關聯之后,表中的每個字段就相當于對象的屬性了,然后再為每個字段賦值。自定義添加對象數據的函數結構為:

函數set_field接收四個參數:對象名為ENAME類型;表名即對象數據表的名稱;字段名是指上一步驟中定義的字段名稱,如“地塊編號”等;字段值的類型要與定義字段時的類型(coltype)一致。函數的實現過程為:

3.7輸出點狀shp

用MAPEXPORT命令可以將屬性點直接輸出為shp,輸出方法如圖2所示。如果屬性點是符號塊(INSERT)或點(POINT),對象類型選擇“點”,如果是文本(TEXT或MTEXT),對象類型選擇“文本”。為了輸出對象數據,需要在“數據”標簽頁中選擇屬性,然后選擇已經定義的對象數據表,如圖3所示:

圖3 輸出對象數據

3.8空間連接

將圖斑面和屬性點都輸出為shp后,可以通過多種方法將點的屬性復制到面上。

方法一:通過ArcToolbox中的“空間連接”工具很方便地實現屬性的復制;

方法二:通過DotSpatial等GIS組件來實現。實現方法如下所示:

4 總 結

本文討論了DWG格式的規劃圖斑數據轉換為shp數據的流程和方法,對轉換過程中重要技術環節的處理給出了詳細的解決方案。

筆者認為,在DWG格式數據中,用Hatch填充面來表示面狀規劃圖斑并不是最理想的表達方式,因為Hatch對象的創建相對比較自由,生成Hatch的過程中不會檢查懸掛線、自相交、折回線等,只要存在閉合的路徑就能創建,如圖4所示。

正如前文所討論的,MPOLYGON對象可以直接轉換為面狀的shp,因為MPOLYGON是規范的多邊形,創建時它會對邊線是否存在重疊點、自相交、折回等進行嚴格地檢核,所以MPOLYGON相對于Hatch而言,是更科學的表達面狀圖斑的方式。

圖4 Hatch的缺點

[1] 齊占開.基于Autodesk Map 3D數字制圖系統符號庫設計[J].礦山測量,2014(2):8~9.

[2] 周麗珠,周奎,周義軍.基于CAD數據的GIS化處理過程的研究與應用[J].城市勘測,2013(5):23~25.

[3] 王婷麗.基于ArcGIS的規劃數據格式轉換研究[J].江西理工大學學報,2013(1):51~54.

[4] 謝祖明.基于CAD數據生產ArcGIS制圖數據的研究與應用[J].測繪與空間地理信息,2012(8):121~123.

[5] 周麗珠,劉富東,周義軍等.基于關系探測聚類的圖形自動接邊算法[J].城市勘測,2012(6):126~129.

[6] 譚清華,張明.基于DWG文件的圖形轉換方法與程序實現[J].城市勘測,2012(4):125~127.

[7] 王光昇,周麗珠,劉允等.基于AutoCAD自定義實體的初步研究[J].城市勘測,2012(2):134~137.

[8] 周義軍,劉小飛,舒濱等.基于規則和模板的CAD到GIS數據轉換[J].城市勘測,2012(1):81~83.

[9] 劉仁義,劉南.ArcGIS開發寶典——從入門到精通[M].北京:科學出版社,2009.

The Method of Urban Planning Polygon Data Convert to GIS Data Based on Map3D

Liu Mi,Shu Bin,Yang Zhao

(Tianjin Institute of Surveying and Mapping,Tianjin 300381,China)

At current,the urban planning polygon data is represented by the filling object(Hatch)of AutoCAD.The filling objects cannot be converted directly to SHP data.This paper discusses the method of urban planning polygon data convert to GIS data based on Map3D and gives the corresponding solutions for the problems of conversion.

Map3D;GIS;urban planning polygon;shapefile

1672-8262(2016)01-122-04

P208.1

B

?2015—09—17

劉宓(1979—),女,高級工程師,注冊測繪師,主要從事地理信息數據制作處理等工作。

主站蜘蛛池模板: 欧美色伊人| 久久精品国产国语对白| 国产精品久久自在自线观看| 国产二级毛片| 亚洲国产精品一区二区高清无码久久 | 色婷婷成人| 日韩视频福利| 噜噜噜综合亚洲| 2020精品极品国产色在线观看| 热久久国产| 欧美中文字幕一区| 中文字幕日韩视频欧美一区| 亚洲精品国产自在现线最新| 精品国产美女福到在线直播| 91小视频在线观看| 99尹人香蕉国产免费天天拍| AV网站中文| 亚洲中文字幕23页在线| 免费看美女毛片| 免费国产小视频在线观看| 亚洲bt欧美bt精品| 五月婷婷综合网| 伊人久久精品无码麻豆精品| 四虎精品国产AV二区| 女人爽到高潮免费视频大全| 国产精品久久久久久搜索| 欧美不卡二区| 国产后式a一视频| 亚洲成人手机在线| 日本成人一区| 国产在线无码一区二区三区| 97视频在线观看免费视频| 色综合中文| 亚洲国产日韩一区| 国产三级精品三级在线观看| 国产欧美中文字幕| 天堂成人av| 91福利国产成人精品导航| 青青草原国产精品啪啪视频| 黄色网页在线播放| 免费在线不卡视频| 亚洲最大在线观看| 日韩欧美国产另类| 亚洲天堂啪啪| 日韩精品成人在线| 欧美在线导航| 日韩大片免费观看视频播放| 国产日韩欧美视频| 97视频免费在线观看| 国产精品视频导航| 日韩色图在线观看| 无码国产伊人| 欧美午夜网| 无码国产偷倩在线播放老年人| 国产一二三区视频| 国产高清在线精品一区二区三区| 国产成人超碰无码| 国产视频久久久久| 99精品国产高清一区二区| 无码人妻热线精品视频| 久久久91人妻无码精品蜜桃HD| 青青久视频| 亚洲精品国产自在现线最新| 亚洲精品你懂的| 天天色天天操综合网| 欧美69视频在线| 无遮挡国产高潮视频免费观看| 亚洲精品你懂的| 久久青青草原亚洲av无码| 九色视频线上播放| 激情网址在线观看| 国产欧美视频一区二区三区| 波多野结衣一区二区三区四区| 九色在线观看视频| 亚洲天堂.com| 在线欧美一区| 无码AV高清毛片中国一级毛片| 亚洲成人网在线观看| 国产日韩AV高潮在线| 亚洲人成网址| 国产成人你懂的在线观看| 国产成人福利在线|