GMap.NET加载google地图简单demo
2016-06-07 11:20:05 访问(1992) 赞(0) 踩(0)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using GMap.NET.WindowsForms;
using GMap.NET.MapProviders;
using GMap.NET;
using GMap.NET.WindowsForms.Markers;
using GMapDemo.Classes.ThreadClasses;
using System.Threading;
namespace GMapDemo
{
public partial class MainForm : Form
{
GMapOverlay gMapOverlay = null;
public MainForm()
{
InitializeComponent();
toolStripComboBox1.Text = "110.458457966533/19.9400473726004";
try
{
System.Net.IPHostEntry e = System.Net.Dns.GetHostEntry("ditu.google.cn");
}
catch
{
mapControl1.Manager.Mode = GMap.NET.AccessMode.CacheOnly;
MessageBox.Show("No internet connection available,going to CacheOnly mode.","GMapDemo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
mapControl1.CacheLocation = Environment.CurrentDirectory + "\\GMapCache\\"; //缓存文件所在位置
mapControl1.MapProvider = GMapProviders.GoogleChinaSatelliteMap;
mapControl1.MinZoom = 10;
mapControl1.MaxZoom = 24;
mapControl1.Zoom = 14;
mapControl1.ShowCenter = true;
mapControl1.DragButton = System.Windows.Forms.MouseButtons.Left;
mapControl1.Position = new PointLatLng(19.939557,110.446125);
mapControl1.MouseClick += new MouseEventHandler(mapControl_MouseClick);
gMapOverlay = new GMapOverlay("mark"); //创建图层
mapControl1.Overlays.Add(gMapOverlay); //向控件中添加图层
}
void mapControl_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
PointLatLng point = mapControl1.FromLocalToLatLng(e.X,e.Y);
String show = String.Format("Lat={0:00.000000},Lng={1:000.000000}",point.Lat,point.Lng);
MessageBox.Show(show,"CurrentLocation",MessageBoxButtons.OK);
Clipboard.SetText(point.Lng.ToString() + "/" + point.Lat.ToString());
}
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
protected double GetXY(string str, bool isX)
{
int idx = str.IndexOf('/');
if (isX)
return double.Parse(str.Substring(0, idx));
else
return double.Parse(str.Substring(idx + 1));
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton1_Click(object sender, EventArgs e)
{
//创建图层(overlay)和标签(marker),将标签加入图层,再将图层加入控件中
try
{
double dX = 0;
double dY = 0;
dX = GetXY(toolStripComboBox1.Text, true);
dY = GetXY(toolStripComboBox1.Text, false);
GMapMarker gMapMarker
=
new GMarkerGoogle(new PointLatLng(dY,dX),
GMarkerGoogleType.green);//在(45.7,126.695)上绘制一绿色点
gMapOverlay.Markers.Add(gMapMarker); //向图层中添加标签
}
catch (Exception er)
{
MessageBox.Show(er.Message);
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton2_Click(object sender, EventArgs e)
{
Form1 f = new Form1();
f.Show();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton3_Click(object sender, EventArgs e)
{
SetAutoClosed(2000);
}
/// <summary>
/// 设置状态栏提示文字
/// </summary>
/// <param name="SleepTime"></param>
public void SetAutoClosed(int SleepTime)
{
if (SleepTime <= 0)
return;
DrawPointConfig config = new DrawPointConfig();
config.SleepTime = SleepTime;
try
{
BaseThreadClass bt = new BaseThreadClass();
bt.data = config;
bt.runName = new BaseThreadClass.ProcessRun(DoCloseThread);
Thread execThread = new Thread(new ThreadStart(bt.RunProcess));
execThread.IsBackground = true;
execThread.Start();
}
catch // (Exception err)
{
// ClientBAHelper.instance.ExcuteException(this, err);
}
}
/// <summary>
/// 执行关闭的线程
/// </summary>
/// <param name="objClass"></param>
private void DoCloseThread(object objClass)
{
try
{
DrawPointConfig config
=
objClass as DrawPointConfig;
if (config == null)
{
return;
}
for (int i = 0; i < 5; ++i)
{
ThreadCloseForm(i);
System.Threading.Thread.Sleep(config.SleepTime);
}
}
catch // (Exception err)
{
}
finally
{
}
}
/// <summary>
///
/// </summary>
delegate void ThreadCloseFormCallback(int idx);
/// <summary>
///
/// </summary>
protected void ThreadCloseForm(int idx)
{
if (this.InvokeRequired)
{
ThreadCloseFormCallback d = new ThreadCloseFormCallback(ThreadCloseForm);
this.Invoke(d, new object[] { idx });
return;
}
string str = null;
switch (idx)
{
case 0:
str = "110.463559627533/19.9369078001601";
break;
case 1: str = "110.461258292198/19.9369380576852";
break;
case 2: str = "110.466451048851/19.9364841942";
break;
case 3: str = "110.464337468147/19.9374978208542";
break;
case 4: str = "110.461966395378/19.9376995368253";
break;
}
double dX = 0;
double dY = 0;
dX = GetXY(str, true);
dY = GetXY(str, false);
GMapMarker gMapMarker
=
new GMarkerGoogle(new PointLatLng(dY, dX),
GMarkerGoogleType.green);//在(45.7,126.695)上绘制一绿色点
gMapOverlay.Markers.Add(gMapMarker); //向图层中添加标签
}
}
}
标签:
GMap.NET加载google地图简单demo 


上一条:
下一条:
相关评论
发表评论