2017-02-27 4 views
1

スキー休暇のランとリフトを表示するアプリケーションを開発しています。入力ファイルはGarmin Fenix 3によって保存されたTCXデータファイルです。GMAP上のポイントを特定する.net Cでマウスをクリックしたルート#

ファイルからさまざまなトラックセグメントをルートとして正常にプロットしましたが、開始点と終了点を修正できるようにしたいと考えています。これを行うには、マップからルートを選択し、開始点または停止点として使用したい点をクリックしたいと思っています。

私はルートを選択してルート上の情報にアクセスすることができますが、これまでのところ、マウスがクリックされたルート上の位置を特定することができませんでした。

Iマウスルート

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

内のデータとe.location.Xe.location.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で1秒に1回生成されるので、マーカーを作成するだけで少し再生する必要があるかもしれません。だから、午前中には、スキーでは1000以上のポイントがランです。 – Aquanaught

+0

このメモでは、やや似たようなことをしています。それを処理する最も簡単な方法は、独自のレイヤーに開始マーカーと停止マーカーを追加して、それ以外のものを別のレイヤーにすることです。私にとって素晴らしい作品です。 –

関連する問題