我正在开发一个应用程序来显示滑雪假期的跑步和升降机。输入文件是Garmin Fenix 3保存的TCX数据文件。
我已经成功地将文件中的不同轨道段绘制为路线,但现在希望能够更正起点和终点。为此,我希望能够从地图中选择一条路线,然后点击我想用作起点或终点的点。
我可以选择路线并访问路线上的信息,但到目前为止,我还无法识别沿着路线点击鼠标的位置。
我尝试将点击鼠标e.location.X
和e.location.Y
的位置与路线中的LocalPoint
数据进行比较
if( e.location.X==route.LocalPoints.x && e.location.Y==route.LocalPoints.y)
{......}
但是没有找到相应的一点。
我还尝试使用e.X
和E.Y
代替.Location
点
有没有办法直接识别被点击的路线上的点或点击的最近点?
答案 0 :(得分: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(...);
}
确保在更改坐标后更新路线。您还需要确保您的标记已启用以供选择。