1. 程式人生 > >Winform 下的地圖開發控制元件(GMap.NET)使用心得

Winform 下的地圖開發控制元件(GMap.NET)使用心得

我們先看看GMap.NET的定義:

GMap.NET是一個強大、免費、跨平臺、開源的.NET控制元件,它在Windows Forms 和WPF環境中能夠通過Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等實現尋找路徑、地理編碼以及地圖展示功能,並支援快取和執行在Mobile環境中。

GMap.NET是一個開源的GEO地圖定位和跟蹤程式。就像谷歌地圖、雅虎地圖一樣,可以自動計算兩地的距離,定位經緯度,與Google地圖不 同的是,該專案是建立在C#語言WinForm基礎上的。可以對地圖放大縮小,進行城市標記等。

GMap.NET的專案地址是

http://greatmaps.codeplex.com/  , 我們可以下載相關的例子和原始碼進行學習和研究。我在Google上搜過相關的專案,好像介紹的文章不多,不過不影響這個控制元件的強大和易用。我們先看看它的 介面截圖:

GMap.NET號稱是可以支援很多種地圖來源的,不過我試了一下,好像有部分是有些問題,最好的效果是GoogleMapChina,如上圖所 示。

 我用GoogleMapChina可以放大到很詳細的街道圖,做了一個地址查詢的例子,如下所示:

 控制元件可以繪出兩地的行車線路或者步行線路等,而且能夠算出兩地的距離,不過對於地理編碼的解析好像不是很準確,也獲取不到公交線路等資訊,不過應 付一般的應用,應該是蠻不錯的了。

這個控制元件預設使用了右鍵按住作為拖動,和GoogleMap用滑鼠左鍵作為拖動有點不太一樣(不過可以通過 this.gMapControl1.DragButton = MouseButtons.Left;來實現左鍵拖動),兩者皆能夠支援滾輪放大縮小的操作。控制元件還支援經緯度的精確定位,繪製圖標(支援綠色、紅色的圖 標、十字元號等標記),支援中心點移動 ,匯出地圖圖片等功能。由於地圖控制元件支援路線的繪製,所以應該支援一般的GIS應用中的軌跡回放功能的。由於地圖 控制元件支援滑鼠位置和經緯度座標的轉換功能,因此,可以隨意獲取到相關的經緯度資訊。

這個Winform的地圖控制元件,雖然對比Web的GoogleMap來說,很多功能還不具備,但是較普通的MapX和MapXtreme或者 ArcGis等傳統的GIS來說,不用付太多的費用(甚至不用付費用),就可以使用上精細的地圖,不得不說是一個好訊息。