作者: huang137
查看: 1921|回复: 2
打印 上一主题 下一主题

[求助] 对GMap.Net求助

[复制链接]
跳转到指定楼层
楼主
查看: 1921|回复: 2
本帖最后由 huang137 于 2016-2-4 21:28 编辑

      说句实话,本人喜欢编程,但不喜欢C#因为没英语基础,学起来很费力。所以一直用易语言进行编程,但是最近喜欢上地图的运用,想弄好地图,所以开始学习C#。把地图弄出来在说,根据在网上找的GMap.Net资料,但是地图怎么也显示不出来。现把资料和我自己项目都贴出来,希望能找到能相互学习的人互相交流,由于我是一个业余爱好者,所以在提问题的时候可能不会很专业,敬请谅解。最后对支持我学习的朋友我会给予一定奖励,谢谢大家。
  
这是我自己按下面的资料编写的,用的VS2010,由于压缩后还有4M多,无法直接放到论坛,只好放到了云盘上,下面是云盘的链接。
http://pan.baidu.com/s/1nuvlpjV


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);
            }
        }
    }
编辑运行后显示如下图:





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播
回复 论坛版权

使用道具 举报

沙发
乔克斯 发表于 2016-2-5 13:58:03 | 只看该作者
@Blue_Pen 呼叫~
板凳
Blue_Pen 发表于 2016-2-6 21:19:09 | 只看该作者
【百度地图】BinGoo软件系列之--Winform百度地图
http://bbs.cskin.net/forum.php?m ... 200&fromuid=101
这是基本的地图操作,网络地图是不可以离线的。有一个离线版的,但是只能看地图,不能对地图进行操作。
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-11-22 18:49, Processed in 0.549254 second(s), 33 queries , Gzip On.

快速回复 返回顶部 返回列表