Пример #1
0
        /// <summary>
        /// This simplifies a line by getting the radial distance tolerance and angle distance tolerance
        /// </summary>
        /// <param name="geometry">The geometry to simplify</param>
        /// <param name="distanceTolerance">The radial distance tolerance</param>
        /// <param name="angleTolerace">The angle tolerance in degrees</param>
        /// <returns>A simlified <see cref="LineString"/></returns>
        public static LineString Simplify(IGeometry geometry, double distanceTolerance, double angleTolerace)
        {
            var simplifier = new RadialDistanceByAngleSimplifier(geometry)
            {
                DistanceTolerance = distanceTolerance,
                AngleTolerance    = angleTolerace
            };

            return(simplifier.GetResultGeometry());
        }
Пример #2
0
        private List <LineString> SimplifyLines(IEnumerable <LineString> lineStings)
        {
            var lines = new List <LineString>();

            foreach (var lineSting in lineStings)
            {
                var simpleLine = DouglasPeuckerSimplifier.Simplify(lineSting, _options.SimplificationDistanceTolerance) as LineString;
                if (simpleLine == null)
                {
                    continue;
                }
                simpleLine = RadialDistanceByAngleSimplifier.Simplify(simpleLine, _options.MinimalMissingSelfLoopPartLegth, _options.RadialSimplificationAngle);
                if (simpleLine == null)
                {
                    continue;
                }
                lines.Add(simpleLine);
            }
            return(lines);
        }