GMap多色线路线

GMap multicolor line route

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

它应该通过路线显示一些参数值的颜色代码(例如速度颜色代码:红色代表低速,绿色代表高速,"heatmap scale color" 代表所有在低和高之间)。

我尝试通过为每个点添加一个不同颜色的标记来做到这一点,但是当有很多点时,这个解决方案似乎不够有效。而且两个markers/points.

之间也没有线路连接

也许有一种方法可以覆盖渲染函数或其他方法?

你有什么建议?

目前,路线渲染方法使用相同的笔划绘制所有内容。你需要继承路由 class 并制作自己的绘图方法,例如:

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 具有更多的叠加功能,可能更适合您的应用程序。