Bot releases are hidden (Show)
Release of Milestone: 2.5
NTS issues resolved:
Published by FObermaier about 3 years ago
Release of
Milestone: 2.4
GeometryFixer
class. To fix an invalid geometry call
var geom = NetTopologySuite.Geometries.Utilities.GeometryFixer.Fix(invalidGeom);
NetTopologySuite.dll
claims it is in sync with some JTS v18.2-SNAPSHOT.CoordinateList(int capacity)
constructor overload (#552)First
and Last
property to CoordinateSequence
(#555)CoordinateSequence.Copy
for known types (#516)NOTE:
Due to a small negligence NetTopologySuite.dll
claims it is in sync with some JTS v18.2-SNAPSHOT.
This is not true, it is in sync with JTS v1.18.2.
Published by FObermaier over 3 years ago
Milestone: 2.3
GeometryCollectionEnumerator
from IEnumerable implementation (#508)Published by airbreather over 3 years ago
Milestone: 2.2
Published by airbreather about 4 years ago
Polygon.ExteriorRing
, any element of Polygon.InteriorRings
, and the return value of Polygon.GetInteriorRingN
to LinearRing
instead.GeometryFactoryEx
, which allows callers to force polygon rings to be a certain orientation.NtsGeometryServices
in order to allow subclasses to alter the behavior of CreateGeometryFactory
.QuadEdge
as public instead of internal (they are public in JTS).CoordinateSequence
and Coordinate
methods that accept Ordinate
enum values now treat values greater than Measure16
the same way they treat all other "Ordinate
value is not present in this instance" situations. In the most literal sense, this is technically a behavior breaking change, but only for people who are both casting integer values >32 to Ordinate
enum values and actually using them with Coordinate
or CoordinateSequence
instances with at least 19 dimensions, at least 17 of which are measures.STRtree<T>.Remove
now has a possibility of working as expected when T is a value type, instead of never removing anything. It now uses the default equality comparer for the type. Reference types still use object reference equality, for backwards compatibility and performance reasons (it's OK to do this for value types, because Remove was essentially a really slow no-op for them anyway).Coordinate
subclass that we use for everything other than XY / XYZ / XYM / XYZM now handles "missing" ordinate values consistently with how other Coordinate types handle them.GeometryFactory
with a brand new one based on the SRID (JTS uses a separate field for this, so this is more faithful).GeometryFactory
have been marked virtual, for consistency with JTS.GeometryTransformer.Transform
was inappropriately transforming a LinearRing
into a plain LineString
, which is never better.Bintree
Interval is now computed correctly (JTS does not have a method for this; previously, it was the same as the width).Envelope.Diameter
to get the largest possible distance between any two points that both intersect the bounding box.VoronoiDiagramBuilder
clipping.Microsoft.DotNet.ApiCompat
to help us avoid accidentally making API breaking changes.IEntireCoordinateSequenceFilter
. Very similar to ICoordinateSequenceFilter
, but it is only called once per CoordinateSequence
, to enable some significant performance optimizations. We do not currently take advantage of this in NTS, but we're already looking at opportunities, and we're excited to see what you do with it!Published by airbreather about 5 years ago
This major release represents several efforts to improve usability and consistency throughout NTS, brought on by some changes in JTS 1.16.0 that we felt would not be best to port as-is.
As such, this release contains many breaking changes, some of which are very significant. Because the NuGet ecosystem heavily favors using SemVer for versioning, we felt that it's time to start deviating from using the JTS compatibility version numbering scheme that we have used in the past, and call this first release 2.0.0.
Some of the breaking changes:
Coordinate.Z
is no longer stored in a field on the base class. Full Z
support is added by subclasses.Ordinate
/ Ordinates
now define 16 spatial dimensions and 16 measure dimensions.ICoordinateSequence
(now just CoordinateSequence
) now uses integer ordinate indexes.WKTReader
will now give a geometry that appears to support holding Z values, even if no Z values are actually present.
IsOldNtsCoordinateSyntaxAllowed
to false
to prevent this, but keep in mind that this will break things like "POINT (1 2 3)"
that older versions of NTS supported.GeoAPI issues addressed in 2.0.0, in the order they were closed:
NTS issues addressed in 2.0.0, in the order they were closed:
Published by airbreather over 5 years ago
Issues resolved since v1.15.2:
UnaryUnionOp
used OverlayOp
instead of SnapIfNeededOverlayOp
(#326).snupkg
for the symbols like v2 will be doing, but .snupkg
has requirements that are incompatible with our v1.x builds, so I think debugging symbols were broken that whole time 🤦♂.Published by airbreather over 5 years ago
Issues resolved since v1.15.1:
Published by FObermaier about 6 years ago
Published by FObermaier over 6 years ago
NOTE:
NetTopologySuite.Common.props
has a wrong value for GeoAPIPackageReferenceVersion
.
It is set to 1.7.5-pre024
and needs to be 1.7.5
Published by FObermaier over 7 years ago