2017-02-27 127 views
1

我开发一个应用程序来显示运行和缆车的滑雪度假。输入文件是由Garmin Fenix 3保存的TCX数据文件。确定在GMAP .NET路线点,这是鼠标单击在C#

我已成功绘制文件中不同的轨道段作为路线,但现在希望能够更正起点和终点。为此,我希望能够从地图中选择一条路线,然后单击我想用作起点或终点的点。

我可以选择的路径和访问路径上的信息,但到目前为止,我还没有能够识别沿着鼠标被点击的路径位置。

我已经试过这比较了鼠标被点击e.location.Xe.location.YLocalPoint数据路径

if(e.location.X==route.LocalPoints.x && e.location.Y==route.LocalPoints.y) 
{......} 

内但这并没有找到对应点的位置。

我也试图与e.XE.Y,而不是.Location

有没有办法直接识别被点击的路线或最近的点到点击点?

回答

0

你当然可以。

当你在你最有可能使用的东西,如添加你的航路点:

overlay.Markers.Add(point); 
gMapControl1.UpdateRouteLocalPosition(overlay); 

您添加的点作为标记直接访问。确保你添加事件

gMapControl1.OnMarkerClick += new MarkerClick(gMapControl1_OnMarkerClick); 

那么这个方法里面,你可以得到被点击的标记,改变位置,你需要:

void gMapControl1_OnMarkerClick(GMapMarker item, MouseEventArgs e) 
{ 
    item.Position = new PointLatLng(...); 
} 

只要确保你在更新路线改变坐标。您还需要确保您的标记已启用以供选择。

+0

谢谢你。我只是将这些要点作为路线加入。我可以看到一种方法来使它为每个点创建标记。当我需要它们时,我可能需要稍微创建一些标记,因为GPS每秒会生成一次点。所以在一个早晨的滑雪场上,有1000分以上的跑步。 – Aquanaught

+0

在这个笔记上,我做了一些有点类似的事情,处理它的最简单的方法是在他们自己的层中添加开始和停止标记,然后使其他层上的所有其他路线都成为一个路线。对我很好。 –