Changelog History
Page 1
-
v2.1.0 Changes
August 04, 2020- โก๏ธ Updated JTS compatibility to 1.17.0.
- See JTS' own release notes for details of what's included in this; those will not be reproduced here.
- 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 ofPolygon.InteriorRings
, and the return value ofPolygon.GetInteriorRingN
toLinearRing
instead.
- ๐ Improve xmldoc.
- ๐ Fix some packaging issues.
- โ Add
GeometryFactoryEx
, which allows callers to force polygon rings to be a certain orientation. - Unseal
NtsGeometryServices
in order to allow subclasses to alter the behavior ofCreateGeometryFactory
. - Mark a few useful members on
QuadEdge
as public instead of internal (they are public in JTS). - GML readers read Z values now.
CoordinateSequence
andCoordinate
methods that acceptOrdinate
enum values now treat values greater thanMeasure16
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 toOrdinate
enum values and actually using them withCoordinate
orCoordinateSequence
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). - The internal
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. - Copying a Geometry no longer clobbers its
GeometryFactory
with a brand new one based on the SRID (JTS uses a separate field for this, so this is more faithful). - More methods on
GeometryFactory
have been marked virtual, for consistency with JTS. - ๐ Fix an incorrect port:
GeometryTransformer.Transform
was inappropriately transforming aLinearRing
into a plainLineString
, which is never better. - The center of a
Bintree
Interval is now computed correctly (JTS does not have a method for this; previously, it was the same as the width). - โ Add
Envelope.Diameter
to get the largest possible distance between any two points that both intersect the bounding box. - ๐ Fix an issue with
VoronoiDiagramBuilder
clipping. - Start using
Microsoft.DotNet.ApiCompat
to help us avoid accidentally making API breaking changes. - ๐ In the same spirit of the improvements to WKT number formatting that came with JTS 1.17.0, also work around a very old bug in .NET Framework / earlier versions of .NET Core before 3.0. For details of the bug and its fix in .NET Core 3.0, see: https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/
- โ Add
IEntireCoordinateSequenceFilter
. Very similar toICoordinateSequenceFilter
, but it is only called once perCoordinateSequence
, 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!
- โก๏ธ Updated JTS compatibility to 1.17.0.
-
v2.0.0 Changes
August 26, 2019๐ 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:
๐ฆ 1. NetTopologySuite is, again, the primary NTS package.
- GeoAPI has been gutted. The relevant useful parts are now inside of NTS.
- Many interfaces have been removed, in favor of just using their corresponding classes.
๐ 4.
Coordinate.Z
is no longer stored in a field on the base class. FullZ
support is added by subclasses. Ordinate
/Ordinates
now define 16 spatial dimensions and 16 measure dimensions.ICoordinateSequence
(now justCoordinateSequence
) now uses integer ordinate indexes. 0๏ธโฃ 7. By default, reading WKT without "Z", "M", or "ZM" tags usingWKTWriter
will now give a geometry that appears to support holding Z values, even if no Z values are actually present.- Set
IsOldNtsCoordinateSyntaxAllowed
tofalse
to prevent this, but keep in mind that this will break things like"POINT (1 2 3)"
that older versions of NTS supported.
- Set
GeoAPI issues addressed in 2.0.0, in the order they were closed:
๐ 1. NetTopologySuite/GeoAPI#54: Remove obsolete interfaces, classes and members
- NetTopologySuite/GeoAPI#55: Future of Coordinate class ๐ 3. NetTopologySuite/GeoAPI#59: Remove ICloneable implementations across the board
- NetTopologySuite/GeoAPI#64: Target just .NET Standard 2.0 ๐ 5. NetTopologySuite/GeoAPI#65: Remove reflection-based GeometryServiceProvider.Instance bootstrap
- NetTopologySuite/GeoAPI#68: Replace notable interfaces with abstract classes, for multiple reasons ๐ 7. NetTopologySuite/GeoAPI#70: Remove (standalone) GeoAPI
NTS issues addressed in 2.0.0, in the order they were closed:
โก๏ธ 1. #265: Update to JTS 1.16.0
- #292: Target just .NET Standard 2.0 โก๏ธ 3. #294: Update to JTS 1.16.1 ๐ป 4. #282: Exception while fetching Interior Point - NetTopologySuite.Geometries.TopologyException ๐ 5. #291: Remove obsolete types and members
- #316: Mark a few more things obsolete ๐ป 7. #289: DistanceComputer.PointToSegmentString skips the last vertex of an ICoordinateSequence ๐ 8. #308: Remove IGeometry warts ๐ฆ 9. #315: Tweak NuGet packages again
- #244: Consider replacing AssemblyInfo.cs and *.nuspec with additional things in *.csproj
- #309: Make IsWithinDistance an extension method
- #311: Fix the design of Ordinate values to be consistent and behave predictably
- #246: Aggregate operations ๐ 14. #324: Support MSSQL-compatible WKT writing
- #156: WKTWriter doesn't create the expected result
-
v1.15.3 Changes
June 29, 2019Issues resolved since v1.15.2:
UnaryUnionOp
usedOverlayOp
instead ofSnapIfNeededOverlayOp
(#326) ๐ 2. v1.15.2 tried to use.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 ๐คฆโโ.
-
v1.15.2 Changes
February 28, 2019 -
v1.15.1
September 05, 2018 -
v1.15 Changes
July 13, 2018NOTE:
๐ฆNetTopologySuite.Common.props
has a wrong value forGeoAPIPackageReferenceVersion
.
It is set to1.7.5-pre024
and needs to be1.7.5
-
v1.15-pre2
March 02, 2017 -
v1.14
January 31, 2017 -
v1.13.3
August 13, 2014 -
v1.13.2
February 14, 2014