Improvements
    
- 
          526
          New line interpolate algorithm.
        
      Solved issues
    
- 
          450
          Not supported negative distance in geodesic direct formulas.
        
- 
          466
          Invalid result of spherical/geographic disjoint(box, polygon).
        
- 
          547
          Undefined behavior in rtree constructed with zip_iterator.
        
- 
          560
          Inaccuracy of karney_direct formula.
        
- 
          577
          R-tree with interprocess allocator compilation error with clang.
        
- 
          579
          Invalid result of spherical/geographic disjoint(segment, box).
        
      Bugfixes
    
- 
          538
          Workaround for msvc-12 faulty array initialization.
        
- 
          553
          Pass spheroid correctly in geographic comparable strategies.
        
- 
          570
          Fix for spherical/geographic distance between geometries.
        
- 
          571
          Fix nan result in geographic distance.
        
- 
          Workarounds in R-tree for compilation errors with gcc-4.6 and msvc-10,
          11, 12.
        
      Changes in behavior
    
- 
          Different strategies expected in envelope for some combinations of geometries.
        
      Improvements
    
- 
          486
          Karney's solution of direct geodesic problem for internal use (thanks to
          Adeel Ahmad).
        
- 
          490
          Discrete Frechet and Hausdorff distance algorithms (thanks to Yaghyavardhan
          Singh Khangarot).
        
- 
          496
          New run-time and upgraded compile-time SRS transformation interfaces (undocumented
          for now due to potential interface changes).
        
      Solved issues
    
- 
          520
          Missing documentation for dsv().
        
- 
          521
          Wrong documentation description for distance().
        
- 
          524
          Fixed 'enumeration values not handled in switch' warnings.
        
- 
          527
          Workaround for VS 2017 (msvc-15).
        
      Bugfixes
    
- 
          505
          Fixed overflow in overlay algorithms (thanks to Dane Springmeyer).
        
- 
          518
          Fixed passing of temporaries in append() (thanks to xventura81).
        
- 
          522
          Support python3 in building documentation.
        
      Improvements
    
- 
          469
          Horizontal grid shift (nadgrids) in SRS transformations (undocumented for
          now due to potential interface changes).
        
- 
          478
          Box-Segment distance for spherical and geographic coordinate systems.
        
- 
          487
          Missing combinations of geometries in distance for spherical and geographic
          cs
        
- 
          489
          Additional direct geodesic problem formulas for internal use
        
      Solved issues
    
- 
          470
          Assertion failure with short spherical and geographic segments.
        
- 
          471
          Invalid envelope of spherical polygon
        
- 
          498
          Unexpected results with expand() and make_inverse() for spherical and geographic
          CS
        
- 
          504
          Unused parameter warnings.
        
      Bugfixes
    
- 
          488
          Handle non-true-references in closing_iterator and ever_circling_range_iterator
        
- 
          495
          VxWorks 7 cross-compilation issue.
        
      Improvements
    
- 
          New map projection and SRS transformation representations (undocumented
          for now due to potential interface changes).
        
- 
          New densify() algorithm.
        
- 
          No longer using std::iterator (thanks to Daniela Engert).
        
- 
          No longer using allocator directly in the rtree. Replaced with boost::container::allocator_traits
          (thanks to Daniela Engert).
        
- 
          Default rtree allocator changed to boost::container::new_allocator to still
          support move semantics emulation in C++03 with boost::container::allocator_traits.
        
- 
          Area strategies interface changed. This is potentially a breaking change.
        
- 
          Radius or Sphere can be passed into spherical strategies.
        
- 
          Added Point-Box and Box-Box spherical and geographic distance() strategies.
        
- 
          Simplify (multi)polygons will discard output rings of 2 points or (for
          closed polygons) 3 points, but it tries to avoid creating those
        
- 
          Simplify (multi)polygons will omit empty interior rings or polygons from
          output
        
      Solved issues
    
- 
          13386 Workaround
          for some gcc compilers
        
- 
          13381 Compile
          error with matrix_transformer in Visual C++ 2015
        
- 
          13436 Incorrectness
          in boost::geometry::model::polygon documentation
        
      Bugfixes
    
- 
          Add missing strategy resolving in length() algorithm, affecting Variant
          support.
        
- 
          Simplify (multi)polygons now simplifies closing point
        
      Changes in behavior
    
- 
          Simplify (multi)polygons now usually rotates input rings before simplifying
          to select a non collinear point on its convex hull. This improves output.
        
      Improvements
    
- 
          Add distance for geographic PointLike/AnyGeometry.
        
      Solved issues
    
- 
          12503 Validity
          of complex polygon
        
      Bugfixes
    
- 
          Fixes in validity of union/intersection/difference which were sometimes
          invalid. In most cases, results are valid now.
        
- 
          Fixes in validity of buffer which were sometimes invalid. In most cases,
          results are valid now.
        
- 
          Fixes in results of union/intersection/difference which could be incorrect
          in very complex cases
        
- 
          Fixes in set and relational operations for non-cartesian coordinate systems.
        
      Improvements
    
- 
          Add correct() overload taking area strategy
        
- 
          Add is_convex() overload taking side strategy
        
- 
          Add missing relational operations (covered_by, crosses, equals, etc.) for
          MultiPoint/AnyGeometry
        
      Solved issues
    
- 
          12410
          Lack of support of geographic coordinate system in correct()
        
- 
          13035
          Wrong result of non-cartesian intersection strategies for segments near
          poles.
        
- 
          13057
          Wrong result of intersects() for linestrings caused by numerical issue
          in disjoint() for boxes.
        
      Bugfixes
    
- 
          Fix is_valid which could return false for multipolygons where an interior
          ring touches another interior ring
        
- 
          Fix is_valid which could return false for multipolygons where a polygon
          was located in an interior ring, all touching each other
        
- 
          Fix union which could produce invalid results (for some cases, this needs
          to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS)
        
- 
          Fix intersection (idem), but some cases are still not yet valid
        
- 
          Fix difference (idem), but some cases are still not yet valid
        
- 
          Fix propagation of area strategy into the internals of various algorithms
          from intersection strategy
        
- 
          Fix uninitialized variable in relate and reference to temporary in overlay
        
- 
          Fix error in disjoint for geographic Segment/Box
        
- 
          Fix handling of non-cartesian geometries in various algorithms
        
      Improvements
    
- 
          matrix transformation is now based on Boost.QVM instead of Boost.Ublas
        
      Breaking changes
    
- 
          ublas_transformer is renamed to matrix_transformer
        
- 
          explicit modifier is added to constructors of rtree index::dynamic_* parameters
        
- 
          strategy::area::huiller replaced by strategy::area::spherical
        
      Solved issues
    
- 
          363
          Missing includes in geometry/index/parameters.hpp
        
- 
          364
          within(Linear, Areal) compilation error when arguments use different point
          types
        
- 
          370
          Buffer Seg Faults with Ring as Input
        
      Solved tickets
    
- 
          11899
          boost::geometry::equals doesn't handle open polygons
        
- 
          11930
          Inaccuracy of area::huiller strategy
        
- 
          11931
          Wrong spherical area with pole encircling polygons
        
- 
          12566
          Ambiguous template instantiation in equal_to<> when pair value contains
          raw pointer
        
- 
          12861
          Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
        
- 
          12885
          Use BOOST_THROW_EXCEPTION instead of throw
        
      Bugfixes
    
- 
          Fix distance_measure in get_turn_info
        
      Improvements
    
- 
          Intersection: take care that output is valid (work in progres, not yet
          finished - but more is valid)
        
      Solved tickets
    
- 
          12289
          Avoid warning/compilation error for std::cout
        
- 
          12412
          Invalid result of covered_by() with geographic Points and Boxes
        
- 
          12413
          rtree::remove() not working properly with geographic Points
        
      Improvements
    
- 
          Union: take care that output is valid (with some exceptions), also with
          self-tangent polygons or shared edges
        
- 
          SVG: support boost::variant of geometries
        
- 
          SVG: coordinates are now written as double (by default) to svg
        
- 
          Rename namespace concept to concepts to avoid conflicts with the newest
          compilers
        
- 
          New spherical intersection strategy used in relational and set operations
          for spherical and geographic Geometries (previously cartesian intersection
          strategy was used for all coordinate systems).
        
      Solved tickets
    
- 
          12189
          Relational operations not compiling when point types of inputs are different
          (cartesian, affecting rtree)
        
- 
          12287
          Invalid result of rtree.query() for contains() predicate
        
- 
          12342
          Relational operations not compiling when point types of inputs are different
          (geographic, affecting rtree)
        
      Additional functionality
    
- 
          Support within and covered_by for Box/Box in spherical and geographic coordinate
          systems.
        
      Improvements
    
- 
          Overlay: handle_tangencies replaced by clusters, fixing many cases with
          colocated turns
        
      Solved tickets
    
- 
          9162
          Invalid result of relational operations for non-cartesian Point/Areal.
        
- 
          10866
          union_ doesn't work in 1.56 and 1.57.
        
- 
          11018
          Invalid geometry intersection
        
- 
          11576
          Intersection gives wrong results.
        
- 
          11637
          Unused parameter warning.
        
- 
          11725
          union_ fails to create holes
        
- 
          11789
          Assertion failure or invalid result of set operations for spherical_equatorial
          coordinate system.
        
- 
          11917
          Andoyer distance strategy returns 0 for antipodal points (default geographic
          distance).
        
- 
          11928
          Improvement of the accuracy of surveyor (cartesian) area strategy.
        
- 
          11966
          Compilation error in svg() for box and non-int coordinate type.
        
- 
          11984
          union_() generates self-intersecting polygon
        
- 
          11987
          rtree::remove() not compiling for geographic CS.
        
- 
          12000
          Uninitialized reference in (unused) constructor of relate's mask_handler.
        
- 
          12106
          Invalid assertion failure in envelope() for non-cartesian very short segments.
        
      Bugfixes
    
- 
          Fix intersects and disjoint for Segment/Box in cartesian coordinate system
          when Segment is parallel to Box's face.
        
- 
          Fix relation operations for Point/Areal in spherical and geographic coordinate
          systems for edge cases.
        
- 
          Fix intersects and disjoint for Point/Box and Box/Box in spherical and
          geographic coordinate systems for some cases.
        
- 
          Fix within and covered_by for Point/Box in spherical and geographic coordinate
          systems for some cases.
        
      Solved tickets
    
- 
          10803
          Union algorithm returning invalid geometry
        
- 
          11522
          Namespace clash in buffer for traits::detail
        
- 
          11533
          Assert failure in rtree caused by a bug in remove() if min elements number
          is 1
        
- 
          11607
          Private geometry::exception::what()
        
- 
          11709
          is_simple segfault
        
- 
          11710
          is_simple - empty geometry logic
        
- 
          11711
          is_simple and is_valid - Points that are NaN or Infinity
        
      Bugfixes
    
- 
          Fix colocations of touching interior ring / exterior ring, where it also
          touches another polygon
        
- 
          Fix removing values from an empty rtree - no effect and 0 returned instead
          of assertion failure
        
- 
          Fix segfault in centroid for multi geometries containing empty single geometries
          (thanks to Jiri Drbalek)
        
- 
          Fix liang_barsky strategy for integral coordinates (thanks to Dane Springmeyer)
        
      Additional functionality
    
- 
          Added rtree const_iterator, begin(), end() and the support for Boost.Range.
        
- 
          The support for C++11 std::initializer_listin geometries models.
- 
          Disjoint and intersects support the following geometry combinations: multipoint/linestring,
          multipoint/multilinestring.
        
- 
          Added relate() and relation() algorithms.
        
- 
          Intersection has been implemented for combinations of pointlike and linear
          geometries
        
- 
          Added implementation for difference(pointlike, linear)
        
- 
          New algorithm is_empty, returning true if the geometry represents the empty
          set
        
- 
          The envelope algorithm supports pointlike and linear geometries in the
          spherical equatorial coordinate system
        
- 
          The envelope algorithm supports pointlike geometries in the geographic
          coordinate system
        
      Improvements
    
- 
          Upgraded rtree const_query_iterator category to ForwardIterator.
        
- 
          Buffer performance of buffers around multi-points is improved significantly
        
      Breaking changes
    
- 
          buffer side strategy now returns error_code instead of bool. If you have
          your own custom side strategy, it should be adapted
        
      Solved tickets
    
- 
          11113
          Support easy enumeration of all elements with BOOST_FOREACH
        
- 
          11232
          Feature request - relate()
        
- 
          11236
          Invalid result of centroid() for integer coordinate type
        
- 
          11268
          Regression in boost::geometry::intersection interface with multi_linestring
          and box -- does not compile on 1.57 VS 1.55
        
- 
          11332
          Assertion failure in buffer for extreme coordinate differences
        
- 
          11346
          Segment iterator does not work with ranges returning values instead of
          references
        
- 
          11436
          sym_difference(py1, py2, mpy) returns invalid multipolygon
        
      Bugfixes
    
- 
          Buffer: use a more robust way to calculate the side of an intersection,
          this fixes several errors in buffer generation
        
- 
          Fix in selection of segment to which calculate from IP from, in intersection
          of two segments. Now is selected the one close to a segment-point point,
          or else the one on the shortest segment. This avoids (rarely occuring)
          generation of tiny triangles making output polygons invalid
        
- 
          In rescaling round instead of truncate to the integer grid (this fix and
          the previous mentioned can have some impact on output geometries)
        
- 
          Fix potential infinite loop in detail::has_spikes (the loop can happen
          if the points passed have NaN coordinates)
        
      Additional functionality
    
- 
          New algorithm num_segments, returning the number of segments of a geometry
        
- 
          New overload for is_valid algorithm, that takes a string reference as a
          second argument and fills it with a message related to the validity or
          invalidity of the geometry
        
- 
          New overload for is_valid algorithm, that takes an enum reference as a
          second argument and fills it with a value related to the validity or invalidity
          of the geometry
        
- 
          Disjoint and intersects support the following geometry combinations: point/multipoint,
          multipoint/multipoint, multipoint/segment, multipoint/box
        
      Improvements
    
- 
          Buffer now supports flat-ends for linestrings with a bend close to the
          start (such that buffered segment crosses flat-end).
        
- 
          Buffer performance is improved significantly
        
- 
          Partition performance is improved significantly for polygons, potentially
          enhancing all overlay operations
        
      Solved tickets
    
- 
          8379
          Invalid comparison of the result of determinant
        
- 
          10108
          Error in overlay operations in specific cases where geometries touch at
          one point
        
- 
          10201
          Suggestion to use different function to compare coordinates [wontfix]
        
- 
          10467
          Template parameter name coliding with B0 macro name defined in termios.h
        
- 
          10640
          Invalid result of buffer() for CCW Polygons.
        
- 
          10666
          MSVC compiler warning C4127: conditional expression is constant
        
- 
          10747
          Error in rescaling causing errors in areal/areal set operations
        
- 
          10770
          Buffer fails for large distances, or rough round joins, where concavities
          where not intersected properly
        
- 
          10658
          sym_difference yields bad result for int polygons
        
- 
          10835
          Difference of multilinestring and polygon yields wrong result
        
- 
          10861
          Rtree failing to compile for Value being a pair or a tuple containing pointer
          to Geometry and the default equal_to<> used
        
- 
          10863
          Template parameter name coliding with B0 macro name defined in termios.h
          (duplicate of 10467)
        
- 
          10887
          Invalid result of within() and relate() for Linear/MultiPolygon
        
- 
          10890
          Invalid result of disjoint() for Point/Segment.
        
- 
          10904
          Invalid calculation of most significant Dimension of a segment in relate_cartesian_segments
          strategy
        
- 
          10912
          Invalid result of within() and relate() for Areal/Areal
        
- 
          10951
          Tests failing on windows with intel compiler due to lack of /bigobj flag.
        
- 
          10957
          Assertion failure and invalid results of various relational operations.
        
- 
          10958
          Invalid results of disjoint() L/L and L/A.
        
- 
          10959
          Assertion failure in get_turns() used with no_rescale_policy.
        
- 
          10960
          Invalid result of get_turns() for L/A, missing turn.
        
- 
          10961
          Invalid result of get_turns() for L/A, invalid turn for a Linear spike.
        
- 
          11112
          Compilation failure on Solaris due to a CS name clash (used for a macro
          on this platform)
        
- 
          11121
          Invalid result of difference() for integral coordinates
        
      Bugfixes
    
- 
          Bug in multipoint/polygon multipoint/multipolygon distance computation
          (wrong detection of points inside the areal geometry)
        
- 
          Bug in flatten_iterator's assignment operator causing an access violation
        
- 
          Bug in Cartesian segment-segment intersection strategy when one segment
          degenerates to a point and is collinear to the other non-degenerate segment
        
- 
          Bug in centroid(), non-deterministic result if calculated for e.g. a Polygon
          with zero-area.
        
- 
          Bug in buffers for joins with a limited number of points
        
- 
          Bug in buffers for round joins with limited number of points around sharp
          corners
        
- 
          Bug in buffers for joins with large buffer distances
        
- 
          Bug in buffers for round ends with an odd number of points
        
- 
          Bug in buffers for flat ends with large buffer distances
        
- 
          Bug in buffers for interior rings with large negative buffer distances
        
- 
          Bug in closing_iterator not working properly when the input range is empty
        
- 
          Bug in is_simple, not handling properly closed simple linestrings within
          multilinestrings
        
- 
          Bug in rtree constructors taking a pair of Iterators or a Range (packing
          algorithm), the use of reference to destroyed temporary when Iterator's
          reference is not true reference, e.g. for some of the Range Adaptors. It
          also affects distance() and comparable_distance(). This bug may cause unexpected
          behavior of the rtree or distance() algorithm, e.g. an assertion failure
          or a SEGFAULT.
        
- 
          Bug in rtree count() member function, the use of reference to destroyed
          temporary when object of type convertible but not the same as value_type
          or indexable_type is passed. If this happens, wrong result may be returned,
          in most cases 0.
        
- 
          Bugs related to the handling of Ranges, preventing compilation of Geometries
          using non-Container Ranges in some algorithms (thanks to Samuel Debionne)
        
      Improvements
    
- 
          The support of parameters convertible to value_type in rtree insert(),
          remove() and count() functions
        
- 
          Support for counterclockwise input/output in algorithm buffer
        
- 
          Support for open-geometry input in algorithm buffer (open output not yet
          supported)
        
- 
          Support for degenerate input (point-like linestrings, polygons) in algorithm
          buffer
        
      Solved tickets
    
- 
          6443
          Wrong degenerated hulls returned by convex_hull().
        
- 
          8402
          Implicit conversion warnings
        
- 
          9354
          Bug in winding strategy affecting within() and covered_by() for non-cartesian
          coordinate systems
        
- 
          10177
          Missing include
        
- 
          10345
          Distance fails to compile for some coordinate types
        
- 
          10398
          Wrong neighbour check in buffer, calculating turns
        
- 
          10421
          Invalid Point-Box distance for spherical CS
        
- 
          10562
          Invalid number of Points in the result of convex_hull() for open output
        
- 
          10615
          Rtree constructor feature request
        
- 
          10643
          Invalid point_on_surface() result for big coordinates
        
- 
          10647
          Invalid result of disjoint() in some cases when polygon is inside inner
          ring of other polygon
        
- 
          10668
          Implicit conversion warnings (duplicated 8402)
        
      Bugfixes
    
- 
          Several fixes of bugs in algorithm buffer
        
- 
          Bug in point_on_surface() for CCW Polygons (extreme_points()) and numerical
          issue (thanks to Matt Amos)
        
- 
          Bug in disjoint() for A/A fixed by replacement of point_on_surface() with
          point_on_border() (thanks to Matt Amos)
        
- 
          The result of convex_hull(), duplicated Point in open output, too small
          number of Points for 1- and 2-Point input
        
- 
          Imprecision for big coordinates in centroid(), fixed by Points translation
          (related with ticket 10643)
        
- 
          for_each_segment() not taking into account the last segment of open Geometry
        
      Additional functionality
    
- 
          New algorithm buffer for inflating/deflating geometries (buffer itself
          already existed but that was only to enlarge a box)
        
- 
          New algorithm remove_spikes, algorithm to remove spikes from a ring, polygon
          or multi_polygon
        
- 
          New algorithm point_on_surface, generating a point lying on the surface
          (interior) of the polygon
        
- 
          New algorithm is_simple, returning true if a geometry is simple according
          to the OGC standard
        
- 
          New algorithm is_valid, returning true if a geometry is valid according
          to the OGC standard
        
- 
          New algorithm crosses for checking this spatial relation according to the
          OGC standard
        
- 
          The set operation algorithms (difference, intersection, sym_difference
          and union_) now support as input pairs of pointlike or linear geometries
        
- 
          The distance and comparable_distance algorithms now support all pairs of
          geometry combinations
        
- 
          The spatial relations which didn't support it (covered_by, touches, within,
          etc.) now support as input linear and/or areal geometries
        
- 
          The support for boost::variants as input geometries in various algorithms
        
- 
          The rtree support for indexing segments
        
- 
          The rtree nearest() predicate support for arbitrary geometries
        
      Improvements
    
- 
          The rtree pack-creation algorithm optimization (thanks to Lu Wang)
        
      Solved tickets
    
- 
          8310
          Wrong results with overlapping polygons (fixed using point_on_surface for
          disjoint)
        
- 
          8375
          sym_difference of non-closed polygons returns closed polygon
        
- 
          8376
          difference of non-closed polygons returns closed polygon
        
- 
          9081
          Booleans create self-intersecting polygons from non-self-intersecting polygons
        
- 
          9245
          Check for process errors in make_qbk.py
        
- 
          9563
          (Sym)difference not successful, fixed by rescaling to robust type
        
- 
          9628
          Wrong result of within() due to the winding strategy not working correctly
          for nearly-horizontal segments
        
- 
          9828
          boost::geometry::union_(...) creates redundant closing point
        
- 
          9871
          Remove spike in polygon with only a spike
        
- 
          9941
          Add support for touches(box, box)
        
- 
          9947
          Missing info about WKT in documentation
        
- 
          9759
          Invalid results of R-tree knn queries for non-cartesian coordinate systems
        
- 
          10019
          Difference of Linestring and Box returns their intersection
        
- 
          10077
          Wrong types in concept checks in boost/geometry/arithmetic/arithmetic.hpp
        
- 
          10234
          Wrong results of covered_by() for nearly-horizontal segments
        
      Bugfixes
    
- 
          intersects(polygon) could return a self-intersection-point for its closing
          point, fixed
        
- 
          equals() could return invalid results for non-simple linear geometries
          according to the OGC standard, fixed
        
- 
          touches() didn't work properly for CCW areal geomtries, fixed
        
- 
          rtree nearest queries returned wrong elements for non-cartesian coordinate
          systems, fixed
        
- 
          rtree crashed in some cases when used with Interprocess allocator, fixed
        
      Additional functionality
    
- 
          Added centroid for segment type
        
- 
          Added intersects() and disjoints() for Segment-Box and Linestring-Box
        
- 
          Added rtree creation using packing algorithm
        
- 
          Added contains() and covers() spatial query predicates
        
- 
          Added iterative queries
        
      Documentation
    
      Bugfixes
    
- 
          In some cases .back() or .clear() was called, violating the usage of Concepts.
          Fixed for the reported cases
        
- 
          Use consistent side information in cart_intersect and get_turn_info and
          handle_tangencies and enrich_intersection_info. This is done by switching
          to integer (if necessary) for the specific 6 points only, zooming in on
          the 4 or 3 segments
        
      Solved tickets
    
- 
          6958
          Intersection generates self-intersection. Caused by spike, fixed
        
- 
          8364
          Invalid input exception, caused by spikes in previous steps, fixed
        
- 
          8365
          Invalid input exception, caused by spikes in previous steps, fixed
        
- 
          8969
          boost::geometry::model::point single argument constructor should be explicit
        
- 
          8825
          Patch adding member variable documentation to doxygen_xml2qbk
        
- 
          8652
          Intersection fails for triangle-triangle intersection. Caused by spike,
          fixed
        
- 
          9047
          Boost files that include themselves (strategies/intersection.hpp), fixed
        
      Internal changes
    
- 
          Adapted projected_point<> distance strategy, point-type in template
          is replaced by calculation-type
        
- 
          Adapted transform strategies, they have points now as member-template,
          and calculation-type as template. Similar to what was done for projected_point
          distance
        
- 
          Spikes (could be generated in difference) in integer-based overlays are
          now avoided during generation
        
- 
          Cleanup, removed old MSVC2005 project files
        
- 
          R*-tree balancing algorithm optimized
        
      Additional functionality
    
- 
          added Spatial Index, developed for Boost.Geometry by Adam Wulkiewicz. The
          spatial index was originally started by Federico J. Fernandez during the
          Google Summer of Code 2008 program, mentored by Hartmut Kaiser.
        
- 
          added SVG-output, this was already in extensions for several years
        
      Documentation
    
- 
          small fixes of missing words
        
- 
          fixes in doc of template parameters (convex_hull, exterior_ring, return_buffer)
        
      Bugfixes
    
- 
          collinear opposite segments did sometimes (in circles) have a robustness
          issue, fixed
        
- 
          fixed insertion of false intersection point (found by buffer)
        
- 
          applied patch of Vladimir Petrovic for debugging traversals
        
      Solved tickets
    
- 
          7462
          degenerate union result for float, fixed
        
- 
          7465
          wrong construtors access type in scale_transformer class, fixed
        
- 
          7802
          cart_intersect.hpp unused parameter warnings, fixed
        
- 
          8254
          faulty intersection, fixed
        
- 
          8393
          polygon model doesn't adhere to stated Polygon concept rules, doc updated.
        
- 
          8403
          silenced compiler warning C4127: conditional expression is constant
        
- 
          8405
          silenced compiler warning C4189: '...' : local variable is initialized
          but not referenced
        
      Internal changes
    
- 
          Made several algorithms variant-aware (append, area, clear, convert, equals,
          length, num_points)
        
      Bugfixes
    
- 
          avoid generating output polygons with interior rings below minimum size
          (e.g. one or two points)
        
- 
          geometry::disjointfor degenerate segments (patched
          by Karsten Ahnert)
- 
          problem in geometry::differencefor missing handling tangency,
          reported by H2
- 
          fixed geometry::for_eachfor use with Lambda's
- 
          fixed geometry::comparable_distancepoint-linestring
          (and -range, -polygon)
      Additional functionality
    
- 
          combinations for geometry::disjoint:
          point/ring, point/polygon, point/multi_polygon
- 
          combinations for geometry::intersects:
          point/ring, point/polygon, point/multi_polygon
      Internal changes
    
- 
          updates in specializations/not_implemented for various algorithms (as in
          an earlier version, these changes are still going on; they take care for
          simplified structs, better error reporting, and automatized documentation)
        
- 
          fixes in unit tests
        
      Breaking changes
    
- 
          points accessed through a pointer (e.g. in a linestring) should now be
          specialized without the pointer. In previous versions a type my_pointused likelinestring<my_point*>had to be specalized like:template<>
          struct tag<my_point*>. Now the library itself removes the
          pointer before calling the traits class, so now it should be like:template<>
          struct tag<my_point>
      Bugfixes
    
- 
          intersection was sometimes wrong for integer points, fixed
        
- 
          documentation, order of parameters in simplify was wrong, fixed
        
      Solved tickets
    
- 
          7030
          spherical distance, fixed (by patch of Karsten Ahnert)
        
      Bugfixes
    
- 
          the return type of comparable projected point strategy for integer points
          was wrong (integer), fixed
        
- 
          several robustness issues in intersection of segments and polygons, fixed
        
- 
          invalid intersection output is filtered out
        
- 
          disjoint for multi_polygon's might incorrectly return true, fixed
        
      Solved tickets
    
- 
          6585
          patch for alternative syntax multipoint, applied
        
- 
          6584
          patch for bug in distance, applied
        
- 
          5730
          same issue as 6584, fixed
        
- 
          6166
          patch for missing transformation, applied
        
- 
          6696
          invalid intersection output, was (by chance) already fixed in Trunk before
          reported
        
      Additional functionality
    
- 
          added algorithm "touches" (OGC SF compliant) for *polygon/*polygon
        
      Breaking changes
    
- 
          point_xy was accidentally included in one of the headerfiles. If the point_xy
          class is used, it should be included explicitly now.
        
      Bugfixes
    
- 
          bugfix: distance for multi-geometries ignored specified distance strategy.
          Fixed
        
- 
          bugfix: difference for polygon/multi_polygon (reported 2011/10/24 on GGL-list)
        
- 
          bugfix: raise exception for calculation of distances of multi-geometrie(s)
          where one of them is empty
        
- 
          bugfix: multi DSV did not correctly use settings, fixed
        
- 
          bugfix: self-intersections could sometimes be missed (introduced in 1.48),
          fixed
        
- 
          bugfix: convex hull crashed on empty range (e.g. empty multi point), fixed
        
- 
          bugfix: area/centroid/side/intersection/distance did not work for "int"
          type filled with large (but not overflowing) integers. Fixed.
        
- 
          bugfix: disjoint/intersect did not work for degenerate linestrings. Fixed.
        
- 
          bugfix: covered_by did not compile for a ring. Fixed.
        
      Solved tickets
    
- 
          6019
          convex_hull / area, fixed.
        
- 
          6021
          convex_hull / append (multipoint), fixed.
        
- 
          6028
          Documentation: closure, fixed.
        
- 
          6178
          Missing headerfile, fixed.
        
      Additional functionality
    
- 
          support for line/polygon intersections and differences
        
- 
          support for convert of segment/box of different point types
        
- 
          support for append for multi point
        
- 
          the scalar function distance now throws an empty_input_exception on empty
          input
        
      Documentation
    
- 
          updated support status in several algorithms
        
- 
          updated conformance to OGC or std
        
- 
          other updates and fixes
        
      Internal changes
    
- 
          updates in specializations/not_implemented for distance/convert/assign/area/with/covered_by
        
- 
          move of wkt/dsv to io folder, making domains redundant
        
- 
          warnings: strategy concepts assigned to zero to avoid clang warnings (patched
          by Vishnu)
        
- 
          warnings: there were several unused parameters, for which gcc/clang warned
          (patched by Christophe)
        
      Bugfixes
    
- 
          Robustness issue, in some circumstances the union failed to output. Fixed.
        
- 
          Robustness issue, in some circumstances the calculated intersection point
          was outside the segment. Fixed.
        
- 
          Concept issue, cartesian intersect didn't understand segments other than
          the provided one. Fixed.
        
- 
          Sometimes self-intersections in linestrings were missed. Fixed.
        
- 
          The fusion coordinate system was not registered correctly. Fixed.
        
      Solved tickets
    
- 
          5726
          Segment intersection algorithm still assumes 'first', 'second' members
        
- 
          5744
          Mistake in fusion adapt example
        
- 
          5748
          Needed to include <boost/foreach.hpp>
        
- 
          5954
          distance_pythagoras skips sqrt() step
        
      Improvements on algorithms
    
- 
          Checking self-intersections is now not done automatically, this can blast
          performance.
        
- 
          Besides that, checking self-intersections is made faster.
        
- 
          Intersections now avoid outputting duplicate points. So they output the
          minimal set.
        
      Additional algorithms
    
- 
          covered_by: within is defined as "within, not on boundary". covered_by
          is "within or on boundary"
        
      Additional functionality
    
- 
          within: strategies can now be specified for within<point, box> and
          within<box, box>
        
- 
          convert: a much broader range of conversions is supported
        
- 
          assign: idem, (currently partly) synonym for convert (but reversed arguments)
        
      Additional coordinate types
    
- 
          Basic (limited) support for Boost.Rational
        
      Original release