1. 程式人生 > >VS2017環境下GMap的學習及開發(二)

VS2017環境下GMap的學習及開發(二)

在GMapcontrol控制元件中顯示地圖

接著上一篇,在名稱空間加入:

using GMap.NET.MapProviders;

在public Form1() 函式中加入

public Form1()
        {
            InitializeComponent();
            ///gMapControl1  為GMapcontrol控制元件的變數
            this.gMapControl1.CacheLocation = System.Windows.Forms.Application.StartupPath;//指定地圖快取存放路徑
            this.gMapControl1.MapProvider = GMapProviders.GoogleChinaHybridMap;//指定地圖型別
            this.gMapControl1.Manager.Mode = AccessMode.ServerAndCache;//地圖載入模式
            this.gMapControl1.MinZoom = 1;   //最小比例
            this.gMapControl1.MaxZoom = 23; //最大比例
            this.gMapControl1.Zoom = 12; //當前比例
            this.gMapControl1.ShowCenter = false; //不顯示中心十字點
            this.gMapControl1.DragButton = System.Windows.Forms.MouseButtons.Left;//左鍵拖拽地圖
            this.gMapControl1.Position = new PointLatLng(39.92, 116.4);
            
        }

執行結果:
在這裡插入圖片描述

在地圖上標記Marker

這裡我們要用到marker,所以首先要加入相應的名稱空間:

using GMap.NET.WindowsForms.Markers;

然後定義一個覆蓋物層變數:

public GMapOverlay overlay = new GMapOverlay("Marker");

在public Form1()中加入如下程式碼:

this.gMapControl1.Overlays.Add(overlay);//將圖層加入到地圖中
this.gMapControl1.MouseDown += new MouseEventHandler(gMapControl1_MouseClick);//為地圖新增滑鼠點選事件

這裡裡面的 “gMapControl1_MouseClick”為自定義的滑鼠的響應函式,所以我們要加入此函式:

 private void gMapControl1_MouseClick(object sender, MouseEventArgs e)
        {
            PointLatLng p = this.gMapControl1.FromLocalToLatLng(e.X, e.Y);
            GMarkerGoogle marker = new GMarkerGoogle(p, GMarkerGoogleType.arrow);
            marker.ToolTipText = "建立的點";
            this.overlay.Markers.Add(marker);//將點新增到圖層
        }

然後執行就可以在地圖上打出點來了。