Fix my email address
[geos.git] / NEWS
blob27ddc572aa6b7d74fbea6ba4dc5c8ce6dd77d0ce
1 Changes in 3.6.0
2 2015-MM-DD
4 - Important / Breaking Changes:
5   - The PHP binding moved to its own repository:
6     http://git.osgeo.org/gogs/geos/php-geos (#765)
7 - New things:
8   - CAPI: GEOSGeom_setPrecision (#713) - PHP: Geometry->setPrecision
9   - CAPI: GEOSGeom_getPrecision
10   - CAPI: GEOSMinimumRotatedRectangle and GEOSMinimumWidth
11     (#729, Nyall Dawson)
12   - CAPI: GEOSSTRtree_nearest (#768, Dan Baston)
13   - CAPI: GEOSMinimumClearance and GEOSMinimumClearanceLine
14     (#776, Dan Baston)
15 - Improvements:
16   - ...
17 - C++ API changes:
18   - Automatic memory management for GeometryFactory objects
21 Changes in 3.5.0
22 2015-08-16
24 - New things:
25   - Voronoi API (#627)
26   - PHP: Geometry->normalize method
27   - GEOS_USE_ONLY_R_API macro support (#695)
28   - PHP: WKBReader->read() & WKBWriter::write() methods (Benjamin Morel)
29   - GEOSClipByRect (#699, Mika Heiskanen, Sandro Santilli)
30   - CAPI: thread-safe message handling API (#663, Pepijn Van Eeckhoudt)
31 - Improvements:
32   - Speed-up intersection and difference between geometries
33     with small bounding box overlap.
34   - CAPI: add MULTILINESTRING support for GEOSisClosed (Benjamin Morel)
35 - C++ API changes:
36   - Added no-parameter CoordinateSequenceFactory::create method (Sandro Mani)
38 Changes in 3.4.2
39 2013-08-25
41 - Bug fixes / improvements
42   - Use a double for PrecisionModel scale, avoiding overflows
43     should fix 32-bit regression failures (#652)
44   - isnan workaround OS detection missing NetBSD, DragonFly, Sun nuance (#650)
45   - Do not distribute platform.h and version.h, but install both (#601)
46   - Non-standard ChangeLog file in 3.4.0 and 3.4.1 releases (#654)
47   - new travis bot (#657)
48   - accept multiple Nan representations (#656)
51 Changes in 3.4.1
52 2013-08-17
54 - Bug fixes / improvements
55   - Assertion failure snapping line to points of rectangle
56     smaller than tolerance (#649)
57   - Can't build using cmake with tar ball (#644)
59 Changes in 3.4.0
60 2013-08-11
62 - New things:
63   - Delaunay Triangulation API (#487, #565, #570, #567)
64   - Interruptibility API (C and C++)
65   - CAPI: GEOSNode (#496) - PHP: Geometry->node
66   - GeometryPrecisionReducer class (#496, #526)
67   - BufferInputLineSimplifier header exposed (#548)
68   - New Centroid class supporting mixed geometry components (#612)
69   - io::Writer::reserve() method
70   - CAPI: GEOSNearestPoints
71   - Add --cclibs, --static-clibs and --static-cclibs to geos-config (#497)
72   - Early bail out of overlay exception if input is invalid
74 - C++ API changes:
75   - New noding::GeometryNoder class
76   - Added BufferOp::setSingleSided
77   - Signature of most functions taking a Label changed to take it
78     by reference rather than pointer.
79   - Signature of most functions taking an IntersectionMatrix changed
80     to take it by reference rather than pointer.
81   - GraphComponent::label is now a Label value (from a pointer)
82   - NodedSegmentString takes ownership of CoordinateSenuence now
83   - io::Writer's toString() returns by const ref, write() takes a const ref
84   - Unify prototypes of WKTReader and WKBReader constructor (#310)
85   - GeometryCollection::computeEnvelopInternal and
86     GeometryCollection::compareToSameClass are marked virtual (#478)
88 - Bug fixes / improvements
89   - A point interpolated from a line does not always intersect
90     the same line (#323)
91   - Port ConvexHull robustness fix from JTS-1.13 (#457)
92   - Improve Overlay robustness by reducing input precision on topology
93     exception and by refusing to accept unnoded output (#459)
94   - Improve Buffer robustness by reducing input precision on topology
95     exception (#605)
96   - Mismatch segment sides in OffsetCurveBuilder (#633 )
97   - Fixed Linear Referencing API to handle MultiLineStrings consistently
98     by always using the lowest possible index value, and by trimming
99     zero-length components from results (#323)
100   - Fixed CMake configuration to set correct SOVERSION (current - age)
101   - Fix EMPTY return from single-point lines and zero-length polygons (#612)
102   - CMakeLists.txt, tools/geos_svn_revision_cmake.h.in: Add
103           geos_svn_revision.h generator to CMake config (#643)
104         - Makefile.vc 'clean' step leaks obj files (#607)
106 Changes in 3.3.9
107 2013-09-04
109 - Bug fixes / improvements
110     - Fix OffsetCurve op in presence of duplicated vertices (#602)
111     - Fix LineSegmentVisitor copy ctor (#636)
112     - Fix area boundary return from GEOSPointOnSurface (#623)
113     - Speedup GEOSWKBReader_read (#621)
114     - Fix RobustLineIntersector handling of invalid intersection points (#622)
115     - Reduce likelyhood of invalid output from snap operation (#629, #501)
116     - Reduce memory fragmentation of prepared Polygon/Point intersection op
117     - Fix mingw64 compile (#630)
118     - Fix bug in HotPixel constructor (#635)
119     - Fix install location of linearref headers (#624)
120     - Fix multi-geometry constructor to drop SRID from components (#583)
122 Changes in 3.3.8
123 2013-02-28
125 - Bug fixes / improvements
126     - IsValidOp: throw proper error on nested shells (#608)
127     - Fix header guards (#617, #618, #619)
128     - WKTWriter::appendCoordinate optimisation
129     - Fix centroid computation for collections with empty components (#582)
131 Changes in 3.3.7
132 2013-01-22
134 - Bug fixes / improvements
135     - Fix abort in RightmostEdgeFinder (#605)
136     - Do not force precision reduction below 6 significant digits
137       while trying to obtain a valid Buffer output (#605)
138     - Fix GEOSPointOnSurface with zero-length linestring (#609)
139     - Fix EMPTY return from zero-area polygon (#613)
140     - Segfault from symdifference (#615)
142 Changes in 3.3.6
143 2012-11-15 -- that's Post-GIS day !
145 - Bug fixes / improvements
146     - Add support for testing with phpunit 3.6 (not loosing support for 3.4)
147     - Segfault from intersection (#586, #598, #599)
149 Changes in 3.3.5
150 2012-06-25
152 - Bug fixes / improvements
153     - Correctly increment CAPI lib version from 3.3.3 (#558)
154     - Port robustness fix to CentroidArea (#559)
155     - Always return POINT from GEOSGetCentroid, even for EMPTY (#560)
156     - Always return POINT from GEOSPointOnSurface, even for EMPTY (#561)
158 Changes in 3.3.4
159 2012-05-31
161 - Bug fixes / improvements
162     - Do not abort on NaN overlay input (#530)
163     - Reduce CommonBitsRemover harmful effects during overlay op (#527)
164     - Better cross-compiler support (#534)
165     - Enable overlay ops short-circuits (#542)
166     - Envelope-based short-circuit for symDifference (#543)
167     - Fix support for PHP 5.4 (#513)
168     - Fix TopologyPreservingSimplifier invalid output on closed line (#508)
169     - Reduce calls to ptNotInList, greatly speeding up Polygonizer (#545)
171 Changes in 3.3.3
172 2012-04-01
174 - Bug fixes / improvements
175     - Fix simplification of collections with empty items (#519)
176     - Fix MSVC compilation of ambiguous log() call (#506)
177     - Fix CMake issues with std:: namespace detection (#493)
179 Changes in 3.3.2
180 2012-01-05
182 - Bug fixes / improvements
183     - Fix CMAKE_CXX_FLAGS overriding -std=gnu++0x (#489)
184     - Missing versions update in CMake configuration (#490)
185     - Fix noding of self-intersecting lines through UnaryUnion (#482)
186     - Fix handling of collapsed edges skipping in BufferOp (#494)
187     - Print up to 18 digits of precision for TopologyException points
188     - Fix noding with reduced precision in Buffer operation (#473)
189     - Fix HotPixel original point invalidation (#498)
190     - Fix CascadedPolygonUnion to discard non-polygonal components (#499)
191     - Improve buffer robustness by reverting to non-snaprounding noder (#495)
192     - Fix C++11 build by avoiding std::pair<auto_ptr> (#491)
193     - Add --clibs to geos-config and GEOS_C_LIBS to geos.m4 (#497)
194     - Apply shoelace formula for area calculation (#485)
195     - Fix default initialization issue for clang (#500)
196     - Improve overlay robustness by fixing areal validity on snapping (#488)
198 Changes in 3.3.1
199 2011-09-27
201 - Bug fixes / improvements
202   - Fix memory leak on invalid geometry in InteriorPointArea (#475)
203   - ValidOp abort in presence of 2 touching holes forming an island (#449)
204   - Enable prepared intersects operation for points
205   - Fortify suspicious code found by static analisys tools
206   - Fix for SOLARIS build (#461)
207   - Fix EMPTY result from GEOSOffsetCurve with distance 0 (#454)
208   - Fix Geometry::clone to copy SRID (#464)
209   - Fix for clang builds (#463)
210   - Fix out-of-place builds for python binding (#332) and regress testing
211   - Fix OS X framework cmake build (#385)
213 Changes in 3.3.0
214 2011-05-30
216 - New things:
217   - CAPI: GEOSBufferWithParams (allows single sided buffers)
218   - CAPI: GEOSOffsetCurve deprecates GEOSSingleSidedBuffer
219   - CAPI: GEOSUnaryUnion deprecates GEOSCascadedUnion
220   - CAPI: GEOSisValidDetail: tell state, reason & location apart. allows
221           passing flags.
222   - CAPI: GEOSContext_setNoticeHandler_r, GEOSContext_setErrorHandler_r
223   - CAPI: GEOSGeom_createEmptyPoint, GEOSGeom_createEmptyLineString
224           GEOSGeom_createEmptyPolygon, GEOSGeom_createEmptyCollection
225   - CAPI: GEOSGeom_extractUniquePoints
226   - CAPI: GEOSGetGeometryN support for single geometries
227   - CAPI: GEOSPolygonize_full to return all informations computed by
228           the polygonizer
229   - CAPI: GEOSOrientationIndex
230   - CAPI: GEOSSharedPaths to find shared paths and their orientation
231   - CAPI: GEOSSnap
232   - CAPI: GEOSRelatePatternMatch
233   - CAPI: GEOSCovers, GEOSCoveredBy (#396)
234   - CAPI: GEOSRelateBoundaryNodeRule (#399)
235   - CAPI: GEOSGeom_getCoordinateDimension() (#311)
236   - CAPI: GEOSWKTWriter_setOutputDimension, GEOSWKTWriter_setOld3D (#292)
237   -  PHP: new PHP5 bindings based on CAPI
238 - Semantic C++ API changes:
239   - Geometry inheritance chain changed to introduce Puntal, Lineal
240     and Polygonal classes (virtual inheritance introduced)
241   - Polygonizer::getInvalidRingLines retains ownership of vector elements
242   - Geometry::isWithinDistance method is now const
243   - Polygonizer::getCutEdges returns by const ref
244   - Polygonizer::getDangles returns by const ref
245   - Empty LinearRings are closed by definition
246 - Bug fixes / improvements
247   - Fixed Geometry.distance() and DistanceOp to return 0.0 for empty inputs
248   - Invalid compound geometries reported as valid (#333)
249   - Return up to 15 digits of precision from GEOSisValidReason_t (#329)
250   - CAPI: do not leak contexts when using the non-reentrant interface
251   - Fix duplicated dangles returned by Polygonizer
252   - Fix SnapIfNeededOverlayOp to throw the originating exception
253   - Fixed LineMerger to skip lines with only a single unique coordinate
254   - Fix NodedSegmentString to handle zero-length line segments correctly
255     (via safeOctant)
256   - Fixed buffer OffsetCurveSetBuilder to handle "flat" rings correctly
257   - Added illegal state check in LineSegment::pointAlongOffset()
258   - Improved performance of RectangleIntersects by always using
259     segment-scanning and refining SegmentIntersectionTester
260   - Reduce memory use in PreparedGeometry predicates (#342)
261   - Fix infinite loop in RobustDeterminant with nan/inf input (#357)
263 Changes in 3.2.0
264 2009-12-14
266 - Add Single-sided buffer operation
267 - JTS-1.10 sync ...
268   - Drastically improved Buffer speed (20x for a case in testsuite)
269   - Improved EdgeList duplicate edge finding
270   - Added algorithm::distance package
271   - Added algorithm::Angle class
272   - Added algorithm::BoundaryNodeRule class
273   - IsSimpleOp can now return non-simple location coordinate
274   - DistanceOp can now check for 'within distance' predicate
275     (earlier exit)
276   - MultiPolygon::getBoundary always return MultiLineString, also
277     when the result is the EMPTY geometry.
278 - Various bug and leak fixes, optimizations
279 - Replace MarkupSTL with tinyXML
281 Changes in 3.1.0
283 - PreparedGeometry operations for very fast predicate testing.
284   - Intersects()
285   - Covers()
286   - CoveredBy()
287   - ContainsProperly()
288 - Easier builds under MSVC and OpenSolaris
289 - Thread-safe CAPI option
290 - IsValidReason added to CAPI
291 - GEOSPolygonizer_getCutEdges added to CAPI
292 - CascadedUnion operation for fast unions of geometry sets
293 - Numerous bug fixes.
294   http://trac.osgeo.org/geos/query?status=closed&milestone=3.1.0&order=priority
296 Changes in 3.0.0
298    These are mostly ABI breaking changes.
299    In few cases the API also changed, but the most external one
300    (the documented one) should be unchanged.
302 - New things:
303         - Added geom::BinaryOp class performing a binary operation
304           using different heuristics to reduce probability of robustness
305           issues. Both C-API and XMLTester now use this class for
306           binary operations.
307         - Added covers() and coveredBy() predicates to Geometry class
308         - Added overlay::overlayOp() adapter class
309         - Added GEOSSimplify() and GEOSTopologyPreserveSimplify()
310           to the C API
311         - Added closed ring checks in IsValidOp
312         - Multi-input support in XMLTester
313         - HEXWKB I/O
314         - Envelope(string) ctor
315         - Ruby interface
316         - New ShortCircuitedGeometryVisitor class
317         - New operation/predicate package
318         - Added CGAlgorithms::isPointInRing() version working with
319           Coordinate::ConstVect type (faster!)
320         - Added getAt(int pos, Coordinate &to) funtion to CoordinateSequence
321           class.
322         - Moved GetNumGeometries() and GetGeometryN() interfaces
323           from GeometryCollection to Geometry class.
324         - New planarSubgraph class
325         - New ConnectedSubgraphFinder class.
326         - New LineSequencer class
327         - New WKTWriter::toLineString and ::toPoint convenience methods
328         - New IsValidOp::setSelfTouchingRingFormingHoleValid method
329         - New WKTWriter::toLineString and ::toPoint convenience methods
330         - New IsValidOp::setSelfTouchingRingFormingHoleValid method
331         - New Envelope::centre()
332         - New Envelope::intersection(Envelope)
333         - New Envelope::expandBy(distance, [ydistance])
334         - New LineString::reverse()
335         - New MultiLineString::reverse()
336         - New Geometry::buffer(distance, quadSeg, endCapStyle)
337         - New SnapRounding code
338         - New size() and operator[] interfaces to CoordinateSequence
339         - New ScaledNoder class
340         - New unit tests (make check rule)
342 - Optimizations:
343         - WKT parser speedup
344         - Function inlining
345         - Coordinate copies reduction
346         - Heap allocations reduction
347         - More classes made final
348         - Better use of standard containers
349         - Use of singletons when appropriate
350         - Removed many function calls in loops' end conditions
351         - Improved XMLTester output and user interface
352         - Improved memory use in geos::geom::util::PolygonExtractor
353         - Ported JTS-1.7 version of ConvexHull with big attention to
354           memory usage optimizations.
355         - Changed CoordinateArrayFilter to reduce memory copies
356         - Changed UniqueCoordinateArrayFilter to reduce memory copies
357         - Added rectangle-based optimizations of intersects() and
358           contains() ops
359         - Inlined all planarGraphComponent class
360         - More iterators returning methods and inlining in planargraph.
361         - Obsoleted toInternalGeometry/fromInternalGeometry
362         - Improved buffering speed and robustness by using Snap Rounding
364 - Semantic changes
366         - SegmentString: getCoordinates() doesn't return a clone
367           anymore, getCoordinatesRO() obsoleted.
368         - JTS packages mapped to geos:: sub-namespaces
369         - Geometry::getInteriorPoint() returns NULL if called
370           against an EMPTY geom
371         - LineString::get{Start,End}Point return NULL for
372           EMPTY geoms
373         - GEOSException is now derived by std::runtim_exception
374           and thrown by const reference.
375         - Geometry constructors made protected, to force use
376           of a GeometryFactory.
378 - Correctness:
379         - More const-correct signatures
380         - Stronger methods typing (removed some void * args).
381         - Changed index-related funx signatures to use size_t
382           rather then int
383         - More const-correctness in Buffer "package"
384         - Bugfix in LineString::getCoordinate() failing to return
385           NULL from getCoordinat() when empty.
386         - Use unsigned int for indexes and sizes.
388 - Layout changes:
389         - Namespaces mapping JTS packages
390         - Renamed classes after JTS names (namespaces use made this possible
391           w/out name clashes)
392         - Splitted headers, for build speedup and possible API reduction.
393         - Moved source/bigtest and source/test to tests/bigtest
394           and test/xmltester
395         - Moved C-API in it's own top-level dir capi/
396         - Reworked automake scripts to produce a static lib for each subdir
397           and then link all subsystem's libs togheter
398         - Renamed DefaultCoordinateSequence to CoordinateArraySequence.
399         - Renamed OverlayOp opcodes by prepending the 'op' prefix, and
400           given the enum a name (OpCode) for type-safety.
402 - Bug fixes:
403         - Fixed bug causing redundant linestrings to be returned in the
404           result of overlaying polygons containing touching holes (#13)
405         - Fixed integer conversion bug
406         - Fixed PointLocator handling of LinearRings
407         - Added missing ::clone() methods for Multi* geoms
409 - (Partial) Detailed list of changes:
410         - Changed SegmentNode to contain a *real* Coordinate (not a pointer)
411           to reduce construction costs.
412         - Changed geomgraph nodeMap to use Coordinate pointers as keys
413         - Envelope destructor made non-virtual to give compiler more static
414           binding options.
415         - Changed BufferSubgraph::computeDepths to use a set instead of a
416           vector for checking visited Edges.
417         - Made LineIntersector a concrete type
418         - Node::isIncidentEdgeInResult() method made virtual
419         - Const-correct signatures in LineMerger package
420         - Changed operation/valid/*NestedRingTester classes interface
421           to use Coordinate pointers instead of copies.
422         - Changed EdgeIntersectionList to use a set instead of a vector
423         - Changed DepthSegment to store a real Coordinate rather then a pointer.
424         - Changed SubgraphDepthLocater to store real containers rather then
425           pointers.
426         - Changed BufferSubgraph to store a real RightmostEdgeFinder and real
427           containers rather then pointers.
428         - CoordinateSequence API changes:
429                 - point index and size related functions
430                   use unsigned int rather then int
431         - Changed EdgeEndStar to maintain a single container for EdgeEnds
432         - Changed PlanarGraph::addEdges to take a const vector by ref
433           rathern then a non-const vector by pointer
434         - Changed EdgeList::addAll to take a const vector by ref
435           rather then a non-const vector by pointer
436         - Added apply_rw(CoordinateFilter *) and apply_ro(CoordinateFilter *)
437           const to CoordinateSequence
438         - LineBuilder::lineEdgesList made a real vector, rather then pointer
439           (private member)
440         - SegmentString::eiList made a real SegmentNodeList, rather then
441           a pointer (private member)
442         - Removed coordinate copies in ElevationMatrix::elevate
443         - Changed CoordinateFilter interface to have a const method
444           for filter_rw, updated interfaces using this to take
445           const CoordinateFilter (apply_rw).
448 Changes in 2.2.4
450         - Added version.in.vc to distribution
452 Changes in 2.2.1
454 - Support for MingW builds
455 - Bugfix in Polygonizer chocking on invalid LineString inputs
456 - CAPI: small leak removed in GEOSHasZ()
458 Changes in 2.2.0
460 - Performance improvement in OverlayOp::insertUniqueEdge()
461 - CoordinateSequence copy removal in EdgeRing
462 - Minor memory allocation improvements
463 - Higher dimensions interface for CoordinateSequence
464 - Added getCoordinatesRO for Point class
465 - NEW WKB IO
466 - NEW Simplified and stabler C API
468 Changes in 2.1.4
470 - Severe BUGFIX in BufferSubgraphGT and other functions used
471   as StrictWeakOrdering predicates for sort()
473 Changes in 2.1.3
475 - win32/mingw build support
476 - Segfault fix in LinearRing and LineString constructors
477 - Segfault fix in Polygonizer
478 - XMLTester installed by default
479 - XMLTester code cleanup
480 - Fixed handling of collection input in GeometryFactory::buildGeometry
481 - Added shortcircuit test for Union operation
482 - Reduced useless Coordinate copies in CGAlgorithms::isPointInRing()
483 - Performance improvements in CGAlgorithms::isOnLine()
484 - Other minor performance improvements
485 - New Node::isIncidentEdgeInResult() method
486 - OverlayOp's PointBuilder performance improvement by reduction
487   of LineIntersector calls.
488 - Optimizations in Buffer operation
489 - Sever BUGFIX in DepthSegmentLT as suggested by Graeme Hiebert
491 Changes in 2.1.2
493 - Segfault fix in Point::isEmpty
494 - Mem Leak fix in OffsetCurveBuilder::getRingCurve
495 - Bugfix in LineSegment::reverse
496 - Added multipolygon buffering test in source/test/testLeaksBig
497 - Ported JTS robustness patch for RobustLineIntersector
498 - Removed useless Coordinate copies in OverlayOp::mergeZ()
499 - Avoided throws by IsValid on invalid input
500 - Stricter C++ syntax (math.h=>cmath, ieeefp.h in "C" block, ostringstream
501   instead of sprintf)
502 - Better support for older compilers (Polygonizer::LineStringAdder friendship)
503 - Removed useless Coordinate copies in CGAlgorithms::isOnLine()
504 - Added support for polygonize and parametrized buffer tests in XMLTester
505 - Fixed support for --includedir and --libdir
506 - Fixed Z interpolation in LineIntersector
507 - Handled NULL results from getCentroid() in XMLTester
508 - Segfault fix in (EMPTY)Geometry::getCentroid()
509 - Made polygon::getBoundary() always OGC-valid (no LinearRings)
510 - Input checking and promoting in GeometryFactory::createMultiLineString()
511 - Segfault fix in GeometryEditor::editPolygon()
514 Changes in 2.1.1
516 - Fixed uninitialized Coordinate in TopologyException
517 - Added install of version.h, platform.h and timeval.h
518 - Memleak fix in PolygonizeGraph
519 - Memleak fix in OverlayOp
520 - Compiler warnings removal
521 - Cleaner w32 build
522 - Z interpolation in overlay operations
523 - Debian package build scripts
526 Changes in 2.1.0
528 - Added Polygonizer and LineMerger classes.
529 - python wrapper examples
530 - General cleanup / warnings removal
531 - cleaner win32 / older copilers builds
532 - Reduced heap allocations
533 - debian package builder scripts
534 - reduction of standard C lib headers dependency
535 - Z support in overlay operations.
538 Changes in 2.0.0
540 - CoordinateList renamed to CoordinateSequence, BasicCoordinateList
541   renamed to DefaultCoordinateSequence to reflect JTS changes.
542   DefaultCoordinateSequenceFactory and CoordinateSequenceFactory
543   got same interface as JTS.
544 - Added geos/version.h defining versioning infos
545 - Added geos.h for quick inclusion. It will include geos/geom.h,
546   new geos/version.h, geos/util.h geos/io.h and geos/unload.h
547   (geometry input/output, exceptions, operations).
548 - Added a geos::version() function showing GEOS and equivalent
549   JTS versions as strings.
550 - All geometry constructors take ownership of given arguments.
551   GeometryFactory provides pass-by-reference geometry creators
552   to take care of a deep-copy.
553 - GeometryFactory::createMultiPoint(const CoordinateList *)
554   has been renamed to
555   GeometryFactory::createMultiPoint(const CoordinateList &)
556   to reflect copy semantic
557 - GeometryFactory: EMPTY geometry creation do now have their
558   own constructors taking no arguments.
559 - Geometry constructors taking PrecisionModel and SRID have
560   been dropped. You have to use GeometryFactory instead.
561 - WKTWriter default constructor has been dropped. You need
562   to initialize it with an explicit GeometryFactory