Age | Commit message (Collapse) | Author | Files | Lines |
|
pkgsrc changes: revise comments about geos C vs C++ library linking in
light of unexpected libtool behavior (which defeats geos's scheme)
Upstream NEWS:
3.7.0 changes
2018-09-10
- New things:
- CAPI: GEOSDistanceIndexed (#795, Dan Baston)
- CAPI: GEOSCoordSeq_isCCW (#870, Dan Baston)
- CAPI: GEOSGeom_getXMin, GEOSGeom_getXMax,
GEOSGeom_getYMin, GEOSGeom_getYMax (#871, Dan Baston)
- CAPI: GEOSFrechetDistance (#797, Shinichi SUGIYAMA)
- CAPI: GEOSReverse (#872, Dan Baston)
- CAPI: GEOSGeomGetZ (#581, J Smith)
- Improvements
- Interruptible snap operation (Paul Ramsey)
- Numerous packaging, doc, and build changes
(Debian group: Bas Couwenberg, Francesco Paolo Lovergine)
(NetBSD: Greg Troxel)
- Allow static library with C API for CMake builds (#878, Dakota Hawkins)
- C++ API changes:
- Require defining USE_UNSTABLE_GEOS_CPP_API for use without
warnings.
- Make C++11 required (Mateusz Loskot)
- Use C++11 unique_ptr, nullptr, and override constructs
(Mateusz Loskot)
- C++11 standard delete on noncopyable
(#851, Vicky Vergara)
- Fix CommonBits::getBit to correctly handle i >= 32
(#834, Kurt Schwehr)
|
|
Changes in 3.6.2
2017-07-25
- Bug fixes / improvements
- Fix exception in UnaryUnion of collection of touching polygons (#837)
- Allow building against python 3 (#774)
- Fix build with android-ndk and other compilers (#799)
- Allows compiling with -Wpointer-bool-conversion (#638)
- Fix unhandled exception on invalid fp operation (#811)
- Fix overloaded virtual print in DirectedEdge* (#812)
- AppVeyor CI build added (#813)
- Clean up numerous MSVC warnings, notably C4275 and C4589 (#814)
- Bump CMake version to 3.0.0 (#817)
- Fix leaks in WKT parser (#830)
Changes in 3.6.1
2016-12-24
- Bug fixes / improvements
- Fix GEOSSTRtree_nearest_r signature and add implementation (#796)
- Fix --static-clibs and --static-cclibs returns from geos-config
- Fix WKB representation of empty polygon (#680).
- Fix empty GEOSSimplify return on inner ring collapse (#741)
Changes in 3.6.0
2016-10-25
- Important / Breaking Changes:
- The PHP binding moved to its own repository:
http://git.osgeo.org/gogs/geos/php-geos (#765)
- New things:
- CAPI: GEOSGeom_{get,set}UserData (Rashad Kanavath)
- CAPI: GEOSGeom_{set,get}Precision (#713)
- CAPI: GEOSMinimumRotatedRectangle and GEOSMinimumWidth
(#729, Nyall Dawson)
- CAPI: GEOSSTRtree_nearest (#768, Dan Baston)
- CAPI: GEOSMinimumClearance and GEOSMinimumClearanceLine
(#776, Dan Baston)
- C++ API changes:
- Automatic memory management for GeometryFactory objects
|
|
Changes in 3.5.0
2015-08-15
- New things:
- Voronoi API (#627)
- PHP: Geometry->normalize method
- GEOS_USE_ONLY_R_API macro support (#695)
- PHP: WKBReader->read() & WKBWriter::write() methods (Benjamin Morel)
- GEOSClipByRect (#699, Mika Heiskanen, Sandro Santilli)
- CAPI: thread-safe message handling API (#663, Pepijn Van Eeckhoudt)
- Improvements:
- Speed-up intersection and difference between geometries
with small bounding box overlap.
- CAPI: add MULTILINESTRING support for GEOSisClosed (Benjamin Morel)
- C++ API changes:
- Added no-parameter CoordinateSequenceFactory::create method (Sandro Mani)
|
|
patches/patch-include-geos-platform.h.in was applied upstream in r3902
(trunk) and r3903 (branches/3.4).
Upstream NEWS:
Changes in 3.4.2
2013-08-25
- Bug fixes / improvements
- Use a double for PrecisionModel scale, avoiding overflows
should fix 32-bit regression failures (#652)
- isnan workaround OS detection missing NetBSD, DragonFly, Sun nuance (#650)
- Do not distribute platform.h and version.h, but install both (#601)
- Non-standard ChangeLog file in 3.4.0 and 3.4.1 releases (#654)
- new travis bot (#657)
- accept multiple Nan representations (#656)
|
|
Changes in 3.4.1
2013-08-DD
- Bug fixes / improvements
- Assertion failure snapping line to points of rectangle
smaller than tolerance (#649)
- Can't build using cmake with tar ball (#644)
Changes in 3.4.0
2013-08-11
- New things:
- Delaunay Triangulation API (#487, #565, #570, #567)
- Interruptibility API (C and C++)
- CAPI: GEOSNode (#496) - PHP: Geometry->node
- GeometryPrecisionReducer class (#496, #526)
- BufferInputLineSimplifier header exposed (#548)
- New Centroid class supporting mixed geometry components (#612)
- io::Writer::reserve() method
- CAPI: GEOSNearestPoints
- Add --cclibs, --static-clibs and --static-cclibs to geos-config (#497)
- Early bail out of overlay exception if input is invalid
- C++ API changes:
- New noding::GeometryNoder class
- Added BufferOp::setSingleSided
- Signature of most functions taking a Label changed to take it
by reference rather than pointer.
- Signature of most functions taking an IntersectionMatrix changed
to take it by reference rather than pointer.
- GraphComponent::label is now a Label value (from a pointer)
- NodedSegmentString takes ownership of CoordinateSenuence now
- io::Writer's toString() returns by const ref, write() takes a const ref
- Unify prototypes of WKTReader and WKBReader constructor (#310)
- GeometryCollection::computeEnvelopInternal and
GeometryCollection::compareToSameClass are marked virtual (#478)
- Bug fixes / improvements
- A point interpolated from a line does not always intersect
the same line (#323)
- Port ConvexHull robustness fix from JTS-1.13 (#457)
- Improve Overlay robustness by reducing input precision on topology
exception and by refusing to accept unnoded output (#459)
- Improve Buffer robustness by reducing input precision on topology
exception (#605)
- Mismatch segment sides in OffsetCurveBuilder (#633 )
- Fixed Linear Referencing API to handle MultiLineStrings consistently
by always using the lowest possible index value, and by trimming
zero-length components from results (#323)
- Fixed CMake configuration to set correct SOVERSION (current - age)
- Fix EMPTY return from single-point lines and zero-length polygons (#612)
- CMakeLists.txt, tools/geos_svn_revision_cmake.h.in: Add
geos_svn_revision.h generator to CMake config (#643)
- Makefile.vc 'clean' step leaks obj files (#607)
|
|
- New things:
- CAPI: GEOSBufferWithParams (allows single sided buffers)
- CAPI: GEOSOffsetCurve deprecates GEOSSingleSidedBuffer
- CAPI: GEOSUnaryUnion deprecates GEOSCascadedUnion
- CAPI: GEOSisValidDetail: tell state, reason & location apart. allows
passing flags.
- CAPI: GEOSContext_setNoticeHandler_r, GEOSContext_setErrorHandler_r
- CAPI: GEOSGeom_createEmptyPoint, GEOSGeom_createEmptyLineString
GEOSGeom_createEmptyPolygon, GEOSGeom_createEmptyCollection
- CAPI: GEOSGeom_extractUniquePoints
- CAPI: GEOSGetGeometryN support for single geometries
- CAPI: GEOSPolygonize_full to return all informations computed by
the polygonizer
- CAPI: GEOSOrientationIndex
- CAPI: GEOSSharedPaths to find shared paths and their orientation
- CAPI: GEOSSnap
- CAPI: GEOSRelatePatternMatch
- CAPI: GEOSCovers, GEOSCoveredBy
- CAPI: GEOSRelateBoundaryNodeRule
- PHP: new PHP5 bindings based on CAPI
- Semantic C++ API changes:
- Geometry inheritance chain changed to introduce Puntal, Lineal
and Polygonal classes (virtual inheritance introduced)
- Polygonizer::getInvalidRingLines retains ownership of vector elements
- Geometry::isWithinDistance method is now const
- Polygonizer::getCutEdges returns by const ref
- Polygonizer::getDangles returns by const ref
- Empty LinearRings are closed by definition
- Bug fixes / improvements
- Fixed Geometry.distance() and DistanceOp to return 0.0 for empty inputs
- Invalid compound geometries reported as valid
- Return up to 15 digits of precision from GEOSisValidReason_t
- CAPI: do not leak contexts when using the non-reentrant interface
- Fix duplicated dangles returned by Polygonizer
- Fix SnapIfNeededOverlayOp to throw the originating exception
- Fixed LineMerger to skip lines with only a single unique coordinate
- Fix NodedSegmentString to handle zero-length line segments correctly
(via safeOctant)
- Fixed buffer OffsetCurveSetBuilder to handle "flat" rings correctly
- Added illegal state check in LineSegment::pointAlongOffset()
- Improved performance of RectangleIntersects by always using
segment-scanning and refining SegmentIntersectionTester
- Reduce memory use in PreparedGeometry predicates
- Fix infinite loop in RobustDeterminant with nan/inf input
|
|
Changes in 3.2.0
- Add Single-sided buffer operation
- JTS-1.10 sync ...
- Drastically improved Buffer speed (20x for a case in testsuite)
- Improved EdgeList duplicate edge finding
- Added algorithm::distance package
- Added algorithm::Angle class
- Added algorithm::BoundaryNodeRule class
- IsSimpleOp can now return non-simple location coordinate
- DistanceOp can now check for 'within distance' predicate
(earlier exit)
- MultiPolygon::getBoundary always return MultiLineString, also
when the result is the EMPTY geometry.
- Various bug and leak fixes, optimizations
- Replace MarkupSTL with tinyXML
|
|
|
|
|
|
|
|
|
|
From NEWS:
Changes in 3.0.1
- To be added
|
|
Changes in 3.0.0
These are mostly ABI breaking changes.
In few cases the API also changed, but the most external one
(the documented one) should be unchanged.
- New things:
- Added geom::BinaryOp class performing a binary operation
using different heuristics to reduce probability of robustness
issues. Both C-API and XMLTester now use this class for
binary operations.
- Added covers() and coveredBy() predicates to Geometry class
- Added overlay::overlayOp() adapter class
- Added GEOSSimplify() and GEOSTopologyPreserveSimplify()
to the C API
- Added closed ring checks in IsValidOp
- Multi-input support in XMLTester
- HEXWKB I/O
- Envelope(string) ctor
- Ruby interface
- New ShortCircuitedGeometryVisitor class
- New operation/predicate package
- Added CGAlgorithms::isPointInRing() version working with
Coordinate::ConstVect type (faster!)
- Added getAt(int pos, Coordinate &to) funtion to CoordinateSequence
class.
- Moved GetNumGeometries() and GetGeometryN() interfaces
from GeometryCollection to Geometry class.
- New planarSubgraph class
- New ConnectedSubgraphFinder class.
- New LineSequencer class
- New WKTWriter::toLineString and ::toPoint convenience methods
- New IsValidOp::setSelfTouchingRingFormingHoleValid method
- New WKTWriter::toLineString and ::toPoint convenience methods
- New IsValidOp::setSelfTouchingRingFormingHoleValid method
- New Envelope::centre()
- New Envelope::intersection(Envelope)
- New Envelope::expandBy(distance, [ydistance])
- New LineString::reverse()
- New MultiLineString::reverse()
- New Geometry::buffer(distance, quadSeg, endCapStyle)
- New SnapRounding code
- New size() and operator[] interfaces to CoordinateSequence
- New ScaledNoder class
- New unit tests (make check rule)
- Optimizations:
- WKT parser speedup
- Function inlining
- Coordinate copies reduction
- Heap allocations reduction
- More classes made final
- Better use of standard containers
- Use of singletons when appropriate
- Removed many function calls in loops' end conditions
- Improved XMLTester output and user interface
- Improved memory use in geos::geom::util::PolygonExtractor
- Ported JTS-1.7 version of ConvexHull with big attention to
memory usage optimizations.
- Changed CoordinateArrayFilter to reduce memory copies
- Changed UniqueCoordinateArrayFilter to reduce memory copies
- Added rectangle-based optimizations of intersects() and
contains() ops
- Inlined all planarGraphComponent class
- More iterators returning methods and inlining in planargraph.
- Obsoleted toInternalGeometry/fromInternalGeometry
- Improved buffering speed and robustness by using Snap Rounding
- Semantic changes
- SegmentString: getCoordinates() doesn't return a clone
anymore, getCoordinatesRO() obsoleted.
- JTS packages mapped to geos:: sub-namespaces
- Geometry::getInteriorPoint() returns NULL if called
against an EMPTY geom
- LineString::get{Start,End}Point return NULL for
EMPTY geoms
- GEOSException is now derived by std::runtim_exception
and thrown by const reference.
- Geometry constructors made protected, to force use
of a GeometryFactory.
- Correctness:
- More const-correct signatures
- Stronger methods typing (removed some void * args).
- Changed index-related funx signatures to use size_t
rather then int
- More const-correctness in Buffer "package"
- Bugfix in LineString::getCoordinate() failing to return
NULL from getCoordinat() when empty.
- Use unsigned int for indexes and sizes.
- Layout changes:
- Namespaces mapping JTS packages
- Renamed classes after JTS names (namespaces use made this possible
w/out name clashes)
- Splitted headers, for build speedup and possible API reduction.
- Moved source/bigtest and source/test to tests/bigtest
and test/xmltester
- Moved C-API in it's own top-level dir capi/
- Reworked automake scripts to produce a static lib for each subdir
and then link all subsystem's libs togheter
- Renamed DefaultCoordinateSequence to CoordinateArraySequence.
- Renamed OverlayOp opcodes by prepending the 'op' prefix, and
given the enum a name (OpCode) for type-safety.
- Bug fixes:
- Fixed bug causing redundant linestrings to be returned in the
result of overlaying polygons containing touching holes (#13)
- Fixed integer conversion bug
- Fixed PointLocator handling of LinearRings
- Added missing ::clone() methods for Multi* geoms
- (Partial) Detailed list of changes:
- Changed SegmentNode to contain a *real* Coordinate (not a pointer)
to reduce construction costs.
- Changed geomgraph nodeMap to use Coordinate pointers as keys
- Envelope destructor made non-virtual to give compiler more static
binding options.
- Changed BufferSubgraph::computeDepths to use a set instead of a
vector for checking visited Edges.
- Made LineIntersector a concrete type
- Node::isIncidentEdgeInResult() method made virtual
- Const-correct signatures in LineMerger package
- Changed operation/valid/*NestedRingTester classes interface
to use Coordinate pointers instead of copies.
- Changed EdgeIntersectionList to use a set instead of a vector
- Changed DepthSegment to store a real Coordinate rather then a pointer.
- Changed SubgraphDepthLocater to store real containers rather then
pointers.
- Changed BufferSubgraph to store a real RightmostEdgeFinder and real
containers rather then pointers.
- CoordinateSequence API changes:
- point index and size related functions
use unsigned int rather then int
- Changed EdgeEndStar to maintain a single container for EdgeEnds
- Changed PlanarGraph::addEdges to take a const vector by ref
rathern then a non-const vector by pointer
- Changed EdgeList::addAll to take a const vector by ref
rather then a non-const vector by pointer
- Added apply_rw(CoordinateFilter *) and apply_ro(CoordinateFilter *)
const to CoordinateSequence
- LineBuilder::lineEdgesList made a real vector, rather then pointer
(private member)
- SegmentString::eiList made a real SegmentNodeList, rather then
a pointer (private member)
- Removed coordinate copies in ElevationMatrix::elevate
- Changed CoordinateFilter interface to have a const method
for filter_rw, updated interfaces using this to take
const CoordinateFilter (apply_rw).
|
|
Take maintainership.
Changes in 2.2.3
- CAPI: multiple finishGEOS() calls made harmless.
Changes in 2.2.2
- Added LinearRing::clone
- Added GEOSArea(), GEOSLength(), GEOSEnvelope(), and GEOSGeomType() to C API
- Cleanups in C-API
- Support for gcc-4
- Fixed Polygon::equalsExact
- Fixed bug in NULL-factory Geometry constructor
- Cleanups in SWIG wrappers
- New Ruby bindings
- Enumerated SweepLineEvent's DELETE and INSERT labels
renamed to DELETE_EVENT and INSERT_EVENT.
- Fixed geos-config to use system-specific libs path
- Accept correct WKT format for MultiPoints
- SRID support in (E)WKB reader.
Changes in 2.2.0
- Higher dimensions interface for CoordinateSequence
- Added getCoordinatesRO for Point class
- NEW WKB IO
- NEW Simplified and stabler C API
Changes in 2.1.4
- Severe BUGFIX in BufferSubgraphGT and other functions used
as StrictWeakOrdering predicates for sort()
Changes in 2.1.3
- XMLTester installed by default
- New Node::isIncidentEdgeInResult() method
Changes in 2.1.2
- Added multipolygon buffering test in source/test/testLeaksBig
- Ported JTS robustness patch for RobustLineIntersector
- Removed useless Coordinate copies in OverlayOp::mergeZ()
- Avoided throws by IsValid on invalid input
- Stricter C++ syntax (math.h=>cmath, ieeefp.h in "C" block, ostringstream
instead of sprintf)
- Better support for older compilers (Polygonizer::LineStringAdder friendship)
- Removed useless Coordinate copies in CGAlgorithms::isOnLine()
- Added support for polygonize and parametrized buffer tests in XMLTester
- Fixed Z interpolation in LineIntersector
- Made polygon::getBoundary() always OGC-valid (no LinearRings)
- Input checking and promoting in GeometryFactory::createMultiLineString()
- Segfault fix in GeometryEditor::editPolygon()
Changes in 2.1.1
- Fixed uninitialized Coordinate in TopologyException
- Added install of version.h, platform.h and timeval.h
- Z interpolation in overlay operations
Changes in 2.1.0
- Added Polygonizer and LineMerger classes.
- python wrapper examples
- Z support in overlay operations.
|
|
GEOS (Geometry Engine - Open Source) is a C++ port of the Java
Topology Suite (JTS). It contain the complete functionality of JTS in
C++. It includes all the OpenGIS "Simple Features for SQL" spatial
predicate functions and spatial operators,and JTS topology functions
like IsValid().
|