source: tags/3.3.6/NEWS

Last change on this file was 3722, checked in by strk, 4 years ago

Set version to 3.3.6

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