2017-02-28 8 views
1

GMap WPF(またはWinFormsポートからWPFアプリケーション)でマルチカラーラインルートを作成するにはどうすればよいですか?GMap多色ラインルート

ルートを通るいくつかのパラメータ値(例えば、速度のカラーコード:低速では赤、高速では緑、高速と低速では「ヒートマップスケール」)のカラーコードを表示する必要があります。

ポイントごとに異なる色で1つのマーカーを追加することでこれを実行しようとしましたが、この解決策ではポイントが多いほど効率が悪いようです。また、2つのマーカ/ポイントの間にライン接続はありません。

レンダリング機能などをオーバーライドする方法がありますか?

あなたの提案は何ですか?

答えて

0

現在、ルートレンダリングメソッドはすべて同じストロークを使用して描画します。あなたのような何か、ルートクラスを継承し、独自の描画方法を行う必要があります。もちろん

public class GMapRouteColored : GMap.NET.WindowsForms.GMapRoute 
{ 
    public GMapRouteColored(IEnumerable<PointLatLng> points, string name) 
     : base(points, name) 
    { 

    } 

    public override void OnRender(Graphics g) 
    { 
     for(int i = 0; i < LocalPoints.Count - 1; i++) 
     { 
      g.DrawLine(yourPenForThisLine, LocalPoints[i].X, LocalPoints[i].Y, LocalPoints[i+1].X, LocalPoints[i+1].Y); 
     } 

    } 
} 

あなたはおそらくもいくつかの点値に応じて、使用するペンを決定する方法が必要です。私が扱うことができる唯一の簡単な方法は、あなたが持っているポイントの数に等しい整数のリストを追加し、各ローカルポイントインデックスにどのペンを使うべきかを決定するためにこのリストを使用することです。私はこれが役立つことを願っています

編集:私はあなたがWPF用のソリューションを探していることに気付きました。私が投稿したソリューションは、WinFormsでしか動作しませんが、コントロールを使った私の経験に基づいて、WinFormsはオーバーレイでさらに多くの機能を持ち、アプリケーションに適しています。

+0

ありがとう:)私は簡単なテストを行い、それは非常に良い解決策です。私はWindowsFormsHostでWinForms版のGMapを使用するために自分のコードに多くの変更を加えなければならないが、これは私ができることの中で最高のようだ。 – hooboe

+0

ようこそ。 WPFまたはWinFormsを使用した場合のパフォーマンスの違いがわかりましたか?私はこれをまだ研究する機会がありませんでした。 –

+0

私はドキュメントで見つけようとしましたが、私は何の比較も見つかりませんでした。 – hooboe