public ICoordinateSequence ToSequence(SpatialLite.Core.API.ICoordinateList list)
        {
            var c    = list[0];
            var kind = Ordinates.XY | (c.Is3D ? Ordinates.Z : Ordinates.None) |
                       (c.IsMeasured ? Ordinates.M : Ordinates.None);

            return(ToSequence(list, kind));
        }
        private ICoordinateSequence ToSequence(SpatialLite.Core.API.ICoordinateList list, Ordinates kind)
        {
            var res = _factory.Create(list.Count, kind);

            kind = res.Ordinates;

            for (var i = 0; i < list.Count; i++)
            {
                var c = list[i];
                res.SetOrdinate(i, Ordinate.X, c.X);
                res.SetOrdinate(i, Ordinate.Y, c.Y);
                if ((kind & Ordinates.Z) == Ordinates.Z)
                {
                    res.SetOrdinate(i, Ordinate.Z, c.Z);
                }
                if ((kind & Ordinates.M) == Ordinates.M)
                {
                    res.SetOrdinate(i, Ordinate.M, c.M);
                }
            }
            return(res);
        }