rgeo 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +8 -0
- data/Version +1 -1
- data/ext/geos_c_impl/extconf.rb +2 -2
- data/ext/geos_c_impl/factory.c +93 -42
- data/ext/geos_c_impl/geometry.c +327 -146
- data/ext/geos_c_impl/geometry_collection.c +157 -75
- data/ext/geos_c_impl/line_string.c +200 -93
- data/ext/geos_c_impl/main.c +3 -1
- data/ext/geos_c_impl/point.c +60 -28
- data/ext/geos_c_impl/polygon.c +108 -50
- data/ext/proj4_c_impl/extconf.rb +2 -2
- data/ext/proj4_c_impl/main.c +68 -30
- data/lib/rgeo/cartesian/bounding_box.rb +1 -1
- data/lib/rgeo/feature/factory.rb +7 -6
- data/lib/rgeo/feature/geometry.rb +4 -3
- data/lib/rgeo/geographic/projected_feature_methods.rb +1 -1
- data/lib/rgeo/geos/interface.rb +1 -1
- data/lib/rgeo/wkrep/wkt_parser.rb +7 -1
- data/test/wkrep/tc_wkt_parser.rb +13 -0
- metadata +3 -3
| @@ -203,7 +203,7 @@ module RGeo | |
| 203 203 | 
             
                  end
         | 
| 204 204 |  | 
| 205 205 |  | 
| 206 | 
            -
                  # Adjusts the extents of this bounding box to  | 
| 206 | 
            +
                  # Adjusts the extents of this bounding box to encompass the given
         | 
| 207 207 | 
             
                  # object, which may be a geometry or another bounding box.
         | 
| 208 208 | 
             
                  # Returns self.
         | 
| 209 209 |  | 
    
        data/lib/rgeo/feature/factory.rb
    CHANGED
    
    | @@ -55,11 +55,12 @@ module RGeo | |
| 55 55 | 
             
                # 
         | 
| 56 56 | 
             
                # Factory is defined as a module and is provided primarily for the
         | 
| 57 57 | 
             
                # sake of documentation. Implementations need not necessarily include
         | 
| 58 | 
            -
                # this module itself. Therefore, you should not depend on the
         | 
| 59 | 
            -
                #  | 
| 60 | 
            -
                # factory-ness, the Factory::Instance submodule | 
| 61 | 
            -
                # factory implementation classes MUST include | 
| 62 | 
            -
                # you may use it in  | 
| 58 | 
            +
                # this module itself. Therefore, you should not depend on the result
         | 
| 59 | 
            +
                # of <tt>is_a?(Factory)</tt> to check type. However, to support
         | 
| 60 | 
            +
                # testing for factory-ness, the <tt>Factory::Instance</tt> submodule
         | 
| 61 | 
            +
                # is provided. All factory implementation classes MUST include
         | 
| 62 | 
            +
                # <tt>Factory::Instance</tt>, and you may use it in <tt>is_a?</tt>,
         | 
| 63 | 
            +
                # <tt>===</tt>, and case-when constructs.
         | 
| 63 64 |  | 
| 64 65 | 
             
                module Factory
         | 
| 65 66 |  | 
| @@ -96,7 +97,7 @@ module RGeo | |
| 96 97 | 
             
                  #   coordinate, and the Point#z method is available.
         | 
| 97 98 | 
             
                  # [<tt>:has_m_coordinate</tt>]
         | 
| 98 99 | 
             
                  #   Set to true if geometries created by this factory include a M
         | 
| 99 | 
            -
                  #   coordinate, and the Point# | 
| 100 | 
            +
                  #   coordinate, and the Point#m method is available.
         | 
| 100 101 | 
             
                  # [<tt>:is_cartesian</tt>]
         | 
| 101 102 | 
             
                  #   Set to true if this Factory guarantees that it operates in
         | 
| 102 103 | 
             
                  #   Cartesian geometry. If false or nil, no such guarantee is made,
         | 
| @@ -57,9 +57,10 @@ module RGeo | |
| 57 57 | 
             
                # 
         | 
| 58 58 | 
             
                # Geometry is defined as a module and is provided primarily for the
         | 
| 59 59 | 
             
                # sake of documentation. Implementations need not necessarily include
         | 
| 60 | 
            -
                # this module itself. Therefore, you should not depend on the
         | 
| 61 | 
            -
                #  | 
| 62 | 
            -
                # class method (or === operator) defined in the | 
| 60 | 
            +
                # this module itself. Therefore, you should not depend on the result
         | 
| 61 | 
            +
                # of <tt>is_a?(Geometry)</tt> to check type. Instead, use the
         | 
| 62 | 
            +
                # provided check_type class method (or === operator) defined in the
         | 
| 63 | 
            +
                # Type module.
         | 
| 63 64 | 
             
                # 
         | 
| 64 65 | 
             
                # Some implementations may support higher dimensional objects or
         | 
| 65 66 | 
             
                # coordinate systems, despite the limits of the SFS.
         | 
| @@ -185,7 +185,7 @@ module RGeo | |
| 185 185 | 
             
                        if p_x_ < last_x_ - 180.0
         | 
| 186 186 | 
             
                          p_x_ += 360.0 while p_x_ < last_x_ - 180.0
         | 
| 187 187 | 
             
                        elsif p_x_ > last_x_ + 180.0
         | 
| 188 | 
            -
                          p_x_  | 
| 188 | 
            +
                          p_x_ -= 360.0 while p_x_ > last_x_ + 180.0
         | 
| 189 189 | 
             
                        else
         | 
| 190 190 | 
             
                          changed_ = false
         | 
| 191 191 | 
             
                        end
         | 
    
        data/lib/rgeo/geos/interface.rb
    CHANGED
    
    | @@ -194,7 +194,7 @@ module RGeo | |
| 194 194 | 
             
                  #   the default) generates a prepared geometry the second time an
         | 
| 195 195 | 
             
                  #   operation that would benefit from it is called. The latter
         | 
| 196 196 | 
             
                  #   never automatically generates a prepared geometry (unless you
         | 
| 197 | 
            -
                  #   generate  | 
| 197 | 
            +
                  #   generate one explicitly using the <tt>prepare!</tt> method).
         | 
| 198 198 | 
             
                  #   Currently, prepared geometries are supported under CAPI but
         | 
| 199 199 | 
             
                  #   not FFI.
         | 
| 200 200 |  | 
| @@ -380,7 +380,13 @@ module RGeo | |
| 380 380 | 
             
                      _expect_token_type(:begin)
         | 
| 381 381 | 
             
                      _next_token
         | 
| 382 382 | 
             
                      loop do
         | 
| 383 | 
            -
                         | 
| 383 | 
            +
                        uses_paren_ = @cur_token == :begin
         | 
| 384 | 
            +
                        _next_token if uses_paren_
         | 
| 385 | 
            +
                        points_ << _parse_coords
         | 
| 386 | 
            +
                        if uses_paren_
         | 
| 387 | 
            +
                          _expect_token_type(:end)
         | 
| 388 | 
            +
                          _next_token
         | 
| 389 | 
            +
                        end
         | 
| 384 390 | 
             
                        break if @cur_token == :end
         | 
| 385 391 | 
             
                        _expect_token_type(:comma)
         | 
| 386 392 | 
             
                        _next_token
         | 
    
        data/test/wkrep/tc_wkt_parser.rb
    CHANGED
    
    | @@ -360,6 +360,19 @@ module RGeo | |
| 360 360 | 
             
                    end
         | 
| 361 361 |  | 
| 362 362 |  | 
| 363 | 
            +
                    def test_multipoint_without_parens
         | 
| 364 | 
            +
                      # This syntax isn't strictly allowed by the spec, but apparently
         | 
| 365 | 
            +
                      # it does get used occasionally, so we do support parsing it.
         | 
| 366 | 
            +
                      factory_ = ::RGeo::Cartesian.preferred_factory
         | 
| 367 | 
            +
                      parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
         | 
| 368 | 
            +
                      obj_ = parser_.parse('MULTIPOINT(1 2, 0 3)')
         | 
| 369 | 
            +
                      assert_equal(::RGeo::Feature::MultiPoint, obj_.geometry_type)
         | 
| 370 | 
            +
                      assert_equal(2, obj_.num_geometries)
         | 
| 371 | 
            +
                      assert_equal(1, obj_[0].x)
         | 
| 372 | 
            +
                      assert_equal(3, obj_[1].y)
         | 
| 373 | 
            +
                    end
         | 
| 374 | 
            +
                    
         | 
| 375 | 
            +
                    
         | 
| 363 376 | 
             
                    def test_multipoint_empty
         | 
| 364 377 | 
             
                      factory_ = ::RGeo::Cartesian.preferred_factory
         | 
| 365 378 | 
             
                      parser_ = ::RGeo::WKRep::WKTParser.new(factory_)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rgeo
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.3
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011- | 
| 12 | 
            +
            date: 2011-12-19 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies: []
         | 
| 14 14 | 
             
            description: RGeo is a geospatial data library for Ruby. It provides an implementation
         | 
| 15 15 | 
             
              of the Open Geospatial Consortium's Simple Features Specification, used by most
         | 
| @@ -213,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 213 213 | 
             
                  version: 1.3.1
         | 
| 214 214 | 
             
            requirements: []
         | 
| 215 215 | 
             
            rubyforge_project: virtuoso
         | 
| 216 | 
            -
            rubygems_version: 1.8. | 
| 216 | 
            +
            rubygems_version: 1.8.12
         | 
| 217 217 | 
             
            signing_key: 
         | 
| 218 218 | 
             
            specification_version: 3
         | 
| 219 219 | 
             
            summary: RGeo is a geospatial data library for Ruby.
         |