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—),女,高級工程師,注冊測繪師,主要從事地理信息數據制作處理等工作。

主站蜘蛛池模板: 国产精品9| 毛片手机在线看| 国产成人综合亚洲欧美在| 色偷偷综合网| 欧美成人h精品网站| 97在线公开视频| 国产美女免费网站| 热久久这里是精品6免费观看| 亚洲视频免费在线看| 日本人真淫视频一区二区三区| 91成人在线观看视频| 91精品国产综合久久香蕉922| 国产va视频| 国产美女丝袜高潮| 免费在线国产一区二区三区精品| 久久国产高潮流白浆免费观看| 美女内射视频WWW网站午夜 | 亚洲人人视频| 欧美不卡视频在线| 国产一区自拍视频| 中文字幕在线日本| 成年人国产网站| 女人18毛片一级毛片在线 | 夜夜操国产| 女人18毛片久久| 91午夜福利在线观看| 亚洲无码视频一区二区三区 | 欧美视频在线第一页| 人妻中文字幕无码久久一区| 国产高清无码第一十页在线观看| 国产精品香蕉在线观看不卡| 一本大道无码高清| 国产中文在线亚洲精品官网| 怡红院美国分院一区二区| 亚洲一欧洲中文字幕在线| 日韩成人免费网站| 国产精品亚洲五月天高清| 中日无码在线观看| 欧美成人精品欧美一级乱黄| 国产屁屁影院| 免费高清毛片| 凹凸精品免费精品视频| 色综合久久综合网| 重口调教一区二区视频| 国产精品分类视频分类一区| 国产欧美日韩在线在线不卡视频| 亚洲欧美日韩中文字幕在线一区| 欧美h在线观看| 国产成人高清在线精品| 99国产在线视频| 九九热在线视频| 日韩欧美中文在线| 啊嗯不日本网站| 国产精品区视频中文字幕| 成人福利在线免费观看| 国产综合无码一区二区色蜜蜜| 国产精品对白刺激| 亚洲永久色| 好吊色妇女免费视频免费| 国产18在线播放| 免费人成在线观看视频色| 伊人国产无码高清视频| 欧美日韩成人在线观看| 香蕉久久永久视频| 亚洲av无码久久无遮挡| 国产成人综合日韩精品无码首页| 亚洲一级毛片| 亚洲成人在线网| 成人免费午夜视频| 97se亚洲综合| 精品99在线观看| 婷婷在线网站| 日本午夜视频在线观看| 久久香蕉国产线看观看精品蕉| 毛片免费网址| 婷婷六月激情综合一区| 国产你懂得| 97在线免费视频| 波多野结衣的av一区二区三区| 国产三级精品三级在线观看| 久久黄色免费电影| 真实国产精品vr专区|