All Versions
Latest Version
Avg Release Cycle
139 days
Latest Release
195 days ago

Changelog History
Page 4

  • v0.3.7 Changes

    March 12, 2012
    • Marshal and YAML serialization now fully implemented for geometries.
    • The spatial predicates for objects using the 4D (ZM) Geos factory almost always returned false because they weren't casting correctly. Fixed.
    • Proj#canonical_str and the Geos implementations of Geometry#as_text were returning strings encoded as "ASCII-8BIT", which was causing strange binary output in YAML serialization, among other things. Now fixed. These strings are now encoded as "US-ASCII".
    • YAML serialization for 4D (ZM) Geos factories didn't preserve coordinate systems. Fixed.
  • v0.3.6 Changes

    March 06, 2012
    • Geometry#relate? was incorrectly spelled "Geometry#relate" in the Feature::Geometry module and in some (but not all) implementations, leading to various types of method not found errors. Fixed. We'll keep #relate as a deprecated alias for the time being.
    • ๐Ÿ›  Cloning a Geos CAPI factory caused a segfault. Fixed.
    • ๐Ÿ“œ Parsing a "well-known" format string using the ffi-geos implementation returned the low-level ffi-geos object rather than the RGeo feature if the generator was set to :geos. Fixed.
    • GeometryCollection#each now returns an Enumerator if no block is given.
    • Pure Ruby factories (simple_spherical, simple_cartesian) now support a :uses_lenient_assertions option, which disables assertion checking on LinearRing, Polygon, and MultiPolygon construction, since those checks can be expensive for large geometries.
    • ๐Ÿ—„ Fixed Rails 3.2 deprecation warning in SRSDatabase::ActiveRecordTable.
    • โœ… Fixed an issue with the ActiveRecordTable tests on ActiveRecord 3.2.
    • ๐Ÿ‘ Further work towards YAML and mashal serialization support. Factories are now done, but geometries are not. I'm working actively on geometry serialization; it should be in place in the next release.
  • v0.3.5 Changes

    February 27, 2012
    • ๐Ÿ“š Reworked the terminology on equivalence levels. The documentation now names the three levels "spatial", "representational", and "objective" equivalence.
    • Some geometry implementations didn't implement the == operator, resulting in various problems, including inability to set ActiveRecord attributes when using an implementation (such as simple_spherical polygons) that doesn't provide spatial equivalence tests. Fixed. The interfaces now specify that all implementations must implement the == operator and the eql? method, and should degrade to stronger forms of equivalence if weaker forms are not available. (Reported by Phil Murray.)
    • โœ… Added Geometry#rep_equals? to test representational equivalence without the fallback behavior of Geometry#eql?
  • v0.3.4 Changes

    February 21, 2012
    • The FFI-GEOS implementation now uses prepared geometries.
    • ๐Ÿ›  Fixed a segfault that sometimes happened when passing a non-GEOS geometry as an argument to a GEOS function under Ruby 1.8.7. (Reported by Greg Hazel.)
    • A few minor optimizations in the C extension for GEOS.
  • v0.3.3 Changes

    December 19, 2011
    • Recognizes MultiPoint WKTs in which individual points are not contained in parens. This is technically incorrect syntax, but apparently there are examples in the wild so we are now supporting it. (Reported by J Smith.)
    • The Geos CAPI implementation sometimes returned the wrong result from GeometryCollection#geometry_n. Fixed.
    • ๐Ÿ›  Fixed a hang when validating certain projected linestrings. (Patch contributed by Toby Rahilly.)
    • โšก๏ธ Several rdoc updates (including a contribution by Andy Allan).
    • โš  Separated declarations and code in the C extensions to avert warnings on some compilers.
  • v0.3.2 Changes

    August 11, 2011
    • Some objects can now be serialized and deserialized via Marshal or YAML. Supported objects include OGC coordinate systems, Proj4 coordinate systems, and WKRep parsers/generators. Factories and geometries will be supported shortly.
    • The GEOS CAPI implementation can now use prepared geometries to speed up certain operations. The GEOS FFI implementation will do the same shortly.
    • ๐Ÿ›  Calling dup on a Proj4 object caused a segfault. Fixed.
    • ๐Ÿ›  Fixed an exception in RGeo::Cartesian::BoundingBox#to_geometry. (Thanks to Travis Dempsey.)
    • WKTGenerator generated incorrect tag names for subtypes of LineString. Fixed.
    • Installation automatically finds the KyngChaos GEOS and Proj4 frameworks for Mac OS X. (Thanks to benchi.)
  • v0.3.1 Changes

    May 24, 2011
    • Running a == operator comparison between a geometry and a non-geometry caused an exception for some implementations. Fixed. (Reported by Daniel Hackney.)
    • Clarified the specifications for operators on geometry objects.
  • v0.3.0 Changes

    May 23, 2011
    • RGeo can now use GEOS via the ffi-geos gem, in addition to RGeo's built-in C integration. The ffi-geos integration is experimental right now, since ffi-geos is still in early beta. In particular, I do not recommend using it in JRuby yet (as of JRuby 1.6.1), because an apparent JRuby bug (JRUBY-5813) causes intermittent segfaults. However, once the issue is resolved (soon, I hope, since I've already submitted a patch to the JRuby team), we should have GEOS functional on JRuby.
    • It is now possible to add methods to geometry objects "globally". This was not possible previously because there is no global base class; however, there is now a mechanism to specify mixins that all implementations are expected to include.
    • Added RGeo::Feature::Type.supertype and each_immediate_subtype.
    • POSSIBLE INCOMPATIBLE CHANGE: Taking the boundary of a GEOS GeometryCollection now returns nil. It used to return an empty GeometryCollection, regardless of the contents of the original collection. GeometryCollection subclasses like MultiPoint, however, do have proper boundaries.
    • Renamed the lenient_multi_polygon_assertions GEOS factory parameter to uses_lenient_multi_polygon_assertions. The older name will continue to work.
    • The GEOS buffer_resolution and uses_lenient_multi_polygon_assertions options are now exposed via properties.
    • ๐Ÿ›  The RGeo::Feature::Polygon module incorrectly included Enumerable. Fixed.
    • Several of the implementations included some extraneous (and nonfunctional) methods because they included the wrong modules. Fixed.
  • v0.2.9 Changes

    April 25, 2011
    • ๐Ÿ”ง INCOMPATIBLE CHANGE: mutator methods for the configurations of the WKRep parsers and generators have been removed. Create a new parser/generator if you need to change behavior.
    • POSSIBLE INCOMPATIBLE CHANGE: The GEOS implementation now uses WKRep (by default) instead of the native GEOS WKB/WKT parsers and generators. This is because of some issues with the GEOS 3.2.2 implementation: namely, that the GEOS WKT generator suffers from some floating-point roundoff issues due to its "fixed point" output, and that the GEOS WKT parser fails to recognize names not in all caps, in violation of the version 1.2 update of the SFS. (Thanks to sharpone74 for report GH-4.)
    • WKRep::WKTGenerator injects some more whitespace to make output more readable and more in line with the examples in the SFS.
    • ๐Ÿ”ง It is now possible to configure the WKT/WKB parsers/generators for each of the implementations, by passing the configuration hash to the factory constructor. In addition, it is also possible to configure the GEOS factory to use the native GEOS WKT/WKB implementation instead of RGeo::WKRep (that is, to restore the behavior of RGeo <= 0.2.8).
    • ๐Ÿ“œ The WKB parser auto-detects and interprets hex strings.
  • v0.2.8 Changes

    April 11, 2011
    • ๐Ÿ— A .gemspec file is now available for gem building and bundler git integration.