public void TestIssue87()
        {
            var wktReader = new WKTReader();
            var lines = new List<IGeometry>(_wkts.Length);
            lines.AddRange(_wkts.Select(wkt => wktReader.Read(wkt))/*.Where(g => g.Length > 0 )*/);
            var polygonizer = new NetTopologySuite.Operation.Polygonize.Polygonizer();
            polygonizer.Add(lines);

            IGeometry res;
            Assert.DoesNotThrow( () =>  res = polygonizer.GetGeometry());
        }
Example #2
0
        public void TestIssue87()
        {
            var wktReader = new WKTReader();
            var lines     = new List <Geometry>(_wkts.Length);

            lines.AddRange(_wkts.Select(wkt => wktReader.Read(wkt)) /*.Where(g => g.Length > 0 )*/);
            var polygonizer = new NetTopologySuite.Operation.Polygonize.Polygonizer();

            polygonizer.Add(lines);

            Geometry res;

            Assert.DoesNotThrow(() => res = polygonizer.GetGeometry());
        }
        //private ILineString GetOffsetCurve(ILineString lineString)
        //{
        //    return lineString.Factory.CreateLineString(
        //        _offsetCurveBuilder.GetOffsetCurve())
        //}

        private static Coordinate[] RemoveSelfIntersections(Coordinate[] offsetCurve, IGeometryFactory factory)
        {
            var ls = factory.CreateLineString(offsetCurve);

            if (ls.IsValid)
            {
                return(offsetCurve);
            }

            var polygonizer = new NetTopologySuite.Operation.Polygonize.Polygonizer();

            polygonizer.Add(ls);
            var dangles   = polygonizer.GetDangles();
            var sequencer = new NetTopologySuite.Operation.Linemerge.LineSequencer();

            sequencer.Add(dangles);
            System.Diagnostics.Debug.Assert(sequencer.IsSequenceable());
            return(sequencer.GetSequencedLineStrings().Coordinates);
        }