梁志強(黑龍江省林業(yè)監(jiān)測規(guī)劃院,黑龍江 哈爾濱 150080)
1.1 天地圖
“天地圖”是國家測繪地理信息局建設(shè)的地理信息綜合服務(wù)網(wǎng)站。是“數(shù)字中國”的重要組成部分,是國家地理信息公共服務(wù)平臺的公眾版?!疤斓貓D”的目的在于促進地理信息資源共享和高效利用,提高測繪地理信息公共服務(wù)能力和水平,改進測繪地理信息成果的服務(wù)方式,更好地滿足國家信息化建設(shè)的需要,為社會公眾的工作和生活提供方便[1]。
天地圖所公布的在線遙感影像資料,我們可以通過在線的方式進行數(shù)據(jù)訪問,并可以結(jié)合其提供的訪問接口實現(xiàn)與在線地圖的互動操作。在營造林工程管理過程中,為了查清以往林地的保存情況,部分單位可能經(jīng)過幾年的人事調(diào)整或者檔案管理不善等情況,尤其是電子檔案沒有建檔的營造林小班,如果將其進行地理信息化處理,只能通過當(dāng)時的紙質(zhì)檔案,進行數(shù)據(jù)內(nèi)容分析,在沒有具體坐標拐點的情況下,工作人員只能通過現(xiàn)地進行GPS坐標取點,浪費人力、物力、財力,且效率不高。而采用基于遙感影像的數(shù)據(jù)獲取方式,基層林業(yè)業(yè)務(wù)人員,在對本地區(qū)的空間情況十分了解的情況下,能夠通過遙感影像資料進行分析并獲取一下基礎(chǔ)數(shù)據(jù),將極大地節(jié)省工作時間和提高工作效率。
1.2 GMap.NET
GMap.NET是一個強大、免費、跨平臺、開源的.NET控件,它在Windows Forms 和WPF環(huán)境中能夠通過天地圖、谷歌地圖、Yahoo、Bing、OpenStreetMap等實現(xiàn)尋找路徑、地理編碼以及地圖展示功能,并支持緩存和運行在Mobile環(huán)境中。
GMap.NET是一個開源的GEO地圖定位和跟蹤程序[3]。GMAP由Map Control(地圖控件)、Overlay(圖層)、Markers(標記點)組成,可實現(xiàn)點狀、線狀、面狀空間要素的繪制操作。可以定位經(jīng)緯度,可以對地圖放大、縮小、標記等。
GMap.NET核心動態(tài)鏈接庫:GMap.NET.Core.dll、GMap.Net.dll、GMap.NET.WindowsForms.dll、GMap.NET.WindowsForms。在開發(fā)過程中可以將這些DLL文件進行引用。
圖1 GMap.NET圖層結(jié)構(gòu)
本文基于C#與GMap.NET開源組件進行系統(tǒng)研發(fā),實現(xiàn)對天地圖及谷歌地圖的數(shù)據(jù)訪問功能,基層工作人員可通過在線的遙感影像和現(xiàn)有的數(shù)據(jù)資料,通過數(shù)據(jù)交互方式完善營造林圖斑的空間位置信息。
通過Microsoft Studio集成開發(fā)工具的C#開發(fā)語言環(huán)境[2],加載GMap.NET動態(tài)鏈接庫,將GMapControl控件加載至Form窗體中,根據(jù)GMap.NET的開發(fā)原理及方法,進行軟件功能的編制。
主要實現(xiàn)功能包括:加載天地圖或谷歌地圖遙感影像、XY方向坐標修正、取點或插入點及移除點、顯示標記、調(diào)整坐標順序、繪制拐點、坐標入庫及導(dǎo)出Excel等。
圖2 Visual Studio加載Gmap.NET軟件開發(fā)界面
窗體加載GMap.NET代碼實現(xiàn):
privatevoidfrmMain_Load(object sender,EventArgs e)
{
mapControl.MapProvider =TdtImageMapProvider.Instance; //訪問天地圖遙感地圖
mapShow_Lzq();
}
publicvoidmapShow_Lzq()
{
mapControl.Manager.Mode =AccessMode.ServerAndCache;
mapControl.Zoom = 18;
mapControl.ShowCenter =false; //不顯示中心十字點
mapControl.DragButton = System.Windows.Forms.MouseButtons.Right; //右鍵拖拽地圖
//默認設(shè)置位置
mapControl.Position = new PointLatLng(39.9078927749492,116.398086547852);mapControl.Overlays.Add(gMapOverlayPolygons);
mapControl.Overlays.Add(gMapOverlayMarkers);
mapControl.MouseDown += newMouseEventHandler(mapControl_MouseDown);
}
圖3 軟件功能實現(xiàn)
遙感影像的加載:可以加載常用的天地圖、谷歌地圖的在線遙感影像或者是帶標注的遙感影像信息,通過菜單的方式進行切換。
高斯換算:在線遙感地圖的定位坐標均采用經(jīng)緯度方式,而林業(yè)部門常用的是投影坐標系即公里網(wǎng)坐標,通過高斯坐標換算實現(xiàn)公里網(wǎng)與經(jīng)緯度坐標的相互換算,該方法在網(wǎng)絡(luò)上就可以搜索到。
偏移量:谷歌或者天地圖在線的影像坐標與我們在現(xiàn)地獲取的實際坐標均有一定的偏差,為了能夠使實地獲取的坐標與影像位置基本上一致,可以通過將已知點坐標落到影像圖上,通過X、Y方向修正的方式求得偏移量,通過實驗的方法,獲取局部區(qū)域的平均偏移量,并將該偏移量保存,以供其他圖斑使用。
坐標定位:通過輸入公里網(wǎng)坐標點實現(xiàn)該坐標點的定位。
取點功能:通過鼠標移動或者單擊,可以獲取當(dāng)前鼠標位置的經(jīng)緯度坐標,通過高斯換算將其轉(zhuǎn)換為公里網(wǎng)坐標,并通過偏移量的糾偏,就可以計算出該點的實際經(jīng)緯度及公里網(wǎng)坐標,將其存儲在數(shù)據(jù)列表中或者存儲在數(shù)據(jù)庫中。
顯示拐點:通過GMAP的GMapMarker對象實現(xiàn)圖斑要素的標注,可以實現(xiàn)地塊的信息顯示及拐點順序的顯示。
GMapMarkergMapMarker = new GMarkerGoogle(new PointLatLng(lng0,lat0),
GMarkerGoogleType.green); //綠色點
gMapMarker.ToolTipText = l_key;
gMapOverlayRoutes.Markers.Add(gMapMarker);
坐標信息導(dǎo)出:采用C#+NPOI技術(shù),實現(xiàn)電子表格的操作,即使該計算機中沒有安裝Office軟件,也可以實現(xiàn)表格的導(dǎo)出功能。
存儲為圖片:實現(xiàn)當(dāng)前屏幕的遙感影像區(qū)域存儲為擴展名PNG格式圖片。
通過C#+GMap.NET開源組件研發(fā)營造林圖斑的獲取功能,可通過在線遙感影像的訪問及空間位置信息交互的方式,針對營造林工作,將圖斑的位置、坐標、影像等資料進行存儲,豐富了以往資料的獲取方式和內(nèi)容,對提高營造林數(shù)據(jù)質(zhì)量,提高工作人員技術(shù)水平及林業(yè)信息化建設(shè)等方面提供了一個新的途徑。
參考文獻:
[1] 黃蔚.國家地理信息公共服務(wù)平臺天地圖[J].技術(shù)進展,2014(1):41-44
[2] (美)沃森,(美)內(nèi)格爾.C#入門經(jīng)典[M].喬麗波,譯.北京:清華大學(xué)出版社,2006
[3] 余朋.Gmap地理信息技術(shù)在空管系統(tǒng)中的應(yīng)用[J].電腦編程技巧與維護,2014(12):102-104