rgeo 3.0.0.pre.rc.1 → 3.0.0.pre.rc.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -11
  3. data/ext/geos_c_impl/factory.c +31 -30
  4. data/ext/geos_c_impl/factory.h +8 -1
  5. data/ext/geos_c_impl/geometry.c +70 -0
  6. data/ext/geos_c_impl/geometry_collection.c +43 -40
  7. data/ext/geos_c_impl/line_string.c +2 -2
  8. data/ext/geos_c_impl/main.c +1 -1
  9. data/ext/geos_c_impl/polygon.c +29 -22
  10. data/ext/geos_c_impl/preface.h +4 -0
  11. data/ext/geos_c_impl/ruby_more.c +65 -0
  12. data/ext/geos_c_impl/ruby_more.h +16 -0
  13. data/lib/rgeo/cartesian/factory.rb +6 -7
  14. data/lib/rgeo/cartesian/feature_classes.rb +2 -0
  15. data/lib/rgeo/cartesian/feature_methods.rb +16 -0
  16. data/lib/rgeo/cartesian/interface.rb +0 -30
  17. data/lib/rgeo/coord_sys.rb +0 -11
  18. data/lib/rgeo/feature/factory_generator.rb +0 -3
  19. data/lib/rgeo/feature/geometry.rb +79 -0
  20. data/lib/rgeo/geographic/factory.rb +6 -0
  21. data/lib/rgeo/geographic/interface.rb +1 -29
  22. data/lib/rgeo/geographic/projected_feature_methods.rb +16 -0
  23. data/lib/rgeo/geographic/spherical_feature_methods.rb +17 -1
  24. data/lib/rgeo/geos/capi_factory.rb +0 -7
  25. data/lib/rgeo/geos/capi_feature_classes.rb +19 -0
  26. data/lib/rgeo/geos/ffi_factory.rb +6 -7
  27. data/lib/rgeo/geos/ffi_feature_methods.rb +16 -0
  28. data/lib/rgeo/geos/interface.rb +0 -17
  29. data/lib/rgeo/geos/zm_factory.rb +0 -7
  30. data/lib/rgeo/geos/zm_feature_methods.rb +16 -0
  31. data/lib/rgeo/geos.rb +6 -3
  32. data/lib/rgeo/impl_helper/validity_check.rb +3 -2
  33. data/lib/rgeo/version.rb +1 -1
  34. metadata +18 -5
  35. data/lib/rgeo/coord_sys/srs_database/entry.rb +0 -107
  36. data/lib/rgeo/coord_sys/srs_database/sr_org.rb +0 -64
  37. data/lib/rgeo/coord_sys/srs_database/url_reader.rb +0 -65
@@ -69,11 +69,6 @@ module RGeo
69
69
  # The coordinate system in OGC form, either as a subclass of
70
70
  # CoordSys::CS::CoordinateSystem, or as a string in WKT format.
71
71
  # Optional.
72
- # [<tt>:srs_database</tt>]
73
- # Optional. If provided, the value should be an implementation of
74
- # CoordSys::SRSDatabase::Interface. If both this and an SRID are
75
- # provided, they are used to look up the proj4 and coord_sys
76
- # objects from a spatial reference system database.
77
72
  # [<tt>:has_z_coordinate</tt>]
78
73
  # Support a Z coordinate. Default is false.
79
74
  # [<tt>:has_m_coordinate</tt>]
@@ -101,31 +96,6 @@ module RGeo
101
96
  def simple_factory(opts = {})
102
97
  Cartesian::Factory.new(opts)
103
98
  end
104
-
105
- # Returns a Feature::FactoryGenerator that creates preferred
106
- # factories. The given options are used as the default options.
107
- #
108
- # A common case for this is to provide the <tt>:srs_database</tt>
109
- # as a default. Then, the factory generator need only be passed
110
- # an SRID and it will automatically fetch the appropriate Proj4
111
- # and CoordSys objects.
112
-
113
- def preferred_factory_generator(defaults = {})
114
- proc { |c| preferred_factory(defaults.merge(c)) }
115
- end
116
- alias factory_generator preferred_factory_generator
117
-
118
- # Returns a Feature::FactoryGenerator that creates simple factories.
119
- # The given options are used as the default options.
120
- #
121
- # A common case for this is to provide the <tt>:srs_database</tt>
122
- # as a default. Then, the factory generator need only be passed
123
- # an SRID and it will automatically fetch the appropriate Proj4
124
- # and CoordSys objects.
125
-
126
- def simple_factory_generator(defaults = {})
127
- proc { |c| simple_factory(defaults.merge(c)) }
128
- end
129
99
  end
130
100
  end
131
101
  end
@@ -9,9 +9,6 @@
9
9
  require_relative "coord_sys/cs/factories"
10
10
  require_relative "coord_sys/cs/entities"
11
11
  require_relative "coord_sys/cs/wkt_parser"
12
- require_relative "coord_sys/srs_database/entry"
13
- require_relative "coord_sys/srs_database/url_reader"
14
- require_relative "coord_sys/srs_database/sr_org"
15
12
 
16
13
  module RGeo
17
14
  # This module provides data structures and tools related to coordinate
@@ -26,14 +23,6 @@ module RGeo
26
23
  # This includes classes for representing ellipsoids, datums, coordinate
27
24
  # systems, and other related concepts, as well as a parser for the WKT
28
25
  # format for specifying coordinate systems.
29
- #
30
- # The RGeo::CoordSys::SRSDatabase module contains tools for accessing
31
- # spatial reference databases, from which you can look up coordinate
32
- # system specifications. You can access the <tt>spatial_ref_sys</tt>
33
- # table provided with OGC-compliant spatial databases such as PostGIS,
34
- # read the databases provided with the proj4 library, or access URLs
35
- # such as those provided by spatialreference.org.
36
-
37
26
  module CoordSys
38
27
  # The only valid key is :proj4
39
28
  def self.supported?(key)
@@ -66,9 +66,6 @@ module RGeo
66
66
  # CoordSys::CS::CoordinateSystem, or as a string in WKT format.
67
67
  # This is usually an optional parameter; the default is usually
68
68
  # nil.
69
- # [<tt>:srs_database</tt>]
70
- # If provided, look up the Proj4 and OGC coordinate systems from
71
- # the given database and SRID.
72
69
  # [<tt>:has_z_coordinate</tt>]
73
70
  # Support Z coordinates. Default is usually false.
74
71
  # [<tt>:has_m_coordinate</tt>]
@@ -108,6 +108,36 @@ module RGeo
108
108
  raise Error::UnsupportedOperation, "Method #{self.class}#dimension not defined."
109
109
  end
110
110
 
111
+ # === SFS 1.2 Description
112
+ #
113
+ # The coordinate dimension is the dimension of direct positions (coordinate tuples) used in
114
+ # the definition of this geometric object
115
+ #
116
+ # === Notes
117
+ #
118
+ # Difference between this and dimension is that this is the dimension of the coordinate
119
+ # not the dimension of the geometry.
120
+ #
121
+ # @return [Integer]
122
+ def coordinate_dimension
123
+ raise Error::UnsupportedOperation, "Method #{self.class}#coordinate_dimension not defined."
124
+ end
125
+
126
+ # === SFS 1.2 Description
127
+ #
128
+ # The spatial dimension is the dimension of the spatial portion of the direct positions
129
+ # (coordinate tuples) used in the definition of this geometric object. If the direct positions
130
+ # do not carry a measure coordinate, this will be equal to the coordinate dimension.
131
+ #
132
+ # === Notes
133
+ #
134
+ # Similar to coordinate_dimension except it will ignore the M component always.
135
+ #
136
+ # @return [Integer]
137
+ def spatial_dimension
138
+ raise Error::UnsupportedOperation, "Method #{self.class}#spatial_dimension not defined."
139
+ end
140
+
111
141
  # === SFS 1.1 Description
112
142
  #
113
143
  # Returns the instantiable subtype of Geometry of which this
@@ -222,6 +252,28 @@ module RGeo
222
252
  simple?
223
253
  end
224
254
 
255
+ # === SFS 1.2 Description
256
+ #
257
+ # Returns 1 (TRUE) if this geometric object has z coordinate values.
258
+ #
259
+ # === Notes
260
+ #
261
+ # @return [Boolean]
262
+ def is_3d?
263
+ raise Error::UnsupportedOperation, "Method #{self.class}#is_3d? not defined."
264
+ end
265
+
266
+ # === SFS 1.2 Description
267
+ #
268
+ # Returns 1 (TRUE) if this geometric object has m coordinate values.
269
+ #
270
+ # === Notes
271
+ #
272
+ # @return [Boolean]
273
+ def measured?
274
+ raise Error::UnsupportedOperation, "Method #{self.class}#measured? not defined."
275
+ end
276
+
225
277
  # === SFS 1.1 Description
226
278
  #
227
279
  # Returns the closure of the combinatorial boundary of this geometric
@@ -415,6 +467,33 @@ module RGeo
415
467
  raise Error::UnsupportedOperation, "Method #{self.class}#relate not defined."
416
468
  end
417
469
 
470
+ # === SFS 1.2 Description
471
+ #
472
+ # Returns a derived geometry collection value that matches the
473
+ # specified m coordinate value.
474
+ #
475
+ # === Notes
476
+ #
477
+ # @param m_value [Float] value to find matches for
478
+ # @return [RGeo::Feature::GeometryCollection]
479
+ def locate_along
480
+ raise Error::UnsupportedOperation, "Method #{self.class}#locate_along not defined."
481
+ end
482
+
483
+ # === SFS 1.2 Description
484
+ #
485
+ # Returns a derived geometry collection value
486
+ # that matches the specified range of m coordinate values inclusively
487
+ #
488
+ # === Notes
489
+ #
490
+ # @param m_start [Float] lower bound of value range
491
+ # @param m_end [Float] upper bound of value range
492
+ # @return [RGeo::Feature::GeometryCollection]
493
+ def locate_between
494
+ raise Error::UnsupportedOperation, "Method #{self.class}#locate_between not defined."
495
+ end
496
+
418
497
  # === SFS 1.1 Description
419
498
  #
420
499
  # Returns the shortest distance between any two Points in the two
@@ -31,6 +31,11 @@ module RGeo
31
31
  @multi_polygon_class = Geographic.const_get("#{impl_prefix}MultiPolygonImpl")
32
32
  @support_z = opts[:has_z_coordinate] ? true : false
33
33
  @support_m = opts[:has_m_coordinate] ? true : false
34
+ @coordinate_dimension = 2
35
+ @coordinate_dimension += 1 if @support_z
36
+ @coordinate_dimension += 1 if @support_m
37
+ @spatial_dimension = @support_z ? 3 : 2
38
+
34
39
  @srid = (opts[:srid] || 4326).to_i
35
40
  @proj4 = opts[:proj4]
36
41
  if @proj4 && CoordSys.check!(:proj4)
@@ -75,6 +80,7 @@ module RGeo
75
80
  end
76
81
  @projector = nil
77
82
  end
83
+ attr_reader :coordinate_dimension, :spatial_dimension
78
84
 
79
85
  # Equivalence test.
80
86
 
@@ -83,11 +83,6 @@ module RGeo
83
83
  # visualization crs". You may alternatively wish to set the srid
84
84
  # to 4326, indicating the WGS84 crs, but note that that value
85
85
  # implies an ellipsoidal datum, not a spherical datum.
86
- # [<tt>:srs_database</tt>]
87
- # Optional. If provided, the object should respond to #get and
88
- # #clear_cache. If both this and an SRID are
89
- # provided, they are used to look up the proj4 and coord_sys
90
- # objects from a spatial reference system database.
91
86
  # [<tt>:wkt_parser</tt>]
92
87
  # Configure the parser for WKT. The value is a hash of
93
88
  # configuration parameters for WKRep::WKTParser.new. Default is
@@ -112,13 +107,6 @@ module RGeo
112
107
  proj4 = opts[:proj4]
113
108
  coord_sys = opts[:coord_sys]
114
109
  srid = opts[:srid]
115
- if (!proj4 || !coord_sys) && srid && (db_ = opts[:srs_database])
116
- entry_ = db_.get(srid.to_i)
117
- if entry_
118
- proj4 ||= entry_.proj4
119
- coord_sys ||= entry_.coord_sys
120
- end
121
- end
122
110
  srid ||= coord_sys.authority_code if coord_sys
123
111
  Geographic::Factory.new("Spherical",
124
112
  has_z_coordinate: opts[:has_z_coordinate],
@@ -247,9 +235,7 @@ module RGeo
247
235
  # and let this method construct a projection factory for you (which
248
236
  # it will do using the preferred Cartesian factory generator).
249
237
  # If you choose this second method, you may provide the proj4
250
- # directly via the <tt>:projection_proj4</tt> option, or indirectly
251
- # by providing both an <tt>:srid</tt> and a <tt>:srs_database</tt>
252
- # to use to look up the coordinate system.
238
+ # via the <tt>:projection_proj4</tt> option.
253
239
  #
254
240
  # Following are detailed descriptions of the various options you can
255
241
  # pass to this method.
@@ -292,11 +278,6 @@ module RGeo
292
278
  # The SRID value to use for the main geographic factory. Defaults
293
279
  # to the given geographic coordinate system's authority code, or
294
280
  # to 0 if no geographic coordinate system is known.
295
- # [<tt>:srs_database</tt>]
296
- # Optional. If provided, the object should respond to #get and
297
- # #clear_cache. If both this and an SRID are
298
- # provided, they are used to look up the proj4 and coord_sys
299
- # objects from a spatial reference system database.
300
281
  # [<tt>:has_z_coordinate</tt>]
301
282
  # Support a Z coordinate. Default is false.
302
283
  # Note: this is ignored if a <tt>:projection_factory</tt> is
@@ -335,7 +316,6 @@ module RGeo
335
316
 
336
317
  def projected_factory(opts = {})
337
318
  CoordSys.check!(:proj4)
338
- db_ = opts[:srs_database]
339
319
  if (projection_factory = opts[:projection_factory])
340
320
  # Get the projection coordinate systems from the given factory
341
321
  projection_proj4 = projection_factory.proj4
@@ -350,14 +330,6 @@ module RGeo
350
330
  proj4 = opts[:proj4]
351
331
  coord_sys = opts[:coord_sys]
352
332
  srid = opts[:srid]
353
- # Lookup srid from srs database if needed
354
- if (!proj4 || !coord_sys) && srid && db_
355
- entry_ = db_.get(srid.to_i)
356
- if entry_
357
- proj4 ||= entry_.proj4
358
- coord_sys ||= entry_.coord_sys
359
- end
360
- end
361
333
  # Fall back to getting the values from the projection.
362
334
  proj4 ||= projection_proj4.get_geographic || _proj_4326
363
335
  coord_sys ||= projection_coord_sys.geographic_coordinate_system if projection_coord_sys
@@ -22,6 +22,22 @@ module RGeo
22
22
  factory.unproject(projection.unsafe_envelope)
23
23
  end
24
24
 
25
+ def coordinate_dimension
26
+ factory.coordinate_dimension
27
+ end
28
+
29
+ def spatial_dimension
30
+ factory.spatial_dimension
31
+ end
32
+
33
+ def is_3d?
34
+ factory.property(:has_z_coordinate)
35
+ end
36
+
37
+ def measured?
38
+ factory.property(:has_m_coordinate)
39
+ end
40
+
25
41
  def empty?
26
42
  projection.empty?
27
43
  end
@@ -12,6 +12,22 @@ module RGeo
12
12
  def srid
13
13
  factory.srid
14
14
  end
15
+
16
+ def coordinate_dimension
17
+ factory.coordinate_dimension
18
+ end
19
+
20
+ def spatial_dimension
21
+ factory.spatial_dimension
22
+ end
23
+
24
+ def is_3d?
25
+ factory.property(:has_z_coordinate)
26
+ end
27
+
28
+ def measured?
29
+ factory.property(:has_m_coordinate)
30
+ end
15
31
  end
16
32
 
17
33
  module SphericalPointMethods # :nodoc:
@@ -216,7 +232,7 @@ module RGeo
216
232
  centroid_lat /= (6.0 * signed_area)
217
233
  centroid_lng /= (6.0 * signed_area)
218
234
 
219
- RGeo::Geographic.spherical_factory.point(centroid_lat, centroid_lng)
235
+ factory.point(centroid_lat, centroid_lng)
220
236
  end
221
237
  end
222
238
  end
@@ -71,13 +71,6 @@ module RGeo
71
71
  if coord_sys_.is_a?(String)
72
72
  coord_sys_ = CoordSys::CS.create_from_wkt(coord_sys_)
73
73
  end
74
- if (!proj4_ || !coord_sys_) && srid_ && (db_ = opts_[:srs_database])
75
- entry_ = db_.get(srid_.to_i)
76
- if entry_
77
- proj4_ ||= entry_.proj4
78
- coord_sys_ ||= entry_.coord_sys
79
- end
80
- end
81
74
  srid_ ||= coord_sys_.authority_code if coord_sys_
82
75
 
83
76
  # Create the factory and set instance variables
@@ -13,6 +13,17 @@ module RGeo
13
13
  module CAPIGeometryMethods
14
14
  include Feature::Instance
15
15
 
16
+ def coordinate_dimension
17
+ dim = 2
18
+ dim += 1 if factory.supports_z?
19
+ dim += 1 if factory.supports_m?
20
+ dim
21
+ end
22
+
23
+ def spatial_dimension
24
+ factory.supports_z? ? 3 : 2
25
+ end
26
+
16
27
  def is_empty? # rubocop:disable Naming/PredicateName
17
28
  warn "The is_empty? method is deprecated, please use the empty? counterpart, will be removed in v3" unless ENV["RGEO_SILENCE_DEPRECATION"]
18
29
  empty?
@@ -23,6 +34,14 @@ module RGeo
23
34
  simple?
24
35
  end
25
36
 
37
+ def is_3d?
38
+ factory.supports_z?
39
+ end
40
+
41
+ def measured?
42
+ factory.supports_m?
43
+ end
44
+
26
45
  def inspect
27
46
  "#<#{self.class}:0x#{object_id.to_s(16)} #{as_text.inspect}>"
28
47
  end
@@ -25,6 +25,11 @@ module RGeo
25
25
  if @has_z && @has_m
26
26
  raise Error::UnsupportedOperation, "GEOS cannot support both Z and M coordinates at the same time."
27
27
  end
28
+ @coordinate_dimension = 2
29
+ @coordinate_dimension += 1 if @has_z
30
+ @coordinate_dimension += 1 if @has_m
31
+ @spatial_dimension = @has_z ? 3 : 2
32
+
28
33
  @_has_3d = @has_z || @has_m
29
34
  @buffer_resolution = opts[:buffer_resolution].to_i
30
35
  @buffer_resolution = 1 if @buffer_resolution < 1
@@ -70,13 +75,6 @@ module RGeo
70
75
  if @coord_sys.is_a?(String)
71
76
  @coord_sys = CoordSys::CS.create_from_wkt(@coord_sys)
72
77
  end
73
- if (!@proj4 || !@coord_sys) && @srid && (db = opts[:srs_database])
74
- entry = db.get(@srid.to_i)
75
- if entry
76
- @proj4 ||= entry.proj4
77
- @coord_sys ||= entry.coord_sys
78
- end
79
- end
80
78
  @srid ||= @coord_sys.authority_code if @coord_sys
81
79
  @srid = @srid.to_i
82
80
 
@@ -106,6 +104,7 @@ module RGeo
106
104
  @wkb_reader = nil
107
105
  end
108
106
  end
107
+ attr_reader :coordinate_dimension, :spatial_dimension
109
108
 
110
109
  # Standard object inspection output
111
110
 
@@ -77,6 +77,14 @@ module RGeo
77
77
  Utils.ffi_compute_dimension(@fg_geom)
78
78
  end
79
79
 
80
+ def coordinate_dimension
81
+ factory.coordinate_dimension
82
+ end
83
+
84
+ def spatial_dimension
85
+ factory.spatial_dimension
86
+ end
87
+
80
88
  def geometry_type
81
89
  Feature::Geometry
82
90
  end
@@ -131,6 +139,14 @@ module RGeo
131
139
  simple?
132
140
  end
133
141
 
142
+ def is_3d?
143
+ factory.property(:has_z_coordinate)
144
+ end
145
+
146
+ def measured?
147
+ factory.property(:has_m_coordinate)
148
+ end
149
+
134
150
  def valid?
135
151
  @fg_geom.valid?
136
152
  end
@@ -135,11 +135,6 @@ module RGeo
135
135
  # The coordinate system in OGC form, either as a subclass of
136
136
  # CoordSys::CS::CoordinateSystem, or as a string in WKT format.
137
137
  # Optional.
138
- # [<tt>:srs_database</tt>]
139
- # Optional. If provided, the object should respond to #get and
140
- # #clear_cache. If both this and an SRID are
141
- # provided, they are used to look up the proj4 and coord_sys
142
- # objects from a spatial reference system database.
143
138
  # [<tt>:has_z_coordinate</tt>]
144
139
  # Support <tt>z_coordinate</tt>. Default is false.
145
140
  # [<tt>:has_m_coordinate</tt>]
@@ -194,18 +189,6 @@ module RGeo
194
189
  end
195
190
  end
196
191
  end
197
-
198
- # Returns a Feature::FactoryGenerator that creates Geos-backed
199
- # factories. The given options are used as the default options.
200
- #
201
- # A common case for this is to provide the <tt>:srs_database</tt>
202
- # as a default. Then, the factory generator need only be passed
203
- # an SRID and it will automatically fetch the appropriate Proj4
204
- # and CoordSys objects.
205
-
206
- def factory_generator(defaults = {})
207
- proc { |c| factory(defaults.merge(c)) }
208
- end
209
192
  end
210
193
  end
211
194
  end
@@ -44,13 +44,6 @@ module RGeo
44
44
  proj4 = opts[:proj4]
45
45
  coord_sys = opts[:coord_sys]
46
46
  srid = opts[:srid]
47
- if (!proj4 || !coord_sys) && srid && (db = opts[:srs_database])
48
- entry = db.get(srid.to_i)
49
- if entry
50
- proj4 ||= entry.proj4
51
- coord_sys ||= entry.coord_sys
52
- end
53
- end
54
47
  srid ||= coord_sys.authority_code if coord_sys
55
48
  config = {
56
49
  buffer_resolution: opts[:buffer_resolution], auto_prepare: opts[:auto_prepare],
@@ -45,6 +45,14 @@ module RGeo
45
45
  @zgeometry.dimension
46
46
  end
47
47
 
48
+ def coordinate_dimension
49
+ 4
50
+ end
51
+
52
+ def spatial_dimension
53
+ 3
54
+ end
55
+
48
56
  def geometry_type
49
57
  @zgeometry.geometry_type
50
58
  end
@@ -83,6 +91,14 @@ module RGeo
83
91
  simple?
84
92
  end
85
93
 
94
+ def is_3d?
95
+ true
96
+ end
97
+
98
+ def measured?
99
+ true
100
+ end
101
+
86
102
  def boundary
87
103
  @factory.create_feature(nil, @zgeometry.boundary, @mgeometry.boundary)
88
104
  end
data/lib/rgeo/geos.rb CHANGED
@@ -33,9 +33,6 @@ module RGeo
33
33
  require_relative "geos/capi_feature_classes"
34
34
  require_relative "geos/capi_factory"
35
35
  end
36
- require_relative "geos/ffi_feature_methods"
37
- require_relative "geos/ffi_feature_classes"
38
- require_relative "geos/ffi_factory"
39
36
  require_relative "geos/zm_feature_methods"
40
37
  require_relative "geos/zm_feature_classes"
41
38
  require_relative "geos/zm_factory"
@@ -56,6 +53,12 @@ module RGeo
56
53
  FFI_SUPPORT_EXCEPTION = ex
57
54
  end
58
55
 
56
+ if FFI_SUPPORTED
57
+ require_relative "geos/ffi_feature_methods"
58
+ require_relative "geos/ffi_feature_classes"
59
+ require_relative "geos/ffi_factory"
60
+ end
61
+
59
62
  # Default preferred native interface
60
63
  if CAPI_SUPPORTED
61
64
  self.preferred_native_interface = :capi
@@ -22,13 +22,14 @@ module RGeo
22
22
  UNCHECKED_METHODS = [
23
23
  # Basic methods
24
24
  :factory, :geometry_type, :as_text, :as_binary, :srid,
25
+ :dimension, :coordinate_dimension, :spatial_dimension,
25
26
  # Tests
26
- :simple?, :closed?, :empty?,
27
+ :simple?, :closed?, :empty?, :is_3d?, :measured?,
27
28
  # Accessors
28
29
  :exterior_ring, :interior_rings, :[], :num_geometries, :num_interior_rings,
29
30
  :geometry_n, :each, :points, :point_n, :start_point, :end_point, :x, :y, :z, :m,
30
31
  # Trivial methods
31
- :num_points,
32
+ :num_points, :locate_along, :locate_between,
32
33
  # Comparison
33
34
  :equals?, :rep_equals?, :eql?, :==, :'!='
34
35
  ].freeze
data/lib/rgeo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RGeo
4
- VERSION = "3.0.0-rc.1"
4
+ VERSION = "3.0.0-rc.2"
5
5
  end
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: 3.0.0.pre.rc.1
4
+ version: 3.0.0.pre.rc.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Azuma
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-03-22 00:00:00.000000000 Z
12
+ date: 2022-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi-geos
@@ -81,6 +81,20 @@ dependencies:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: 1.8.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: ruby_memcheck
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '1.0'
84
98
  - !ruby/object:Gem::Dependency
85
99
  name: yard
86
100
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,8 @@ files:
136
150
  - ext/geos_c_impl/polygon.c
137
151
  - ext/geos_c_impl/polygon.h
138
152
  - ext/geos_c_impl/preface.h
153
+ - ext/geos_c_impl/ruby_more.c
154
+ - ext/geos_c_impl/ruby_more.h
139
155
  - lib/rgeo.rb
140
156
  - lib/rgeo/cartesian.rb
141
157
  - lib/rgeo/cartesian/analysis.rb
@@ -152,9 +168,6 @@ files:
152
168
  - lib/rgeo/coord_sys/cs/entities.rb
153
169
  - lib/rgeo/coord_sys/cs/factories.rb
154
170
  - lib/rgeo/coord_sys/cs/wkt_parser.rb
155
- - lib/rgeo/coord_sys/srs_database/entry.rb
156
- - lib/rgeo/coord_sys/srs_database/sr_org.rb
157
- - lib/rgeo/coord_sys/srs_database/url_reader.rb
158
171
  - lib/rgeo/error.rb
159
172
  - lib/rgeo/feature.rb
160
173
  - lib/rgeo/feature/curve.rb