GMAP.NET教程 – MAPS地图,MARKERS标记 , POLYGONS多边形
转载自英文例子:http://www.independent-software.com/gmap-net-tutorial-maps-markers-and-polygons/
1,先创建c#winform工程。
2,添加引用: GMap.NET.Core.dll 和 GMap.NET.WindowsForms.dll.
3,制作用户控件并添加到主窗体上。
4,控件属性:
CanDragMap:为true时,用户可以用右键拖拽地图。
MarkersEnabled:为true时,可以显示你定义的任何标记。
PolygonsEnabled;为true时,可以显示你定义的图形。
ShowTileGridLines:为true时,GMap.NET 会显示网格线,只在调试的时候用就可以。
Zoom, MinZoom, MaxZoom: Google Maps的变焦水平在0-18之间,0是变焦到全局,18是变焦到街道。
5,初始化地图
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");
}
gmap.Position = new PointLatLng(-25.971684,32.589759);
6,地图提供者
不仅支持google,还支持大量的其他的提供者,GMap.NET将他们都进行了封装。
CloudMadeMapProvider
GoogleMapProvider – map provider for Google Maps; there are street, satellite and hybrid variants
OpenCycleMapProvider
OpenStreetMapProvider
WikiMapiaMapProvider
YahooMapProvider
google地图启动的时候较慢,Bing Map provider却很快,但是提供的内容不同,开发者根据个人偏好来使用吧。
地图上的markers and polygons 是可以用于任何一种地图提供者的。
7,增加标记:
将markers添加到地图上的图层上。
GMapOverlay markersOverlay = new GMapOverlay("markers");//创建新的图层markersOverlay
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528),//定点创建新的标记marker
GMarkerGoogleType.green);
markersOverlay.Markers.Add(marker);//新的图层markersOverlay 上增加marker这个标记
gmap.Overlays.Add(markersOverlay);//地图上增加markersOverlay 这个图层
you can supply an instance of Bitmap with your own image
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528),
new Bitmap("c:\images\mymarker.png");
8,增加多边形,The following code shows how to create another overlay, and add a four-point polygon to it.
GMapOverlay polyOverlay = new GMapOverlay("polygons");//新建图层polyOverlay
IList<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");//以points 列表的四个点来新建多边形mypolygon
polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red));//填充
polygon.Stroke = new Pen(Color.Red, 1);// a thin red Pen for the stroke
polyOverlay.Polygons.Add(polygon);//图层上增加 多边形标记
gmap.Overlays.Add(polyOverlay);//增加图层
结论:从这个实例开始可以自己写程序,提示:
1,可以使用不同的地图提供方。
2,增加标记或多边形时候要在地图上加上图层。
3,MarkersEnabled 属性可以使得markers 显示。
4,GMap.NET需要联网才能确保功能正常。如果没有可以连接的网络,也可以使用缓存信息来展示地图。
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.CacheOnly;
mapControl.Manager.Mode = AccessMode.CacheOnly;