public SharpMap.Geometries.MultiLineString SplitLineString( SharpMap.Geometries.LineString lineString, System.Double length) { if (lineString == null || lineString.IsEmpty()) throw new System.ArgumentException("Linestring is null or Empty", "lineString"); var gf = new NetTopologySuite.Geometries.GeometryFactory(); var ntsLine = (NetTopologySuite.Geometries.LineString) SharpMap.Converters.NTS.GeometryConverter.ToNTSGeometry(lineString, gf); var ret = new SharpMap.Geometries.MultiLineString(); var lil = new NetTopologySuite.LinearReferencing.LengthIndexedLine(ntsLine); double currentLength = 0d; while (currentLength < ntsLine.Length) { var tmpLine = (NetTopologySuite.Geometries.LineString) lil.ExtractLine(currentLength, currentLength + length); ret.LineStrings.Add((SharpMap.Geometries.LineString) SharpMap.Converters.NTS.GeometryConverter.ToSharpMapGeometry(tmpLine)); currentLength += length; } return ret; }