• 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:imagesmymarker.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;

    发现自己的不足,善于利用找到的方法去扬长避短。行动起来。
  • 相关阅读:
    带有通配符的字符串匹配算法-C/C++
    二叉树的遍历(一)
    What is "dll"?
    MFC中的CRect(区域)
    枚举顶级窗口函数EnumWindows和它的回调函数的使用!
    一个鼠标指针有关的启发(存在问题,可以参考一下 呵呵)
    9针串口
    About “PostMessage” &"SendMessage"
    Pocket pc模拟器与PC机传输文件的方法
    overlapped I/O的学习笔记
  • 原文地址:https://www.cnblogs.com/rechen/p/5057300.html
Copyright © 2020-2023  润新知