source: tags/3.3.7/NEWS

Last change on this file was 3752, checked in by strk, 3 years ago

Set version to 3.3.7

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 17.0 KB
Line 
1Changes in 3.3.7
22013-01-22
3
4- Bug fixes / improvements
5    - Fix abort in RightmostEdgeFinder (#605)
6    - Do not force precision reduction below 6 significant digits
7      while trying to obtain a valid Buffer output (#605)
8    - Fix GEOSPointOnSurface with zero-length linestring (#609)
9    - Fix EMPTY return from zero-area polygon (#613)
10    - Segfault from symdifference (#615)
11
12Changes in 3.3.6
132012-11-15 -- that's Post-GIS day !
14
15- Bug fixes / improvements
16    - Add support for testing with phpunit 3.6 (not loosing support for 3.4)
17    - Segfault from intersection (#586, #598, #599)
18
19Changes in 3.3.5
202012-06-25
21
22- Bug fixes / improvements
23    - Correctly increment CAPI lib version from 3.3.3 (#558)
24    - Port robustness fix to CentroidArea (#559)
25    - Always return POINT from GEOSGetCentroid, even for EMPTY (#560)
26    - Always return POINT from GEOSPointOnSurface, even for EMPTY (#561)
27
28Changes in 3.3.4
292012-05-31
30
31- Bug fixes / improvements
32    - Do not abort on NaN overlay input (#530)
33    - Reduce CommonBitsRemover harmful effects during overlay op (#527)
34    - Better cross-compiler support (#534)
35    - Enable overlay ops short-circuits (#542)
36    - Envelope-based short-circuit for symDifference (#543)
37    - Fix support for PHP 5.4 (#513)
38    - Fix TopologyPreservingSimplifier invalid output on closed line (#508)
39    - Reduce calls to ptNotInList, greatly speeding up Polygonizer (#545)
40
41Changes in 3.3.3
422012-04-01
43
44- Bug fixes / improvements
45    - Fix simplification of collections with empty items (#519)
46    - Fix MSVC compilation of ambiguous log() call (#506)
47    - Fix CMake issues with std:: namespace detection (#493)
48
49Changes in 3.3.2
502012-01-05
51
52- Bug fixes / improvements
53    - Fix CMAKE_CXX_FLAGS overriding -std=gnu++0x (#489)
54    - Missing versions update in CMake configuration (#490)
55    - Fix noding of self-intersecting lines through UnaryUnion (#482)
56    - Fix handling of collapsed edges skipping in BufferOp (#494)
57    - Print up to 18 digits of precision for TopologyException points
58    - Fix noding with reduced precision in Buffer operation (#473)
59    - Fix HotPixel original point invalidation (#498)
60    - Fix CascadedPolygonUnion to discard non-polygonal components (#499)
61    - Improve buffer robustness by reverting to non-snaprounding noder (#495)
62    - Fix C++11 build by avoiding std::pair<auto_ptr> (#491)
63    - Add --clibs to geos-config and GEOS_C_LIBS to geos.m4 (#497)
64    - Apply shoelace formula for area calculation (#485)
65    - Fix default initialization issue for clang (#500)
66    - Improve overlay robustness by fixing areal validity on snapping (#488)
67
68Changes in 3.3.1
692011-09-27
70
71- Bug fixes / improvements
72  - Fix memory leak on invalid geometry in InteriorPointArea (#475)
73  - ValidOp abort in presence of 2 touching holes forming an island (#449)
74  - Enable prepared intersects operation for points
75  - Fortify suspicious code found by static analisys tools
76  - Fix for SOLARIS build (#461)
77  - Fix EMPTY result from GEOSOffsetCurve with distance 0 (#454)
78  - Fix Geometry::clone to copy SRID (#464)
79  - Fix for clang builds (#463)
80  - Fix out-of-place builds for python binding (#332) and regress testing
81  - Fix OS X framework cmake build (#385)
82
83Changes in 3.3.0
842011-05-30
85
86- New things:
87  - CAPI: GEOSBufferWithParams (allows single sided buffers)
88  - CAPI: GEOSOffsetCurve deprecates GEOSSingleSidedBuffer
89  - CAPI: GEOSUnaryUnion deprecates GEOSCascadedUnion
90  - CAPI: GEOSisValidDetail: tell state, reason & location apart. allows
91          passing flags.
92  - CAPI: GEOSContext_setNoticeHandler_r, GEOSContext_setErrorHandler_r
93  - CAPI: GEOSGeom_createEmptyPoint, GEOSGeom_createEmptyLineString
94          GEOSGeom_createEmptyPolygon, GEOSGeom_createEmptyCollection
95  - CAPI: GEOSGeom_extractUniquePoints
96  - CAPI: GEOSGetGeometryN support for single geometries
97  - CAPI: GEOSPolygonize_full to return all informations computed by
98          the polygonizer
99  - CAPI: GEOSOrientationIndex
100  - CAPI: GEOSSharedPaths to find shared paths and their orientation
101  - CAPI: GEOSSnap
102  - CAPI: GEOSRelatePatternMatch
103  - CAPI: GEOSCovers, GEOSCoveredBy (#396)
104  - CAPI: GEOSRelateBoundaryNodeRule (#399)
105  - CAPI: GEOSGeom_getCoordinateDimension() (#311)
106  - CAPI: GEOSWKTWriter_setOutputDimension, GEOSWKTWriter_setOld3D (#292)
107  -  PHP: new PHP5 bindings based on CAPI
108- Semantic C++ API changes:
109  - Geometry inheritance chain changed to introduce Puntal, Lineal
110    and Polygonal classes (virtual inheritance introduced)
111  - Polygonizer::getInvalidRingLines retains ownership of vector elements
112  - Geometry::isWithinDistance method is now const
113  - Polygonizer::getCutEdges returns by const ref
114  - Polygonizer::getDangles returns by const ref
115  - Empty LinearRings are closed by definition
116- Bug fixes / improvements
117  - Fixed Geometry.distance() and DistanceOp to return 0.0 for empty inputs
118  - Invalid compound geometries reported as valid (#333)
119  - Return up to 15 digits of precision from GEOSisValidReason_t (#329)
120  - CAPI: do not leak contexts when using the non-reentrant interface
121  - Fix duplicated dangles returned by Polygonizer
122  - Fix SnapIfNeededOverlayOp to throw the originating exception
123  - Fixed LineMerger to skip lines with only a single unique coordinate
124  - Fix NodedSegmentString to handle zero-length line segments correctly
125    (via safeOctant)
126  - Fixed buffer OffsetCurveSetBuilder to handle "flat" rings correctly
127  - Added illegal state check in LineSegment::pointAlongOffset()
128  - Improved performance of RectangleIntersects by always using
129    segment-scanning and refining SegmentIntersectionTester
130  - Reduce memory use in PreparedGeometry predicates (#342)
131  - Fix infinite loop in RobustDeterminant with nan/inf input (#357)
132
133Changes in 3.2.0
1342009-12-14
135
136- Add Single-sided buffer operation
137- JTS-1.10 sync ...
138  - Drastically improved Buffer speed (20x for a case in testsuite)
139  - Improved EdgeList duplicate edge finding
140  - Added algorithm::distance package
141  - Added algorithm::Angle class
142  - Added algorithm::BoundaryNodeRule class
143  - IsSimpleOp can now return non-simple location coordinate
144  - DistanceOp can now check for 'within distance' predicate
145    (earlier exit)
146  - MultiPolygon::getBoundary always return MultiLineString, also
147    when the result is the EMPTY geometry.
148- Various bug and leak fixes, optimizations
149- Replace MarkupSTL with tinyXML
150
151Changes in 3.1.0
152
153- PreparedGeometry operations for very fast predicate testing.
154  - Intersects()
155  - Covers()
156  - CoveredBy()
157  - ContainsProperly()
158- Easier builds under MSVC and OpenSolaris
159- Thread-safe CAPI option
160- IsValidReason added to CAPI
161- GEOSPolygonizer_getCutEdges added to CAPI
162- CascadedUnion operation for fast unions of geometry sets
163- Numerous bug fixes.
164  http://trac.osgeo.org/geos/query?status=closed&milestone=3.1.0&order=priority
165
166Changes in 3.0.0
167
168   These are mostly ABI breaking changes.
169   In few cases the API also changed, but the most external one
170   (the documented one) should be unchanged.
171
172- New things:
173        - Added geom::BinaryOp class performing a binary operation
174          using different heuristics to reduce probability of robustness
175          issues. Both C-API and XMLTester now use this class for
176          binary operations.
177        - Added covers() and coveredBy() predicates to Geometry class
178        - Added overlay::overlayOp() adapter class
179        - Added GEOSSimplify() and GEOSTopologyPreserveSimplify()
180          to the C API
181        - Added closed ring checks in IsValidOp
182        - Multi-input support in XMLTester
183        - HEXWKB I/O
184        - Envelope(string) ctor
185        - Ruby interface
186        - New ShortCircuitedGeometryVisitor class
187        - New operation/predicate package
188        - Added CGAlgorithms::isPointInRing() version working with
189          Coordinate::ConstVect type (faster!)
190        - Added getAt(int pos, Coordinate &to) funtion to CoordinateSequence
191          class.
192        - Moved GetNumGeometries() and GetGeometryN() interfaces
193          from GeometryCollection to Geometry class.
194        - New planarSubgraph class
195        - New ConnectedSubgraphFinder class.
196        - New LineSequencer class
197        - New WKTWriter::toLineString and ::toPoint convenience methods
198        - New IsValidOp::setSelfTouchingRingFormingHoleValid method
199        - New WKTWriter::toLineString and ::toPoint convenience methods
200        - New IsValidOp::setSelfTouchingRingFormingHoleValid method
201        - New Envelope::centre()
202        - New Envelope::intersection(Envelope)
203        - New Envelope::expandBy(distance, [ydistance])
204        - New LineString::reverse()
205        - New MultiLineString::reverse()
206        - New Geometry::buffer(distance, quadSeg, endCapStyle)
207        - New SnapRounding code
208        - New size() and operator[] interfaces to CoordinateSequence
209        - New ScaledNoder class
210        - New unit tests (make check rule)
211
212- Optimizations:
213        - WKT parser speedup
214        - Function inlining
215        - Coordinate copies reduction
216        - Heap allocations reduction
217        - More classes made final
218        - Better use of standard containers
219        - Use of singletons when appropriate
220        - Removed many function calls in loops' end conditions
221        - Improved XMLTester output and user interface
222        - Improved memory use in geos::geom::util::PolygonExtractor
223        - Ported JTS-1.7 version of ConvexHull with big attention to
224          memory usage optimizations.
225        - Changed CoordinateArrayFilter to reduce memory copies
226        - Changed UniqueCoordinateArrayFilter to reduce memory copies
227        - Added rectangle-based optimizations of intersects() and
228          contains() ops
229        - Inlined all planarGraphComponent class
230        - More iterators returning methods and inlining in planargraph.
231        - Obsoleted toInternalGeometry/fromInternalGeometry
232        - Improved buffering speed and robustness by using Snap Rounding
233
234- Semantic changes
235
236        - SegmentString: getCoordinates() doesn't return a clone
237          anymore, getCoordinatesRO() obsoleted.
238        - JTS packages mapped to geos:: sub-namespaces
239        - Geometry::getInteriorPoint() returns NULL if called
240          against an EMPTY geom
241        - LineString::get{Start,End}Point return NULL for
242          EMPTY geoms
243        - GEOSException is now derived by std::runtim_exception
244          and thrown by const reference.
245        - Geometry constructors made protected, to force use
246          of a GeometryFactory.
247
248- Correctness:
249        - More const-correct signatures
250        - Stronger methods typing (removed some void * args).
251        - Changed index-related funx signatures to use size_t
252          rather then int
253        - More const-correctness in Buffer "package"
254        - Bugfix in LineString::getCoordinate() failing to return
255          NULL from getCoordinat() when empty.
256        - Use unsigned int for indexes and sizes.
257
258- Layout changes:
259        - Namespaces mapping JTS packages
260        - Renamed classes after JTS names (namespaces use made this possible
261          w/out name clashes)
262        - Splitted headers, for build speedup and possible API reduction.
263        - Moved source/bigtest and source/test to tests/bigtest
264          and test/xmltester
265        - Moved C-API in it's own top-level dir capi/
266        - Reworked automake scripts to produce a static lib for each subdir
267          and then link all subsystem's libs togheter
268        - Renamed DefaultCoordinateSequence to CoordinateArraySequence.
269        - Renamed OverlayOp opcodes by prepending the 'op' prefix, and
270          given the enum a name (OpCode) for type-safety.
271
272- Bug fixes:
273        - Fixed bug causing redundant linestrings to be returned in the
274          result of overlaying polygons containing touching holes (#13)
275        - Fixed integer conversion bug
276        - Fixed PointLocator handling of LinearRings
277        - Added missing ::clone() methods for Multi* geoms
278
279- (Partial) Detailed list of changes:
280        - Changed SegmentNode to contain a *real* Coordinate (not a pointer)
281          to reduce construction costs.
282        - Changed geomgraph nodeMap to use Coordinate pointers as keys
283        - Envelope destructor made non-virtual to give compiler more static
284          binding options.
285        - Changed BufferSubgraph::computeDepths to use a set instead of a
286          vector for checking visited Edges.
287        - Made LineIntersector a concrete type
288        - Node::isIncidentEdgeInResult() method made virtual
289        - Const-correct signatures in LineMerger package
290        - Changed operation/valid/*NestedRingTester classes interface
291          to use Coordinate pointers instead of copies.
292        - Changed EdgeIntersectionList to use a set instead of a vector
293        - Changed DepthSegment to store a real Coordinate rather then a pointer.
294        - Changed SubgraphDepthLocater to store real containers rather then
295          pointers.
296        - Changed BufferSubgraph to store a real RightmostEdgeFinder and real
297          containers rather then pointers.
298        - CoordinateSequence API changes:
299                - point index and size related functions
300                  use unsigned int rather then int
301        - Changed EdgeEndStar to maintain a single container for EdgeEnds
302        - Changed PlanarGraph::addEdges to take a const vector by ref
303          rathern then a non-const vector by pointer
304        - Changed EdgeList::addAll to take a const vector by ref
305          rather then a non-const vector by pointer
306        - Added apply_rw(CoordinateFilter *) and apply_ro(CoordinateFilter *)
307          const to CoordinateSequence
308        - LineBuilder::lineEdgesList made a real vector, rather then pointer
309          (private member)
310        - SegmentString::eiList made a real SegmentNodeList, rather then
311          a pointer (private member)
312        - Removed coordinate copies in ElevationMatrix::elevate
313        - Changed CoordinateFilter interface to have a const method
314          for filter_rw, updated interfaces using this to take
315          const CoordinateFilter (apply_rw).
316
317
318Changes in 2.2.4
319
320        - Added version.in.vc to distribution
321
322Changes in 2.2.1
323
324- Support for MingW builds
325- Bugfix in Polygonizer chocking on invalid LineString inputs
326- CAPI: small leak removed in GEOSHasZ()
327
328Changes in 2.2.0
329
330- Performance improvement in OverlayOp::insertUniqueEdge()
331- CoordinateSequence copy removal in EdgeRing
332- Minor memory allocation improvements
333- Higher dimensions interface for CoordinateSequence
334- Added getCoordinatesRO for Point class
335- NEW WKB IO
336- NEW Simplified and stabler C API
337
338Changes in 2.1.4
339
340- Severe BUGFIX in BufferSubgraphGT and other functions used
341  as StrictWeakOrdering predicates for sort()
342
343Changes in 2.1.3
344
345- win32/mingw build support
346- Segfault fix in LinearRing and LineString constructors
347- Segfault fix in Polygonizer
348- XMLTester installed by default
349- XMLTester code cleanup
350- Fixed handling of collection input in GeometryFactory::buildGeometry
351- Added shortcircuit test for Union operation
352- Reduced useless Coordinate copies in CGAlgorithms::isPointInRing()
353- Performance improvements in CGAlgorithms::isOnLine()
354- Other minor performance improvements
355- New Node::isIncidentEdgeInResult() method
356- OverlayOp's PointBuilder performance improvement by reduction
357  of LineIntersector calls.
358- Optimizations in Buffer operation
359- Sever BUGFIX in DepthSegmentLT as suggested by Graeme Hiebert
360
361Changes in 2.1.2
362
363- Segfault fix in Point::isEmpty
364- Mem Leak fix in OffsetCurveBuilder::getRingCurve
365- Bugfix in LineSegment::reverse
366- Added multipolygon buffering test in source/test/testLeaksBig
367- Ported JTS robustness patch for RobustLineIntersector
368- Removed useless Coordinate copies in OverlayOp::mergeZ()
369- Avoided throws by IsValid on invalid input
370- Stricter C++ syntax (math.h=>cmath, ieeefp.h in "C" block, ostringstream
371  instead of sprintf)
372- Better support for older compilers (Polygonizer::LineStringAdder friendship)
373- Removed useless Coordinate copies in CGAlgorithms::isOnLine()
374- Added support for polygonize and parametrized buffer tests in XMLTester
375- Fixed support for --includedir and --libdir
376- Fixed Z interpolation in LineIntersector
377- Handled NULL results from getCentroid() in XMLTester
378- Segfault fix in (EMPTY)Geometry::getCentroid()
379- Made polygon::getBoundary() always OGC-valid (no LinearRings)
380- Input checking and promoting in GeometryFactory::createMultiLineString()
381- Segfault fix in GeometryEditor::editPolygon()
382
383
384Changes in 2.1.1
385
386- Fixed uninitialized Coordinate in TopologyException
387- Added install of version.h, platform.h and timeval.h
388- Memleak fix in PolygonizeGraph
389- Memleak fix in OverlayOp
390- Compiler warnings removal
391- Cleaner w32 build
392- Z interpolation in overlay operations
393- Debian package build scripts
394
395
396Changes in 2.1.0
397
398- Added Polygonizer and LineMerger classes.
399- python wrapper examples
400- General cleanup / warnings removal
401- cleaner win32 / older copilers builds
402- Reduced heap allocations
403- debian package builder scripts
404- reduction of standard C lib headers dependency
405- Z support in overlay operations.
406
407
408Changes in 2.0.0
409
410- CoordinateList renamed to CoordinateSequence, BasicCoordinateList
411  renamed to DefaultCoordinateSequence to reflect JTS changes.
412  DefaultCoordinateSequenceFactory and CoordinateSequenceFactory
413  got same interface as JTS.
414- Added geos/version.h defining versioning infos
415- Added geos.h for quick inclusion. It will include geos/geom.h,
416  new geos/version.h, geos/util.h geos/io.h and geos/unload.h
417  (geometry input/output, exceptions, operations).
418- Added a geos::version() function showing GEOS and equivalent
419  JTS versions as strings.
420- All geometry constructors take ownership of given arguments.
421  GeometryFactory provides pass-by-reference geometry creators
422  to take care of a deep-copy.
423- GeometryFactory::createMultiPoint(const CoordinateList *)
424  has been renamed to
425  GeometryFactory::createMultiPoint(const CoordinateList &)
426  to reflect copy semantic
427- GeometryFactory: EMPTY geometry creation do now have their
428  own constructors taking no arguments.
429- Geometry constructors taking PrecisionModel and SRID have
430  been dropped. You have to use GeometryFactory instead.
431- WKTWriter default constructor has been dropped. You need
432  to initialize it with an explicit GeometryFactory
433
Note: See TracBrowser for help on using the repository browser.