public GeoCoordinateBox AddRoute(OsmSharpRoute route, Color? color, int width)
        {
            if (route != null)
            {
                Color route_color;
                if (color != null && color.HasValue)
                {
                    route_color = color.Value;
                }
                else
                {
                    route_color = this.RandomColor();
                }

                List<GeoCoordinate> coordinates = route.GetPoints();
                if (coordinates != null && coordinates.Count > 0)
                {
                    double distance_arrow = 300;

                    this.DoForRoute(coordinates, distance_arrow, route_color, width, 16, 18);
                    this.DoForRoute(coordinates, distance_arrow * 4, route_color, width - 1, 14, 16);

                    return this.DoForRoute(coordinates, distance_arrow * 8, route_color, width - 2, 0, 14);
                }
            }

            return null;
        }