GMap.NET控件使用
GMap.NET是一個.net控件,開源、跨平臺、免費。地圖來源廣泛。可以用于WinForm、WPF、WM。 .................................................................................................... 要使用這個控件,就必須理解以下幾點: 1. What is the?map control?(GMapControl)? This is the control which renders the map.? 2. What is an?Overlay?(GMapOverlay)? This is a layer on top of the map control. You can have several layers on top of a map, each layer representing, say, a route with stops, a list of stores etc. 3. What are?Markers?(GMapMarker)? These are the points on a layer, each representing a specific geo location (Lat,Lon) e.g. each drop point on a route. 4. What is a?route?(GMapRoute)? This is the path or direction between two or more points. 5. WTF are tiles? – well here is something to read…Bing Maps Tile System. 1.向Windows Form添加一個GMap控件 直接把控件從工具箱拖到form上,調(diào)整大小,然后把默認(rèn)名字GMapControl1改為gmap 選擇控件,選擇屬性,打開屬性面板,除了控件的通用屬性外,還有GMap特定的屬性, CanDragMap-----鼠標(biāo)右鍵拖動地圖 MarkersEnabled---顯示markers PolygonsEnabled---顯示polygon ShowTileGridLines---顯示坐標(biāo)格網(wǎng) Zoom, MinZoom, MaxZoom---Google地圖的縮放水平從0-18,0是全球范圍,18是街道級別,全國級別的話,zoom設(shè)為5比較合適。 2.初始化地圖 給form添加一個onLoad事件,寫入如下代碼: private void Form1_Load(object sender, EventArgs e)? {? ?// Initialize map:? gmap.MapProvider = GMap.NET.MapProviders.BingMapProvider.Instance;? GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;? gmap.SetCurrentPositionByKeywords("Maputo, Mozambique");? } 現(xiàn)在運行就可以看到地圖了。如果無法用鼠標(biāo)右鍵拖拽地圖和滾輪縮放,檢查控件屬性設(shè)置是否正確。有如下四種方式設(shè)置地圖的默認(rèn)位置: gmap.SetCurrentPositionByKeywords(“country”) - USA gmap.SetCurrentPositionByKeywords(“state, country”) – Berlin, Germany gmap.SetCurrentPositionByKeywords(“province, country”) – Alberta, Canada gmap.Position?=?new?PointLatLng(-25.971684,32.589759);3.地圖提供器?Map ProvidersGMap.NET?library的神奇之處在于不僅僅可以利用Google Maps,還有其他地圖可以利用,GMap可以調(diào)用大量的地圖源,并且接口都封裝在內(nèi)部。以下是地圖提供器:? CloudMadeMapProvider GoogleMapProvider – map provider for Google Maps;有很多種類型的地圖 OpenCycleMapProvider OpenStreetMapProvider WikiMapiaMapProvider YahooMapProvider any marker and polygon code you write for GMap.NET will work with any of the providers. Awesome!?4.添加圖標(biāo)?Adding markersmarkers添加到地圖上面的那個圖層里,稱為overlays,可以在一個overlay里添加任意多的markers,然后再把這個overlay添加到添加到地圖上。overlay可以根據(jù)需要隱藏或顯示。 以下代碼添加一個名為markers的overlay到地圖上,這個overlay里只有一個marker。 GMapOverlay markersOverlay?=?new?GMapOverlay("markers"); ?//new一個overlays對象GMarkerGoogle marker?=?new?GMarkerGoogle(new?PointLatLng(-25.966688,?32.580528), GMarkerGoogleType.green);markersOverlay.Markers.Add(marker);?gmap.Overlays.Add(markersOverlay); ????首先,創(chuàng)建一個overlay實例,new的時候名稱是可選參數(shù)。可以在其他地方通過名字引用這個overlay,也可以直接引用這個overlay實例本身。????然后,創(chuàng)建一個GMarkerGoogle實例,new這個實例的時候,需要2個參數(shù),第一個是位置(也即?PointLatLng?實例?),一個是marker類型。marker類型是一組圖標(biāo)圖片,這個在Google Map API里可以找到。也可以自己提供一個Bitmap實例作為marker圖片。GMarkerGoogle?marker?=?new?GMarkerGoogle(new?PointLatLng(-25.966688,?32.580528),?new?Bitmap("c:\\images\\mymarker.png");最后,把marker添加到overlay,再把overlay添加到map。這些marker可以和任何map provider兼容。5.添加區(qū)域?Adding polygons以下代碼創(chuàng)建一個overlay,并在其中添加一個四邊形GMapOverlay polyOverlay?=?new?GMapOverlay("polygons");?List<PointLatLng>?points?=?new?List<PointLatLng>();?points.Add(new?PointLatLng(-25.969562,32.585789));points.Add(new?PointLatLng(-25.966205,32.588171));?points.Add(new?PointLatLng(-25.968134,32.591647));?points.Add(new?PointLatLng(-25.971684,32.589759));?GMapPolygon polygon?=?new?GMapPolygon(points,?"mypolygon");polygon.Fill?=?new?SolidBrush(Color.FromArgb(50, Color.Red));polygon.Stroke?=?new?Pen(Color.Red,?1);?polyOverlay.Polygons.Add(polygon);?gmap.Overlays.Add(polyOverlay);首先創(chuàng)建一個新的overlay,然后,創(chuàng)建一個裝多邊形頂點的list,使用這個list創(chuàng)建一個GMapPolygon實例,然后用SolidBrush告訴這個polygon如何繪制自己,給筆畫選定pen的粗細(xì)顏色,最后,把polygon添加到overlay,再把overlay添加到map。結(jié)論:tip:如果marker不顯示,先查看下屬性面板里MarkersEnabled是否設(shè)置為true不聯(lián)網(wǎng)的話,也可以用離線地圖,添加如下代碼:GMap.NET.GMaps.Instance.Mode?=?GMap.NET.AccessMode.CacheOnly;代碼里要添加引用的命名空間:using GMap.NET;using GMap.NET.WindowsForms;using GMap.NET.WindowsForms.Markers;using GMap.NET.WindowsForms.ToolTips;參考:GMap.NET控件使用 |
總結(jié)
以上是生活随笔為你收集整理的GMap.NET控件使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信DAT文件解码 免费 无限制 微信d
- 下一篇: 手把手教你对接阿里云短信服务