private IEnumerable <Path2D> convertToPaths(IEnumerable <IPolygon> polygons)
        {
            Path2D gp = new Path2D();

            foreach (IPolygon polygon in polygons)
            {
                if (polygon.IsEmpty)
                {
                    continue;
                }

                // Add the exterior polygon
                gp.NewFigure(convertCoordinates(polygon.ExteriorRing.Coordinates), true);

                // Add the interior polygons (holes)
                foreach (ILinearRing ring in polygon.InteriorRings)
                {
                    gp.NewFigure(convertCoordinates(ring.Coordinates), true);
                }
            }

            yield return(gp);
        }
        // TODO: these next two methods would benefit from handling TCoordinates
        private IEnumerable <Path2D> convertToPaths(IEnumerable <ILineString> lines)
        {
            Path2D gp = new Path2D();

            foreach (ILineString line in lines)
            {
                if (line.IsEmpty || line.PointCount <= 1)
                {
                    continue;
                }

                gp.NewFigure(convertCoordinates(line.Coordinates), false);
            }

            yield return(gp);
        }