zoukankan      html  css  js  c++  java
  • WinForm中使用GMap.Net

    在WinForm项目中使用GMap:

    1、新建一个Visual C# 的Windows窗口程序。添加对GMap.Net.Core.DLL和GMap.Net.WindowsForms.DLL的引用。

    2、在项目中添加一个UserControl,这里取名为MapControl,修改这个UserControl,使其继承于GMapControl,这就是展示地图的控件。修改如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using GMap.NET.WindowsForms;
    
    namespace GMapWinFormDemo
    {
        public partial class MapControl : GMapControl
        {
            public MapControl()
            {
                InitializeComponent();
            }
        }
    }

    3、编译项目,在我们的Form设计窗口下,在工具箱中(tool box)里就可以看到这个MapControl,将这个MapControl加到Form中。

    4、在主Form中添加相关的代码如下

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using GMap.NET;
    using GMap.NET.WindowsForms;
    using GMap.NET.MapProviders;
    using GMap.NET.WindowsForms.Markers;
    
    namespace GMapDemo
    {
        public partial class MapForm : Form
        {
            private GMapOverlay markersOverlay = new GMapOverlay("markers"); //放置marker的图层
    
            public MapForm()
            {
                InitializeComponent();
    
                try
                {
                    System.Net.IPHostEntry e = System.Net.Dns.GetHostEntry("ditu.google.cn");
                }
                catch
                {
                    mapControl.Manager.Mode = AccessMode.CacheOnly;
                    MessageBox.Show("No internet connection avaible, going to CacheOnly mode.", "GMap.NET Demo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
    
                mapControl.CacheLocation = Environment.CurrentDirectory + "\GMapCache\"; //缓存位置
                mapControl.MapProvider = GMapProviders.GoogleChinaMap; //google china 地图
                mapControl.MinZoom = 2;  //最小比例
                mapControl.MaxZoom = 24; //最大比例
                mapControl.Zoom = 10;     //当前比例
                mapControl.ShowCenter = false; //不显示中心十字点
                mapControl.DragButton = System.Windows.Forms.MouseButtons.Left; //左键拖拽地图
                mapControl.Position = new PointLatLng(32.064,118.704); //地图中心位置:南京
    
                mapControl.Overlays.Add(markersOverlay);
                
                mapControl.MouseClick += new MouseEventHandler(mapControl_MouseClick);
            }
            
            void mapControl_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Right)
                {
                    PointLatLng point = mapControl.FromLocalToLatLng(e.X, e.Y);
                    GMapMarker marker = new GMarkerGoogle(point, GMarkerGoogleType.green);
                    markersOverlay.Markers.Add(marker);
                }
            }
        }

    5、编译、运行项目就可以看到地图,这里使用的是在线的Google中国的地图,地图控件的几个主要属性:

    MapProvider:地图服务的提供者。

    MinZoom:最小缩放,最小可为1。

    MaxZoom:最大缩放,最大为24.

    Zoom:当前缩放。

    ShowCenter:是否显示中心点(最好为false,否则地图中间会有一个红色的十字)。

    DragButton:哪个键拖动地图。

    Position:地图中心点位置。

    地图显示如下,支持左键拖动,放大缩小,可以显示左键的点击经纬度。

    引自:http://www.cnblogs.com/luxiaoxun/p/3463250.html

  • 相关阅读:
    iOS开发UI篇—Quartz2D使用(信纸条纹)
    iOS开发UI篇—Quartz2D简单使用(三)
    iOS开发UI篇—Quartz2D使用(图片剪切)
    a超链接之返回顶部的两种实现方法
    学习windows编程 day2 之滚动条使用
    首页轮播图
    商城动态菜单
    放大镜二:大图的移动
    放大镜一:图片上部添加可移动遮盖层
    php循环删除文件夹和目录
  • 原文地址:https://www.cnblogs.com/xinzheng/p/5416068.html
Copyright © 2011-2022 走看看