rgeo 0.1.22 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +31 -0
- data/README.rdoc +53 -59
- data/Spatial_Programming_With_RGeo.rdoc +120 -67
- data/Version +1 -1
- data/ext/proj4_c_impl/extconf.rb +1 -1
- data/lib/rgeo.rb +80 -87
- data/lib/rgeo/cartesian.rb +0 -10
- data/lib/rgeo/coord_sys.rb +0 -7
- data/lib/rgeo/coord_sys/proj4.rb +2 -2
- data/lib/rgeo/error.rb +2 -6
- data/lib/rgeo/feature.rb +0 -7
- data/lib/rgeo/feature/curve.rb +5 -5
- data/lib/rgeo/feature/factory.rb +45 -5
- data/lib/rgeo/feature/factory_generator.rb +2 -4
- data/lib/rgeo/feature/geometry.rb +97 -27
- data/lib/rgeo/feature/geometry_collection.rb +3 -3
- data/lib/rgeo/feature/line_string.rb +3 -3
- data/lib/rgeo/feature/multi_curve.rb +2 -2
- data/lib/rgeo/feature/multi_surface.rb +3 -3
- data/lib/rgeo/feature/point.rb +6 -6
- data/lib/rgeo/feature/polygon.rb +4 -4
- data/lib/rgeo/feature/surface.rb +3 -3
- data/lib/rgeo/geographic.rb +0 -11
- data/lib/rgeo/geographic/factory.rb +5 -2
- data/lib/rgeo/geographic/interface.rb +1 -1
- data/lib/rgeo/geos.rb +0 -7
- data/lib/rgeo/geos/factory.rb +1 -1
- data/lib/rgeo/impl_helper.rb +0 -7
- data/lib/rgeo/wkrep.rb +0 -7
- data/lib/rgeo/wkrep/wkb_parser.rb +2 -2
- data/test/tc_oneoff.rb +0 -1
- metadata +7 -155
- data/lib/active_record/connection_adapters/mysql2spatial_adapter.rb +0 -124
- data/lib/active_record/connection_adapters/mysqlspatial_adapter.rb +0 -136
- data/lib/active_record/connection_adapters/postgis_adapter.rb +0 -426
- data/lib/active_record/connection_adapters/spatialite_adapter.rb +0 -488
- data/lib/rgeo/active_record/arel_modifications.rb +0 -78
- data/lib/rgeo/active_record/base_modifications.rb +0 -124
- data/lib/rgeo/active_record/common.rb +0 -166
- data/lib/rgeo/active_record/mysql_common.rb +0 -150
- data/lib/rgeo/all.rb +0 -49
- data/lib/rgeo/geo_json.rb +0 -60
- data/lib/rgeo/geo_json/coder.rb +0 -401
- data/lib/rgeo/geo_json/entities.rb +0 -285
- data/lib/rgeo/geo_json/interface.rb +0 -129
- data/lib/rgeo/shapefile.rb +0 -60
- data/lib/rgeo/shapefile/reader.rb +0 -898
- data/test/active_record/common_setup_methods.rb +0 -129
- data/test/active_record/readme.txt +0 -43
- data/test/active_record/tc_mysqlspatial.rb +0 -170
- data/test/active_record/tc_postgis.rb +0 -282
- data/test/active_record/tc_spatialite.rb +0 -198
- data/test/shapefile/shapelib_testcases/readme.txt +0 -11
- data/test/shapefile/shapelib_testcases/test.dbf +0 -0
- data/test/shapefile/shapelib_testcases/test.shp +0 -0
- data/test/shapefile/shapelib_testcases/test.shx +0 -0
- data/test/shapefile/shapelib_testcases/test0.shp +0 -0
- data/test/shapefile/shapelib_testcases/test0.shx +0 -0
- data/test/shapefile/shapelib_testcases/test1.shp +0 -0
- data/test/shapefile/shapelib_testcases/test1.shx +0 -0
- data/test/shapefile/shapelib_testcases/test10.shp +0 -0
- data/test/shapefile/shapelib_testcases/test10.shx +0 -0
- data/test/shapefile/shapelib_testcases/test11.shp +0 -0
- data/test/shapefile/shapelib_testcases/test11.shx +0 -0
- data/test/shapefile/shapelib_testcases/test12.shp +0 -0
- data/test/shapefile/shapelib_testcases/test12.shx +0 -0
- data/test/shapefile/shapelib_testcases/test13.shp +0 -0
- data/test/shapefile/shapelib_testcases/test13.shx +0 -0
- data/test/shapefile/shapelib_testcases/test2.shp +0 -0
- data/test/shapefile/shapelib_testcases/test2.shx +0 -0
- data/test/shapefile/shapelib_testcases/test3.shp +0 -0
- data/test/shapefile/shapelib_testcases/test3.shx +0 -0
- data/test/shapefile/shapelib_testcases/test4.shp +0 -0
- data/test/shapefile/shapelib_testcases/test4.shx +0 -0
- data/test/shapefile/shapelib_testcases/test5.shp +0 -0
- data/test/shapefile/shapelib_testcases/test5.shx +0 -0
- data/test/shapefile/shapelib_testcases/test6.shp +0 -0
- data/test/shapefile/shapelib_testcases/test6.shx +0 -0
- data/test/shapefile/shapelib_testcases/test7.shp +0 -0
- data/test/shapefile/shapelib_testcases/test7.shx +0 -0
- data/test/shapefile/shapelib_testcases/test8.shp +0 -0
- data/test/shapefile/shapelib_testcases/test8.shx +0 -0
- data/test/shapefile/shapelib_testcases/test9.shp +0 -0
- data/test/shapefile/shapelib_testcases/test9.shx +0 -0
- data/test/shapefile/tc_shapelib_tests.rb +0 -527
- data/test/tc_geojson.rb +0 -279
data/Version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/ext/proj4_c_impl/extconf.rb
CHANGED
data/lib/rgeo.rb
CHANGED
@@ -37,95 +37,88 @@
|
|
37
37
|
# RGeo is a spatial data library for Ruby. It focuses on the storage and
|
38
38
|
# manipulation of spatial data types such as points, lines, and polygons.
|
39
39
|
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
# the
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
#
|
78
|
-
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
#
|
86
|
-
#
|
87
|
-
#
|
88
|
-
#
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
93
|
-
#
|
94
|
-
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
#
|
98
|
-
#
|
99
|
-
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
104
|
-
#
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
108
|
-
#
|
109
|
-
#
|
110
|
-
# require 'rgeo/wkrep'
|
111
|
-
#
|
112
|
-
# You do not need to explicitly require any files for access to the
|
113
|
-
# spatial ActiveRecord adapters. ActiveRecord will load them
|
114
|
-
# automatically when they are referenced.
|
40
|
+
# RGeo comprises a number of modules. The "rgeo" gem provides a suite of
|
41
|
+
# standard modules. Additional optional modules are provided by separate
|
42
|
+
# gems with names of the form "<tt>rgeo-*</tt>".
|
43
|
+
#
|
44
|
+
# === Standard modules
|
45
|
+
#
|
46
|
+
# These are the standard modules provided by the "rgeo" gem.
|
47
|
+
#
|
48
|
+
# * RGeo::Feature contains interface specifications for spatial
|
49
|
+
# objects implemented by RGeo. These interfaces closely follow the OGC
|
50
|
+
# Simple Features Specifiation (SFS). This module forms the core of RGeo.
|
51
|
+
#
|
52
|
+
# * RGeo::CoordSys contains classes for representing spatial
|
53
|
+
# reference systems and coordinate transformations. For example, it
|
54
|
+
# includes a wrapper for the Proj4 library, supporting many geographic
|
55
|
+
# projections.
|
56
|
+
#
|
57
|
+
# * RGeo::Cartesian is a gateway for geometric data implementations
|
58
|
+
# that operate in Caresian (flat) coordinate systems. It also provides a
|
59
|
+
# basic pure ruby Cartesian implementation. This implementation does not
|
60
|
+
# cover all the geometric analysis operations defined by the SFS, but it
|
61
|
+
# does not require an external C library and is often sufficient for
|
62
|
+
# basic applications.
|
63
|
+
#
|
64
|
+
# * RGeo::Geos is another Cartesian implementation that wraps the
|
65
|
+
# GEOS library to provide a full, high-performance implementation of
|
66
|
+
# Cartesian geometry that includes every operation defined in the SFS.
|
67
|
+
# It requires GEOS 3.2 or later.
|
68
|
+
#
|
69
|
+
# * RGeo::Geographic contains spatial implementations that operate
|
70
|
+
# in latitude-longitude coordinates and are well-suited for geographic
|
71
|
+
# location based applications. Geographic spatial objects may also be
|
72
|
+
# linked to projections.
|
73
|
+
#
|
74
|
+
# * RGeo::WKRep contains tools for reading and writing spatial
|
75
|
+
# data in the OGC Well-Known Text (WKT) and Well-Known Binary (WKB)
|
76
|
+
# representations. It also supports common variants such as the PostGIS
|
77
|
+
# EWKT and EWKB representations.
|
78
|
+
#
|
79
|
+
# === Optional Modules
|
80
|
+
#
|
81
|
+
# Here is a partial list of optional modules available as separate gems.
|
82
|
+
#
|
83
|
+
# * <b>rgeo-geojson</b> provides the RGeo::GeoJSON module, containing
|
84
|
+
# tools for GeoJSON encoding and decoding of spatial objects.
|
85
|
+
#
|
86
|
+
# * <b>rgeo-shapefile</b> provides the RGeo::Shapefile module, containing
|
87
|
+
# tools for reading ESRI shapefiles.
|
88
|
+
#
|
89
|
+
# * <b>rgeo-activerecord</b> provides the RGeo::ActiveRecord module,
|
90
|
+
# containing some ActiveRecord extensions for spatial databases, and a
|
91
|
+
# set of common tools for ActiveRecord spatial database adapters.
|
92
|
+
#
|
93
|
+
# Several ActiveRecord adapters use RGeo. These include:
|
94
|
+
#
|
95
|
+
# * <b>mysqlspatial</b>, an adapter for MySQL spatial extensions based on
|
96
|
+
# the mysql adapter. Available as the activerecord-mysqlspatial-adapter
|
97
|
+
# gem.
|
98
|
+
#
|
99
|
+
# * <b>mysql2spatial</b>, an adapter for MySQL spatial extensions based on
|
100
|
+
# the mysql2 adapter. Available as the activerecord-mysql2spatial-adapter
|
101
|
+
# gem.
|
102
|
+
#
|
103
|
+
# * <b>spatialite</b>, an adapter for the SpatiaLite extension to the
|
104
|
+
# Sqlite3 database, and based on the sqlite3 adapter. Available as the
|
105
|
+
# activerecord-spatialite-adapter gem.
|
106
|
+
#
|
107
|
+
# * <b>postgis</b>, an adapter for the PostGIS extension to the PostgreSQL
|
108
|
+
# database, and based on the postgresql adapter. Available as the
|
109
|
+
# activerecord-postgis-adapter gem.
|
115
110
|
|
116
111
|
module RGeo
|
117
|
-
|
118
|
-
autoload(:Cartesian, 'rgeo/cartesian')
|
119
|
-
autoload(:CoordSys, 'rgeo/coord_sys')
|
120
|
-
autoload(:Error, 'rgeo/error')
|
121
|
-
autoload(:Feature, 'rgeo/feature')
|
122
|
-
autoload(:GeoJSON, 'rgeo/geo_json')
|
123
|
-
autoload(:Geographic, 'rgeo/geographic')
|
124
|
-
autoload(:Geos, 'rgeo/geos')
|
125
|
-
autoload(:ImplHelper, 'rgeo/impl_helper')
|
126
|
-
autoload(:Shapefile, 'rgeo/shapefile')
|
127
|
-
autoload(:WKRep, 'rgeo/wkrep')
|
128
|
-
|
129
112
|
end
|
130
113
|
|
114
|
+
|
115
|
+
# Core modules
|
131
116
|
require 'rgeo/version'
|
117
|
+
require 'rgeo/error'
|
118
|
+
require 'rgeo/feature'
|
119
|
+
require 'rgeo/coord_sys'
|
120
|
+
require 'rgeo/impl_helper'
|
121
|
+
require 'rgeo/wkrep'
|
122
|
+
require 'rgeo/geos'
|
123
|
+
require 'rgeo/cartesian'
|
124
|
+
require 'rgeo/geographic'
|
data/lib/rgeo/cartesian.rb
CHANGED
@@ -34,10 +34,6 @@
|
|
34
34
|
;
|
35
35
|
|
36
36
|
|
37
|
-
# Parent file
|
38
|
-
require 'rgeo'
|
39
|
-
|
40
|
-
|
41
37
|
module RGeo
|
42
38
|
|
43
39
|
|
@@ -54,12 +50,6 @@ module RGeo
|
|
54
50
|
end
|
55
51
|
|
56
52
|
|
57
|
-
# Dependency files.
|
58
|
-
require 'rgeo/feature'
|
59
|
-
require 'rgeo/geos'
|
60
|
-
require 'rgeo/wkrep'
|
61
|
-
require 'rgeo/impl_helper'
|
62
|
-
|
63
53
|
# Implementation files.
|
64
54
|
require 'rgeo/cartesian/calculations'
|
65
55
|
require 'rgeo/cartesian/feature_methods'
|
data/lib/rgeo/coord_sys.rb
CHANGED
@@ -34,10 +34,6 @@
|
|
34
34
|
;
|
35
35
|
|
36
36
|
|
37
|
-
# Parent file
|
38
|
-
require 'rgeo'
|
39
|
-
|
40
|
-
|
41
37
|
module RGeo
|
42
38
|
|
43
39
|
|
@@ -57,9 +53,6 @@ module RGeo
|
|
57
53
|
end
|
58
54
|
|
59
55
|
|
60
|
-
# Dependency files
|
61
|
-
require 'rgeo/feature'
|
62
|
-
|
63
56
|
# Implementation files
|
64
57
|
require 'rgeo/coord_sys/proj4_c_impl'
|
65
58
|
require 'rgeo/coord_sys/proj4'
|
data/lib/rgeo/coord_sys/proj4.rb
CHANGED
@@ -176,13 +176,13 @@ module RGeo
|
|
176
176
|
|
177
177
|
|
178
178
|
# Create a new Proj4 object, given a definition, which may be
|
179
|
-
# either a string or a hash. Raises Error::
|
179
|
+
# either a string or a hash. Raises Error::UnsupportedOperation
|
180
180
|
# if the given definition is invalid or Proj4 is not supported.
|
181
181
|
|
182
182
|
def new(defn_)
|
183
183
|
result_ = create(defn_)
|
184
184
|
unless result_
|
185
|
-
raise Error::
|
185
|
+
raise Error::UnsupportedOperation, "Proj4 not supported in this installation"
|
186
186
|
end
|
187
187
|
result_
|
188
188
|
end
|
data/lib/rgeo/error.rb
CHANGED
@@ -34,10 +34,6 @@
|
|
34
34
|
;
|
35
35
|
|
36
36
|
|
37
|
-
# Parent file
|
38
|
-
require 'rgeo'
|
39
|
-
|
40
|
-
|
41
37
|
module RGeo
|
42
38
|
|
43
39
|
|
@@ -53,8 +49,8 @@ module RGeo
|
|
53
49
|
class InvalidGeometry < RGeoError
|
54
50
|
end
|
55
51
|
|
56
|
-
# The specified
|
57
|
-
class
|
52
|
+
# The specified operation is not supported or not implemented
|
53
|
+
class UnsupportedOperation < RGeoError
|
58
54
|
end
|
59
55
|
|
60
56
|
# Parsing failed
|
data/lib/rgeo/feature.rb
CHANGED
@@ -34,10 +34,6 @@
|
|
34
34
|
;
|
35
35
|
|
36
36
|
|
37
|
-
# Parent file
|
38
|
-
require 'rgeo'
|
39
|
-
|
40
|
-
|
41
37
|
module RGeo
|
42
38
|
|
43
39
|
|
@@ -72,9 +68,6 @@ module RGeo
|
|
72
68
|
end
|
73
69
|
|
74
70
|
|
75
|
-
# Dependency files
|
76
|
-
require 'rgeo/error'
|
77
|
-
|
78
71
|
# Implementation files
|
79
72
|
require 'rgeo/feature/factory'
|
80
73
|
require 'rgeo/feature/types'
|
data/lib/rgeo/feature/curve.rb
CHANGED
@@ -88,7 +88,7 @@ module RGeo
|
|
88
88
|
# Returns a floating-point scalar value.
|
89
89
|
|
90
90
|
def length
|
91
|
-
raise Error::
|
91
|
+
raise Error::UnsupportedOperation, "Method Curve#length not defined."
|
92
92
|
end
|
93
93
|
|
94
94
|
|
@@ -101,7 +101,7 @@ module RGeo
|
|
101
101
|
# Returns an object that supports the Point interface.
|
102
102
|
|
103
103
|
def start_point
|
104
|
-
raise Error::
|
104
|
+
raise Error::UnsupportedOperation, "Method Curve#start_point not defined."
|
105
105
|
end
|
106
106
|
|
107
107
|
|
@@ -114,7 +114,7 @@ module RGeo
|
|
114
114
|
# Returns an object that supports the Point interface.
|
115
115
|
|
116
116
|
def end_point
|
117
|
-
raise Error::
|
117
|
+
raise Error::UnsupportedOperation, "Method Curve#end_point not defined."
|
118
118
|
end
|
119
119
|
|
120
120
|
|
@@ -128,7 +128,7 @@ module RGeo
|
|
128
128
|
# specification, which stipulates an integer return value.
|
129
129
|
|
130
130
|
def is_closed?
|
131
|
-
raise Error::
|
131
|
+
raise Error::UnsupportedOperation, "Method Curve#is_closed? not defined."
|
132
132
|
end
|
133
133
|
|
134
134
|
|
@@ -144,7 +144,7 @@ module RGeo
|
|
144
144
|
# specification, which stipulates an integer return value.
|
145
145
|
|
146
146
|
def is_ring?
|
147
|
-
raise Error::
|
147
|
+
raise Error::UnsupportedOperation, "Method Curve#is_ring? not defined."
|
148
148
|
end
|
149
149
|
|
150
150
|
|
data/lib/rgeo/feature/factory.rb
CHANGED
@@ -78,7 +78,7 @@ module RGeo
|
|
78
78
|
#
|
79
79
|
# Each property has a symbolic name. Names that have no periods are
|
80
80
|
# considered well-known names and are reserved for use by RGeo. If
|
81
|
-
# you want to define your own
|
81
|
+
# you want to define your own properties, use a name that is
|
82
82
|
# namespaced with periods, such as <tt>:'mycompany.myprop'</tt>.
|
83
83
|
#
|
84
84
|
# Property values are dependent on the individual property.
|
@@ -131,9 +131,9 @@ module RGeo
|
|
131
131
|
# Create a feature of type Point.
|
132
132
|
# The x and y parameters should be Float values.
|
133
133
|
#
|
134
|
-
# The extra parameters should be the Z and/or M coordinates, if
|
135
|
-
#
|
136
|
-
#
|
134
|
+
# The extra parameters should be the Z and/or M coordinates, if
|
135
|
+
# supported. If both Z and M coordinates are supported, Z should
|
136
|
+
# be passed first.
|
137
137
|
|
138
138
|
def point(x_, y_, *extra_)
|
139
139
|
nil
|
@@ -143,6 +143,11 @@ module RGeo
|
|
143
143
|
# Create a feature of type LineString.
|
144
144
|
# The given points argument should be an Enumerable of Point
|
145
145
|
# objects, or objects that can be cast to Point.
|
146
|
+
#
|
147
|
+
# Although implementations are free to attempt to handle input
|
148
|
+
# objects that are not of this factory, strictly speaking, the
|
149
|
+
# result of building geometries from objects of the wrong factory
|
150
|
+
# is undefined.
|
146
151
|
|
147
152
|
def line_string(points_)
|
148
153
|
nil
|
@@ -152,6 +157,11 @@ module RGeo
|
|
152
157
|
# Create a feature of type Line.
|
153
158
|
# The given point arguments should be Point objects, or objects
|
154
159
|
# that can be cast to Point.
|
160
|
+
#
|
161
|
+
# Although implementations are free to attempt to handle input
|
162
|
+
# objects that are not of this factory, strictly speaking, the
|
163
|
+
# result of building geometries from objects of the wrong factory
|
164
|
+
# is undefined.
|
155
165
|
|
156
166
|
def line(start_, end_)
|
157
167
|
nil
|
@@ -164,6 +174,11 @@ module RGeo
|
|
164
174
|
# If the first and last points are not equal, the ring is
|
165
175
|
# automatically closed by appending the first point to the end of the
|
166
176
|
# string.
|
177
|
+
#
|
178
|
+
# Although implementations are free to attempt to handle input
|
179
|
+
# objects that are not of this factory, strictly speaking, the
|
180
|
+
# result of building geometries from objects of the wrong factory
|
181
|
+
# is undefined.
|
167
182
|
|
168
183
|
def linear_ring(points_)
|
169
184
|
nil
|
@@ -176,6 +191,11 @@ module RGeo
|
|
176
191
|
# The inner_rings should be a possibly empty Enumerable of
|
177
192
|
# LinearRing (or objects that can be casted to LinearRing).
|
178
193
|
# You may also pass nil to indicate no inner rings.
|
194
|
+
#
|
195
|
+
# Although implementations are free to attempt to handle input
|
196
|
+
# objects that are not of this factory, strictly speaking, the
|
197
|
+
# result of building geometries from objects of the wrong factory
|
198
|
+
# is undefined.
|
179
199
|
|
180
200
|
def polygon(outer_ring_, inner_rings_=nil)
|
181
201
|
nil
|
@@ -184,6 +204,11 @@ module RGeo
|
|
184
204
|
|
185
205
|
# Create a feature of type GeometryCollection.
|
186
206
|
# The elems should be an Enumerable of Geometry objects.
|
207
|
+
#
|
208
|
+
# Although implementations are free to attempt to handle input
|
209
|
+
# objects that are not of this factory, strictly speaking, the
|
210
|
+
# result of building geometries from objects of the wrong factory
|
211
|
+
# is undefined.
|
187
212
|
|
188
213
|
def collection(elems_)
|
189
214
|
nil
|
@@ -195,6 +220,11 @@ module RGeo
|
|
195
220
|
# that can be cast to Point.
|
196
221
|
# Returns nil if any of the contained geometries is not a Point,
|
197
222
|
# which would break the MultiPoint contract.
|
223
|
+
#
|
224
|
+
# Although implementations are free to attempt to handle input
|
225
|
+
# objects that are not of this factory, strictly speaking, the
|
226
|
+
# result of building geometries from objects of the wrong factory
|
227
|
+
# is undefined.
|
198
228
|
|
199
229
|
def multi_point(elems_)
|
200
230
|
nil
|
@@ -206,6 +236,11 @@ module RGeo
|
|
206
236
|
# cast to LineString or any of its subclasses.
|
207
237
|
# Returns nil if any of the contained geometries is not a
|
208
238
|
# LineString, which would break the MultiLineString contract.
|
239
|
+
#
|
240
|
+
# Although implementations are free to attempt to handle input
|
241
|
+
# objects that are not of this factory, strictly speaking, the
|
242
|
+
# result of building geometries from objects of the wrong factory
|
243
|
+
# is undefined.
|
209
244
|
|
210
245
|
def multi_line_string(elems_)
|
211
246
|
nil
|
@@ -219,6 +254,11 @@ module RGeo
|
|
219
254
|
# which would break the MultiPolygon contract.
|
220
255
|
# Also returns nil if any of the other assertions for MultiPolygon
|
221
256
|
# are not met, e.g. if any of the polygons overlap.
|
257
|
+
#
|
258
|
+
# Although implementations are free to attempt to handle input
|
259
|
+
# objects that are not of this factory, strictly speaking, the
|
260
|
+
# result of building geometries from objects of the wrong factory
|
261
|
+
# is undefined.
|
222
262
|
|
223
263
|
def multi_polygon(elems_)
|
224
264
|
nil
|
@@ -239,7 +279,7 @@ module RGeo
|
|
239
279
|
# system.
|
240
280
|
#
|
241
281
|
# NOTE: This is a required method of the factory interface, but the
|
242
|
-
# coordinate system
|
282
|
+
# coordinate system classes themselves are not yet available, so
|
243
283
|
# implementations should just return nil for now.
|
244
284
|
|
245
285
|
def coord_sys
|