GMap多色线路

时间:2017-02-28 13:29:02

标签: c# gmap.net

如何在GMap WPF(或WinForms端口到WPF应用程序)中创建多色线路路径?

它应该通过路线显示一些参数值的颜色代码(例如速度的颜色代码:低速为红色,高速为绿色,低速和高速之间为“热图刻度颜色”)。

我试图通过添加一个每点不同颜色的标记来做到这一点,但是当有很多点时,这个解决方案似乎效率不高。并且两个标记/点之间也没有线连接。

也许有办法覆盖渲染功能或其他什么?

你有什么建议?

1 个答案:

答案 0 :(得分:0)

目前,路线渲染方法使用相同的笔划绘制所有内容。您将需要继承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具有更多的覆盖功能,可能更适合您的应用程序。