• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Map3D的規(guī)劃圖斑數(shù)據(jù)轉換為系統(tǒng)數(shù)據(jù)的方法

      2016-12-07 02:38:12劉宓舒濱楊釗
      城市勘測 2016年1期
      關鍵詞:面狀邊界線邊線

      劉宓,舒濱,楊釗

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

      基于Map3D的規(guī)劃圖斑數(shù)據(jù)轉換為系統(tǒng)數(shù)據(jù)的方法

      劉宓?,舒濱,楊釗

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

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

      Map3D;GIS;規(guī)劃圖斑;Shapefile

      1 引 言

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

      2 技術路線

      2.1工具選擇

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

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

      2.2轉換方法

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

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

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

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

      2.3轉換流程

      轉換流程,如圖1所示,其中,拼接邊界線、創(chuàng)建MPOLYGON和創(chuàng)建對象數(shù)據(jù)是轉換的關鍵環(huán)節(jié)。

      圖1 規(guī)劃圖斑轉shp流程圖

      3 程序實現(xiàn)

      3.1圖形清理

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

      3.2重建填充邊界

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

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

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

      3.3拼接邊界線

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

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

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

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

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

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

      拼接算法的實現(xiàn)過程如下:

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

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

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

      3.4創(chuàng)建MPOLYGON

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

      (defun Hatch2Shp_MK_MPOLYGON(ss/)...)

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

      創(chuàng)建MPOLYGON對象以及判斷是否創(chuàng)建成功的方法為:

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

      3.5輸出面狀shp

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

      3.6創(chuàng)建對象數(shù)據(jù)

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

      圖2 屬性數(shù)據(jù)示例

      創(chuàng)建對象數(shù)據(jù)的步驟:

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

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

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

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

      3.7輸出點狀shp

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

      圖3 輸出對象數(shù)據(jù)

      3.8空間連接

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

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

      方法二:通過DotSpatial等GIS組件來實現(xiàn)。實現(xiàn)方法如下所示:

      4 總 結

      本文討論了DWG格式的規(guī)劃圖斑數(shù)據(jù)轉換為shp數(shù)據(jù)的流程和方法,對轉換過程中重要技術環(huán)節(jié)的處理給出了詳細的解決方案。

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

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

      圖4 Hatch的缺點

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

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

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

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

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

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

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

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

      [9] 劉仁義,劉南.ArcGIS開發(fā)寶典——從入門到精通[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—),女,高級工程師,注冊測繪師,主要從事地理信息數(shù)據(jù)制作處理等工作。

      猜你喜歡
      面狀邊界線邊線
      海岸水邊線提取方法在GF-2衛(wèi)星影像中的適應性研究
      海洋通報(2022年3期)2022-09-27 02:46:20
      弟弟尿床了
      利用ArcGis實現(xiàn)森林資源管理“一張圖”線轉面的方法探討
      綠色科技(2021年5期)2021-04-08 08:14:00
      “邊界線”風波
      “邊界線”風波
      學生天地(2018年14期)2018-09-07 02:44:36
      顧及遙感影像特征的面狀地物輪廓簡化
      神奇的邊界線:一不留神就出國
      智慧少年(2017年8期)2018-01-10 21:39:12
      一種面狀要素地圖的連續(xù)綜合方法研究
      認識足球(六)
      突破矩形上邊線買入法(1)
      隆德县| 东丽区| 新河县| 波密县| 正宁县| 会东县| 河津市| 高雄县| 安西县| 都匀市| 龙岩市| 石河子市| 华亭县| 高州市| 二手房| 兴安县| 永新县| 东宁县| 沂南县| 漠河县| 繁峙县| 辛集市| 东安县| 阳信县| 利辛县| 平顺县| 邯郸县| 永登县| 通山县| 建平县| 峨山| 张家界市| 义乌市| 甘肃省| 固安县| 防城港市| 万载县| 乐昌市| 东城区| 始兴县| 阿克|