天天看點

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号稱是可以支援很多種地圖來源的,不過我試了一下,好像有部分是有些問題,最好的效果是GoogleMapChina,如上圖所示。

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

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

這個控件預設使用了右鍵按住作為拖動,和GoogleMap用滑鼠左鍵作為拖動有點不太一樣(不過可以通過this.gMapControl1.DragButton = MouseButtons.Left;來實作左鍵拖動),兩者皆能夠支援滾輪放大縮小的操作。控件還支援經緯度的精确定位,繪制圖示(支援綠色、紅色的圖示、十字元号等标記),支援中心點移動 ,導出地圖圖檔等功能。由于地圖控件支援路線的繪制,是以應該支援一般的GIS應用中的軌迹回放功能的。由于地圖控件支援滑鼠位置和經緯度坐标的轉換功能,是以,可以随意擷取到相關的經緯度資訊。

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

繼續閱讀