2017-02-27 31 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

在這個筆記上,我做了一些有點類似的事情,處理它的最簡單的方法是在他們自己的層中添加開始和停止標記,然後使其他層上的所有其他路線都成爲一個路線。對我很好。 –