source: tags/3.3.9/NEWS

Last change on this file was 3937, checked in by strk, 11 years ago

Update NEWS file for 3.3.9

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