GMap.NET开发技巧(十)-地图功能
2012年12月21日
分类: GPS系统
本章主要描述实现鹰眼功能,并需要控件哪些事件及设置方法。
介绍如何根据开发应用GMap.NET地图控件,实现鹰眼功能和具体代码展示。
实现步骤及代码介绍:
鹰眼需要一个大地图和小地图,这样就需要两个gMapControl控件,在根据个人需要增加panel控件作为填充地图控件框。
需要控件为:
gMapControl1
gMapControl2
panel1
将gMapControl2添加到panel1并设置panel1边线样式BorderStyle=FixedSingle
gMapControl1 需要事件为:
OnPositionChanged
OnMapZoomChanged
MouseDown
MouseUp
gMapControl2 需要事件为:
OnPositionChanged
MouseDown
MouseMove
MouseUp
gMapControl1 事件设置代码:
private bool Mapleft1 = false;
private void gMapControl1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Mapleft1 = true;
}
}
private void gMapControl1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Mapleft1 = false;
}
}
private void gMapControl1_OnPositionChanged(PointLatLng point)
{
if (Mapleft1)
{
this.gMapControl2.Position = point; //设置小地图中心点
}
}
private void gMapControl1_OnMapZoomChanged()
{
double zoom = this.gMapControl1.Zoom - Convert.ToDouble(5);
this.gMapControl2.Zoom = zoom; //设置地图缩放大小
}
gMapControl2 事件设置代码:
private bool Mapleft2 = false;
private void gMapControl2_MouseMove(object sender, MouseEventArgs e)
{
lastPosition1 = this.gMapControl1.FromLocalToLatLng(e.X, e.Y);
}
private void gMapControl2_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button==MouseButtons.Left)
{
Mapleft2 = false;
}
}
private void gMapControl2_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.gMapControl1.Position = lastPosition1; //鼠标单击设置gMapControl1.中心点
Mapleft2 = true;
}
}
private void gMapControl2_OnPositionChanged(PointLatLng point)
{
if (Mapleft2)
{
this.gMapControl1.Position = point; //设置gMapControl1中心点
}
}
上述是根据本人项目实现介绍并利用事件来实现鹰眼功能,设置开始地图中心点和加载地图类型没有介绍。

(18911)

楼主你好,我们需要在GMap.NET上进行一些开发。
不知您是否有时间和意愿进行一些技术合作。
有意请邮件联系!
可以。
. . . .
ptjvw8ray