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