NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #251 most downloaded on NuGet
The NTS Topology Suite is an API for modelling and manipulating 2-dimensional linear geometry. It provides numerous geometric predicates and functions. NTS conforms to the Simple Features Specification.
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 months to 2.7 years
Some releases are documented
notes for 10 of 22 stable releases
61 versions withdrawn
withdrawn after publishing
127 years old
86 releases · first in 1900
This includes everything added to JTS 1.20.0. For details, see the JTS release documentation for this version: https://github.com/locationtech/jts/rel
Release of Milestone: 2.6
This includes everything added to JTS 1.20.0. For details, see the JTS release documentation for this version: https://github.com/locationtech/jts/releases/tag/1.20.0
Other changes include:
NetTopologySuite.Geometries.Utilities.Extracter, which includes our own strongly-typed spin on the other extracters found in this namespace.srsDimension when reading GML.NetTopologySuite.Geometries.GeometryCollection now implements System.Collections.Generic.IReadOnlyList<Geometry>.System.Memory package reference.NetTopologySuite.Index.Strtree indexes.System.Memory package reference to 4.6.0 so that .NET Standard 2.0 consumers debugging into this will see a link to the currently maintained version of this "slow span" package.One column per quarter.
Updated JTS compatibility to 1.19.0
Release of Milestone: 2.5
NTS issues resolved:
Updated JTS compatibility to 1.18.2. NOTES:
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.
Updated JTS compatibility to 1.18.1.
Milestone: 2.3
GeometryCollectionEnumerator from IEnumerable implementation (#508)Updated JTS compatibility to 1.18.0. Try out the new OverlayNG code!
Milestone: 2.2
Note that the API breaking change included in JTS 1.17.0 was not ported to this release. You may safely cast Polygon.ExteriorRing , any element of Pol…
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!As such, this release contains many breaking changes, some of which are very significant. Because the NuGet ecosystem heavily favors using SemVer for…
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:
Nothing published for this version
UnaryUnionOp used OverlayOp instead of SnapIfNeededOverlayOp
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 🤦♂.Buffer(0) throws exception with a particular valid geometry
Merge pull request #257 from NetTopologySuite/develop
Merge pull request #257 from NetTopologySuite/develop
Release v1.15.1
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →