识别在 C# 中单击鼠标的 GMAP .net 路由上的点
Identifying the point on a GMAP .net Route that was mouse clicked in C#
我正在开发一个应用程序来显示滑雪假期的跑步和升降机。输入文件是Garmin Fenix 3保存的TCX数据文件。
我已经成功地将文件中的不同轨道段绘制为路线,但现在希望能够更正起点和终点。为此,我希望能够 select 从地图中选择一条路线,然后单击我想用作起点或终点的点。
我可以 select 路线并访问路线上的信息,但到目前为止我还无法确定鼠标点击的路线位置。
我已经尝试将单击鼠标的位置 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
点
有没有办法直接识别被点击的路线上的点或离点击最近的点?
你当然可以。
当您添加路线点时,您很可能会使用类似的东西:
overlay.Markers.Add(point);
gMapControl1.UpdateRouteLocalPosition(overlay);
您添加的点可以作为标记直接访问。确保添加事件
gMapControl1.OnMarkerClick += new MarkerClick(gMapControl1_OnMarkerClick);
然后在此方法中,您可以获得被单击的标记并根据需要更改位置:
void gMapControl1_OnMarkerClick(GMapMarker item, MouseEventArgs e)
{
item.Position = new PointLatLng(...);
}
只需确保在更改坐标后更新路线即可。您还需要确保您的标记已启用以供选择。
我正在开发一个应用程序来显示滑雪假期的跑步和升降机。输入文件是Garmin Fenix 3保存的TCX数据文件。
我已经成功地将文件中的不同轨道段绘制为路线,但现在希望能够更正起点和终点。为此,我希望能够 select 从地图中选择一条路线,然后单击我想用作起点或终点的点。
我可以 select 路线并访问路线上的信息,但到目前为止我还无法确定鼠标点击的路线位置。
我已经尝试将单击鼠标的位置 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
点
有没有办法直接识别被点击的路线上的点或离点击最近的点?
你当然可以。
当您添加路线点时,您很可能会使用类似的东西:
overlay.Markers.Add(point);
gMapControl1.UpdateRouteLocalPosition(overlay);
您添加的点可以作为标记直接访问。确保添加事件
gMapControl1.OnMarkerClick += new MarkerClick(gMapControl1_OnMarkerClick);
然后在此方法中,您可以获得被单击的标记并根据需要更改位置:
void gMapControl1_OnMarkerClick(GMapMarker item, MouseEventArgs e)
{
item.Position = new PointLatLng(...);
}
只需确保在更改坐标后更新路线即可。您还需要确保您的标记已启用以供选择。