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