梁志強,張 冰
(黑龍江省自然資源權益調查監測院,黑龍江 哈爾濱 150080)
山海易繪(EzMap)是由北京山海經緯信息技術公司自主開發,是專業地理數據采集和地圖制圖出版軟件[1]。在省級林業調查單位應用廣泛,其工程文件(擴展名為.EMP,其數據庫為.MDB)是矢量、數據及符號表達效果的集合。
在我省常規的林業制圖采用EzMap軟件進行制圖,以森林資源規劃設計調查的林相圖作為基礎制圖。林相圖以林場(或營林區、鄉、鎮)級經營單位為基礎制圖單位,多數采用比例尺1∶25000、高斯-克呂格投影、西安1980坐標系、6度分帶,中央經線分別為123、129、135??h、市、省級匯總圖均基于林場級數據匯總所得,多數采用比例尺1∶10萬、1∶20萬。
現階段CGCS2000坐標系在全省范圍內已被全面應用,西安1980坐標系制圖已不滿足業務生產要求,按CGCS2000坐標系重新制圖工作量很大,所以將現有的EzMap西安1980坐標系的工程文件轉換為CGCS2000是最好的選擇。
借助EzMap的矢量數據配準功能,通過讀取控制點文件(.lvp)實現坐標轉換,可以達到預期效果。
以西安1980坐標系的縣界(含鄉鎮界)為基礎,按等距布點生成布點圖,使用坐標轉換軟件將布點圖轉換成CGCS2000坐標,以鄉鎮為單位將西安1980坐標和CGCS2000進行選取,并生成EzMap識別的lvp文件。
讀取縣界(含鄉鎮界線要素)矢量包絡線(最小外側矩形區域)及空間投影信息,獲取該包絡線的四角坐標,并將左上角范圍橫縱坐標值按千位數進行取值,并將該矩形區域按一定距離外延,擴大矩形區域范圍。
以該外延區域的左上角作為起始點,以設置橫縱方向間隔值進行均勻布點,創建與外延區域相同空間投影的圖框范圍布點圖層。保證控制點完全涵蓋縣域范圍。創建屬性字段為XH(數值型)、X1980(浮點型)、Y1980(浮點型)、X1980SH(浮點型)、Y1980SH(浮點型)、X2000(浮點型)、Y2000(浮點型)、X2000SH(浮點型)、Y2000SH(浮點型)。用于存儲布點序號、兩期坐標值及EzMap的1∶25000比例尺的坐標值(相應坐標x0.04獲得)。在創建點的過程中將XH、X1980、Y1980、X1980SH、Y1980SH值寫到相應點信息中。
使用坐標轉換軟件將布點圖DIAN1980轉換為CGCS2000坐標系矢量圖DIAN2000。
讀取DIAN2000,獲取CGCS2000坐標系每個點的橫縱坐標,并將該橫縱坐標及換算坐標,按XH字段的值寫回到矢量DIAN1980相同XH的相應屬性字段中。
讀取縣界矢量,選擇相應鄉鎮要素,并按布點間隔進行外向緩沖,用于選取布點個數超過原鄉鎮界線。
以緩沖后的鄉鎮范圍選取布點。
lvp實質為文本文件,是EzMap識別的配準文件格式。將選取的布點的X1980SH、Y1980SH、X2000SH、Y2000SH字段的內容,按lvp文件格式進行創建和寫入。
打開林業專題山海工程文件,使用“投影與配準”,選擇“矢量配準”,選擇配準方法,導入lvp文件,點“執行”操作,即可將西安1980的坐標配準到CGCS2000位置,配準后進行“投影變換”,選擇“2000國家大地坐標系”確定投影。
坐標轉換后,重新制作CGCS2000坐標系的公里網圖框。
采用傳統GIS軟件實現控制點文件的制作效率很低,工作量大,通過對上述制作方法的研究,可以采用研發相應軟件,實現批量處理操作。
GDAL(Geospatial Data Abstraction Library,地理空間數據抽象庫)是一個在X/MIT許可協議下的開源空間數據(柵格數據和矢量數據)轉換庫,可實現讀取、寫入、轉換、處理各種柵格和矢量數據格式[2]。
實現縣域包絡線讀取、生成縣域區域布點圖、計算布點圖坐標、兩期矢量坐標屬性數據關聯、逐鄉鎮要素選擇、鄉鎮區域緩沖、選取鄉鎮緩沖范圍布點、讀取屬性信息等功能(圖1、圖2)。
oLayerXiang = ds.ExecuteSQL("SELECT * FROM " + fileXiang + " WHERE XIANG_NAME='" + dic.Value + "'", null, null);//獲取鄉鎮要素oLayerDian = ds.GetLayerByName(file1980);//獲取布點圖層 oLayerDian.SetSpatialFilter(oLayerXiang.GetNextFeature(). GetGeometryRef().Buffer(Convert.ToDouble(heng), 0));//獲取點要素_按鄉鎮緩沖范圍設置空間過濾器。

圖1 控制點批量生成軟件Fig.1 Control Point Batch Generation Software

圖2 鄉鎮級控制點分布圖Fig.2 Distribution Map of Township Control Points
通過GDAL遍歷圖層要素,將EzMap需要的坐標寫到lvp文件中(圖3)。

圖3 EzMap識別的lvp文件Fig.3 Lvp File Recognized by EzMap
在EzMap中將變化圖層進行可編輯,導入對應單位的lvp文件,選擇適當的配準模型,查看誤差滿足要求即可執行配準操作。配準后可以導入已有的CGCS2000坐標系矢量進行校驗,經過校驗配準效果滿足制圖要求(圖4)。

圖4 EzMap配準源點、目標點及誤差Fig.4 EzMap Registration Source Point, Target Point and Error
以上介紹了山海易繪林業制圖工程文件及控制點制作方法,并以C#+GDAL構建軟件的方式,批量按縣域內各鄉鎮范圍生成矢量數據配準的控制點文件,通過EzMap軟件實現已有林業制圖文件從西安1980坐標系向CGCS200坐標系的轉換,可以精準、高效實現數據坐標轉換。