當前,路由呈現方法使用相同筆畫繪製所有內容。您將需要繼承Route類,使自己的畫法,是這樣的:
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具有覆蓋層功能更多,可能更適合您的應用程序。
謝謝:)我做了簡單的測試,它是非常好的解決方案。儘管我必須在代碼中對WindowsFormsHost中的GMap的WinForms版本進行許多更改,但它似乎是我能做的最好的選擇。 – hooboe
不客氣。您是否發現使用WPF或WinForms之間的主要性能差異?我還沒有機會研究這個。 –
我試圖找到文件,但我還沒有找到任何比較。 – hooboe