rgeo 0.1.12 → 0.1.13
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 +9 -7
- data/README.rdoc +7 -5
- data/Version +1 -1
- data/ext/geos_c_impl/factory.c +12 -19
- data/ext/geos_c_impl/factory.h +15 -21
- data/ext/geos_c_impl/geometry.c +19 -36
- data/ext/geos_c_impl/geometry.h +2 -12
- data/ext/geos_c_impl/geometry_collection.c +38 -157
- data/ext/geos_c_impl/geometry_collection.h +2 -12
- data/ext/geos_c_impl/line_string.c +83 -80
- data/ext/geos_c_impl/line_string.h +2 -12
- data/ext/geos_c_impl/main.c +5 -0
- data/ext/geos_c_impl/point.c +2 -12
- data/ext/geos_c_impl/point.h +2 -12
- data/ext/geos_c_impl/polygon.c +5 -14
- data/ext/geos_c_impl/polygon.h +2 -12
- data/ext/geos_c_impl/preface.h +8 -0
- data/lib/rgeo.rb +34 -16
- data/lib/rgeo/{geography/simple_spherical/geometry_collection_impl.rb → cartesian.rb} +19 -26
- data/lib/rgeo/cartesian/calculations.rb +129 -0
- data/lib/rgeo/cartesian/interface.rb +85 -0
- data/lib/rgeo/cartesian/simple_factory.rb +159 -0
- data/lib/rgeo/cartesian/simple_feature_classes.rb +187 -0
- data/lib/rgeo/cartesian/simple_feature_methods.rb +97 -0
- data/lib/rgeo/features.rb +1 -0
- data/lib/rgeo/features/curve.rb +3 -2
- data/lib/rgeo/features/factory.rb +62 -37
- data/lib/rgeo/features/geometry.rb +10 -32
- data/lib/rgeo/features/geometry_collection.rb +3 -2
- data/lib/rgeo/features/line.rb +3 -2
- data/lib/rgeo/features/line_string.rb +3 -2
- data/lib/rgeo/features/linear_ring.rb +3 -2
- data/lib/rgeo/features/multi_curve.rb +3 -2
- data/lib/rgeo/features/multi_line_string.rb +3 -2
- data/lib/rgeo/features/multi_point.rb +3 -2
- data/lib/rgeo/features/multi_polygon.rb +3 -2
- data/lib/rgeo/features/multi_surface.rb +3 -2
- data/lib/rgeo/features/point.rb +3 -2
- data/lib/rgeo/features/polygon.rb +3 -2
- data/lib/rgeo/features/surface.rb +3 -2
- data/lib/rgeo/features/types.rb +198 -0
- data/lib/rgeo/geography.rb +4 -14
- data/lib/rgeo/geography/factory.rb +7 -64
- data/lib/rgeo/geography/{simple_spherical/geometry_methods.rb → helper.rb} +4 -13
- data/lib/rgeo/geography/simple_mercator/feature_classes.rb +35 -89
- data/lib/rgeo/geography/simple_mercator/feature_methods.rb +22 -31
- data/lib/rgeo/geography/simple_mercator/projector.rb +4 -8
- data/lib/rgeo/geography/simple_spherical/calculations.rb +11 -9
- data/lib/rgeo/geography/simple_spherical/feature_classes.rb +189 -0
- data/lib/rgeo/geography/simple_spherical/{line_string_impl.rb → feature_methods.rb} +16 -64
- data/lib/rgeo/geos/factory.rb +26 -40
- data/lib/rgeo/geos/impl_additions.rb +3 -5
- data/lib/rgeo/{geography/simple_spherical/polygon_impl.rb → impl_helpers.rb} +16 -26
- data/lib/rgeo/impl_helpers/basic_geometry_collection_methods.rb +186 -0
- data/lib/rgeo/impl_helpers/basic_geometry_methods.rb +90 -0
- data/lib/rgeo/impl_helpers/basic_line_string_methods.rb +188 -0
- data/lib/rgeo/impl_helpers/basic_point_methods.rb +149 -0
- data/lib/rgeo/{geography/common/helper.rb → impl_helpers/basic_polygon_methods.rb} +62 -53
- data/lib/rgeo/{geography/common/polygon_methods.rb → impl_helpers/serialization.rb} +50 -42
- data/tests/common/geometry_collection_tests.rb +9 -7
- data/tests/common/multi_line_string_tests.rb +16 -13
- data/tests/common/multi_point_tests.rb +16 -13
- data/tests/common/multi_polygon_tests.rb +8 -6
- data/tests/common/point_tests.rb +1 -2
- data/tests/common/polygon_tests.rb +9 -9
- data/tests/geos/tc_multi_line_string.rb +2 -2
- data/tests/simple_cartesian/tc_calculations.rb +138 -0
- data/tests/simple_cartesian/tc_geometry_collection.rb +68 -0
- data/tests/simple_cartesian/tc_line_string.rb +70 -0
- data/{lib/rgeo/geography/simple_spherical/multi_line_string_impl.rb → tests/simple_cartesian/tc_multi_line_string.rb} +19 -19
- data/{lib/rgeo/geography/simple_spherical/multi_polygon_impl.rb → tests/simple_cartesian/tc_multi_point.rb} +19 -19
- data/{lib/rgeo/geography/common/geometry_methods.rb → tests/simple_cartesian/tc_multi_polygon.rb} +19 -41
- data/{lib/rgeo/geography/simple_spherical/point_impl.rb → tests/simple_cartesian/tc_point.rb} +33 -35
- data/tests/simple_cartesian/tc_polygon.rb +67 -0
- data/tests/simple_spherical/tc_geometry_collection.rb +68 -0
- data/tests/simple_spherical/tc_line_string.rb +10 -171
- data/tests/simple_spherical/tc_multi_line_string.rb +67 -0
- data/{lib/rgeo/geography/simple_spherical/multi_point_impl.rb → tests/simple_spherical/tc_multi_point.rb} +19 -19
- data/tests/simple_spherical/tc_multi_polygon.rb +70 -0
- data/tests/simple_spherical/tc_point.rb +17 -115
- data/tests/simple_spherical/tc_polygon.rb +67 -0
- metadata +46 -18
- data/ext/geos_c_impl/globals.h +0 -58
- data/lib/rgeo/geography/common/geometry_collection_methods.rb +0 -217
- data/lib/rgeo/geography/common/line_string_methods.rb +0 -201
- data/lib/rgeo/geography/common/point_methods.rb +0 -153
@@ -38,19 +38,10 @@ module RGeo
|
|
38
38
|
|
39
39
|
module Geography
|
40
40
|
|
41
|
-
module SimpleMercator
|
41
|
+
module SimpleMercator # :nodoc:
|
42
42
|
|
43
43
|
|
44
|
-
module GeometryMethods
|
45
|
-
|
46
|
-
|
47
|
-
def eql?(rhs_)
|
48
|
-
if rhs_.respond_to?(:factory) && rhs_.factory.eql?(@factory)
|
49
|
-
projection.eql?(rhs_.projection)
|
50
|
-
else
|
51
|
-
false
|
52
|
-
end
|
53
|
-
end
|
44
|
+
module GeometryMethods # :nodoc:
|
54
45
|
|
55
46
|
|
56
47
|
def srid
|
@@ -103,52 +94,52 @@ module RGeo
|
|
103
94
|
|
104
95
|
|
105
96
|
def equals?(rhs_)
|
106
|
-
projection.equals?(
|
97
|
+
projection.equals?(Features.cast(rhs_, factory).projection)
|
107
98
|
end
|
108
99
|
|
109
100
|
|
110
101
|
def disjoint?(rhs_)
|
111
|
-
projection.disjoint?(
|
102
|
+
projection.disjoint?(Features.cast(rhs_, factory).projection)
|
112
103
|
end
|
113
104
|
|
114
105
|
|
115
106
|
def intersects?(rhs_)
|
116
|
-
projection.intersects?(
|
107
|
+
projection.intersects?(Features.cast(rhs_, factory).projection)
|
117
108
|
end
|
118
109
|
|
119
110
|
|
120
111
|
def touches?(rhs_)
|
121
|
-
projection.touches?(
|
112
|
+
projection.touches?(Features.cast(rhs_, factory).projection)
|
122
113
|
end
|
123
114
|
|
124
115
|
|
125
116
|
def crosses?(rhs_)
|
126
|
-
projection.crosses?(
|
117
|
+
projection.crosses?(Features.cast(rhs_, factory).projection)
|
127
118
|
end
|
128
119
|
|
129
120
|
|
130
121
|
def within?(rhs_)
|
131
|
-
projection.within?(
|
122
|
+
projection.within?(Features.cast(rhs_, factory).projection)
|
132
123
|
end
|
133
124
|
|
134
125
|
|
135
126
|
def contains?(rhs_)
|
136
|
-
projection.contains?(
|
127
|
+
projection.contains?(Features.cast(rhs_, factory).projection)
|
137
128
|
end
|
138
129
|
|
139
130
|
|
140
131
|
def overlaps?(rhs_)
|
141
|
-
projection.overlaps?(
|
132
|
+
projection.overlaps?(Features.cast(rhs_, factory).projection)
|
142
133
|
end
|
143
134
|
|
144
135
|
|
145
136
|
def relate(rhs_, pattern_)
|
146
|
-
projection.relate(
|
137
|
+
projection.relate(Features.cast(rhs_, factory).projection, pattern_)
|
147
138
|
end
|
148
139
|
|
149
140
|
|
150
141
|
def distance(rhs_)
|
151
|
-
projection.distance(
|
142
|
+
projection.distance(Features.cast(rhs_, factory).projection) / scaling_factor
|
152
143
|
end
|
153
144
|
|
154
145
|
|
@@ -163,29 +154,29 @@ module RGeo
|
|
163
154
|
|
164
155
|
|
165
156
|
def intersection(rhs_)
|
166
|
-
factory.unproject(projection.intersection(
|
157
|
+
factory.unproject(projection.intersection(Features.cast(rhs_, factory).projection))
|
167
158
|
end
|
168
159
|
|
169
160
|
|
170
161
|
def union(rhs_)
|
171
|
-
factory.unproject(projection.union(
|
162
|
+
factory.unproject(projection.union(Features.cast(rhs_, factory).projection))
|
172
163
|
end
|
173
164
|
|
174
165
|
|
175
166
|
def difference(rhs_)
|
176
|
-
factory.unproject(projection.difference(
|
167
|
+
factory.unproject(projection.difference(Features.cast(rhs_, factory).projection))
|
177
168
|
end
|
178
169
|
|
179
170
|
|
180
171
|
def sym_difference(rhs_)
|
181
|
-
factory.unproject(projection.sym_difference(
|
172
|
+
factory.unproject(projection.sym_difference(Features.cast(rhs_, factory).projection))
|
182
173
|
end
|
183
174
|
|
184
175
|
|
185
176
|
end
|
186
177
|
|
187
178
|
|
188
|
-
module GeometryCollectionMethods
|
179
|
+
module GeometryCollectionMethods # :nodoc:
|
189
180
|
|
190
181
|
|
191
182
|
def scaling_factor
|
@@ -196,7 +187,7 @@ module RGeo
|
|
196
187
|
end
|
197
188
|
|
198
189
|
|
199
|
-
module NCurveMethods
|
190
|
+
module NCurveMethods # :nodoc:
|
200
191
|
|
201
192
|
|
202
193
|
def length
|
@@ -207,7 +198,7 @@ module RGeo
|
|
207
198
|
end
|
208
199
|
|
209
200
|
|
210
|
-
module CurveMethods
|
201
|
+
module CurveMethods # :nodoc:
|
211
202
|
|
212
203
|
|
213
204
|
def scaling_factor
|
@@ -218,7 +209,7 @@ module RGeo
|
|
218
209
|
end
|
219
210
|
|
220
211
|
|
221
|
-
module LineStringMethods
|
212
|
+
module LineStringMethods # :nodoc:
|
222
213
|
|
223
214
|
|
224
215
|
def _validate_geometry
|
@@ -251,7 +242,7 @@ module RGeo
|
|
251
242
|
end
|
252
243
|
|
253
244
|
|
254
|
-
module NSurfaceMethods
|
245
|
+
module NSurfaceMethods # :nodoc:
|
255
246
|
|
256
247
|
|
257
248
|
def area
|
@@ -273,7 +264,7 @@ module RGeo
|
|
273
264
|
end
|
274
265
|
|
275
266
|
|
276
|
-
module SurfaceMethods
|
267
|
+
module SurfaceMethods # :nodoc:
|
277
268
|
|
278
269
|
|
279
270
|
def scaling_factor
|
@@ -38,21 +38,17 @@ module RGeo
|
|
38
38
|
|
39
39
|
module Geography
|
40
40
|
|
41
|
-
module SimpleMercator
|
41
|
+
module SimpleMercator # :nodoc:
|
42
42
|
|
43
43
|
|
44
44
|
EQUATORIAL_RADIUS = 6378137.0
|
45
45
|
|
46
46
|
|
47
|
-
class Projector
|
47
|
+
class Projector # :nodoc:
|
48
48
|
|
49
49
|
def initialize(geography_factory_, opts_={})
|
50
50
|
@geography_factory = geography_factory_
|
51
|
-
|
52
|
-
@projection_factory = Geos.factory(:srid => 3857, :buffer_resolution => opts_[:buffer_resolution], :lenient_multi_polygon_assertions => opts_[:lenient_multi_polygon_assertions])
|
53
|
-
else
|
54
|
-
@projection_factory = nil
|
55
|
-
end
|
51
|
+
@projection_factory = Cartesian.preferred_factory(:srid => 3857, :buffer_resolution => opts_[:buffer_resolution], :lenient_multi_polygon_assertions => opts_[:lenient_multi_polygon_assertions])
|
56
52
|
end
|
57
53
|
|
58
54
|
|
@@ -69,7 +65,7 @@ module RGeo
|
|
69
65
|
def unproject(geometry_)
|
70
66
|
case geometry_
|
71
67
|
when Features::Point
|
72
|
-
dpr_ =
|
68
|
+
dpr_ = Helper::DEGREES_PER_RADIAN
|
73
69
|
radius_ = EQUATORIAL_RADIUS
|
74
70
|
@geography_factory.point(geometry_.x / radius_ * dpr_,
|
75
71
|
(2.0 * ::Math.atan(::Math.exp(geometry_.y / radius_)) - ::Math::PI / 2.0) * dpr_)
|
@@ -38,7 +38,7 @@ module RGeo
|
|
38
38
|
|
39
39
|
module Geography
|
40
40
|
|
41
|
-
module SimpleSpherical
|
41
|
+
module SimpleSpherical # :nodoc:
|
42
42
|
|
43
43
|
|
44
44
|
RADIUS = 6371007.2
|
@@ -55,7 +55,7 @@ module RGeo
|
|
55
55
|
# This object is also used to represent a great circle, as its axis
|
56
56
|
# of rotation.
|
57
57
|
|
58
|
-
class PointXYZ
|
58
|
+
class PointXYZ # :nodoc:
|
59
59
|
|
60
60
|
def initialize(x_, y_, z_)
|
61
61
|
r_ = ::Math.sqrt(x_ * x_ + y_ * y_ + z_ * z_)
|
@@ -85,7 +85,7 @@ module RGeo
|
|
85
85
|
def latlon
|
86
86
|
lat_rad_ = ::Math.asin(@z)
|
87
87
|
lon_rad_ = ::Math.atan2(@y, @x) rescue 0.0
|
88
|
-
rpd_ =
|
88
|
+
rpd_ = Helper::RADIANS_PER_DEGREE
|
89
89
|
[lat_rad_ / rpd_, lon_rad_ / rpd_]
|
90
90
|
end
|
91
91
|
|
@@ -120,7 +120,7 @@ module RGeo
|
|
120
120
|
|
121
121
|
|
122
122
|
def self.from_latlon(lat_, lon_)
|
123
|
-
rpd_ =
|
123
|
+
rpd_ = Helper::RADIANS_PER_DEGREE
|
124
124
|
lat_rad_ = rpd_ * lat_
|
125
125
|
lon_rad_ = rpd_ * lon_
|
126
126
|
z_ = ::Math.sin(lat_rad_)
|
@@ -135,7 +135,7 @@ module RGeo
|
|
135
135
|
|
136
136
|
# Represents a finite arc on the sphere.
|
137
137
|
|
138
|
-
class ArcXYZ
|
138
|
+
class ArcXYZ # :nodoc:
|
139
139
|
|
140
140
|
def initialize(start_, end_)
|
141
141
|
@s = start_
|
@@ -159,6 +159,12 @@ module RGeo
|
|
159
159
|
alias_method :==, :eql?
|
160
160
|
|
161
161
|
|
162
|
+
def degenerate?
|
163
|
+
axis_ = axis
|
164
|
+
axis_.x == 0 && axis_.y == 0 && axis_.z == 0
|
165
|
+
end
|
166
|
+
|
167
|
+
|
162
168
|
def axis
|
163
169
|
if @axis == false
|
164
170
|
@axis = @s % @e
|
@@ -193,10 +199,6 @@ module RGeo
|
|
193
199
|
end
|
194
200
|
|
195
201
|
|
196
|
-
module Calculations
|
197
|
-
end
|
198
|
-
|
199
|
-
|
200
202
|
end
|
201
203
|
|
202
204
|
end
|
@@ -0,0 +1,189 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# Spherical geography feature classes
|
4
|
+
#
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
# Copyright 2010 Daniel Azuma
|
7
|
+
#
|
8
|
+
# All rights reserved.
|
9
|
+
#
|
10
|
+
# Redistribution and use in source and binary forms, with or without
|
11
|
+
# modification, are permitted provided that the following conditions are met:
|
12
|
+
#
|
13
|
+
# * Redistributions of source code must retain the above copyright notice,
|
14
|
+
# this list of conditions and the following disclaimer.
|
15
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
16
|
+
# this list of conditions and the following disclaimer in the documentation
|
17
|
+
# and/or other materials provided with the distribution.
|
18
|
+
# * Neither the name of the copyright holder, nor the names of any other
|
19
|
+
# contributors to this software, may be used to endorse or promote products
|
20
|
+
# derived from this software without specific prior written permission.
|
21
|
+
#
|
22
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
23
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
24
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
25
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
26
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
27
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
28
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
29
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
30
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
31
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
33
|
+
# -----------------------------------------------------------------------------
|
34
|
+
;
|
35
|
+
|
36
|
+
|
37
|
+
module RGeo
|
38
|
+
|
39
|
+
module Geography
|
40
|
+
|
41
|
+
module SimpleSpherical # :nodoc:
|
42
|
+
|
43
|
+
|
44
|
+
class PointImpl # :nodoc:
|
45
|
+
|
46
|
+
|
47
|
+
include Features::Point
|
48
|
+
include ImplHelpers::BasicGeometryMethods
|
49
|
+
include SimpleSpherical::GeometryMethods
|
50
|
+
include ImplHelpers::BasicPointMethods
|
51
|
+
|
52
|
+
|
53
|
+
def _validate_geometry
|
54
|
+
@x = @x % 360.0
|
55
|
+
@x -= 360.0 if @x >= 180.0
|
56
|
+
@y = 90.0 if @y > 90.0
|
57
|
+
@y = -90.0 if @y < -90.0
|
58
|
+
super
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
def _xyz
|
63
|
+
@xyz ||= PointXYZ.from_latlon(@y, @x)
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
def distance(rhs_)
|
68
|
+
rhs_ = Features.cast(rhs_, @factory)
|
69
|
+
case rhs_
|
70
|
+
when PointImpl
|
71
|
+
_xyz.dist_to_point(rhs_._xyz) * SimpleSpherical::RADIUS
|
72
|
+
else
|
73
|
+
super
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
class LineStringImpl # :nodoc:
|
82
|
+
|
83
|
+
|
84
|
+
include Features::LineString
|
85
|
+
include ImplHelpers::BasicGeometryMethods
|
86
|
+
include SimpleSpherical::GeometryMethods
|
87
|
+
include ImplHelpers::BasicLineStringMethods
|
88
|
+
include SimpleSpherical::LineStringMethods
|
89
|
+
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
class LineImpl # :nodoc:
|
95
|
+
|
96
|
+
|
97
|
+
include Features::Line
|
98
|
+
include ImplHelpers::BasicGeometryMethods
|
99
|
+
include SimpleSpherical::GeometryMethods
|
100
|
+
include ImplHelpers::BasicLineStringMethods
|
101
|
+
include SimpleSpherical::LineStringMethods
|
102
|
+
include ImplHelpers::BasicLineMethods
|
103
|
+
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
|
108
|
+
class LinearRingImpl # :nodoc:
|
109
|
+
|
110
|
+
|
111
|
+
include Features::Line
|
112
|
+
include ImplHelpers::BasicGeometryMethods
|
113
|
+
include SimpleSpherical::GeometryMethods
|
114
|
+
include ImplHelpers::BasicLineStringMethods
|
115
|
+
include SimpleSpherical::LineStringMethods
|
116
|
+
include ImplHelpers::BasicLinearRingMethods
|
117
|
+
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
class PolygonImpl # :nodoc:
|
123
|
+
|
124
|
+
|
125
|
+
include Features::Polygon
|
126
|
+
include ImplHelpers::BasicGeometryMethods
|
127
|
+
include SimpleSpherical::GeometryMethods
|
128
|
+
include ImplHelpers::BasicPolygonMethods
|
129
|
+
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
|
134
|
+
class GeometryCollectionImpl # :nodoc:
|
135
|
+
|
136
|
+
|
137
|
+
include Features::GeometryCollection
|
138
|
+
include ImplHelpers::BasicGeometryMethods
|
139
|
+
include SimpleSpherical::GeometryMethods
|
140
|
+
include ImplHelpers::BasicGeometryCollectionMethods
|
141
|
+
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
|
146
|
+
class MultiPointImpl # :nodoc:
|
147
|
+
|
148
|
+
|
149
|
+
include Features::GeometryCollection
|
150
|
+
include ImplHelpers::BasicGeometryMethods
|
151
|
+
include SimpleSpherical::GeometryMethods
|
152
|
+
include ImplHelpers::BasicGeometryCollectionMethods
|
153
|
+
include ImplHelpers::BasicMultiPointMethods
|
154
|
+
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
|
159
|
+
class MultiLineStringImpl # :nodoc:
|
160
|
+
|
161
|
+
|
162
|
+
include Features::GeometryCollection
|
163
|
+
include ImplHelpers::BasicGeometryMethods
|
164
|
+
include SimpleSpherical::GeometryMethods
|
165
|
+
include ImplHelpers::BasicGeometryCollectionMethods
|
166
|
+
include ImplHelpers::BasicMultiLineStringMethods
|
167
|
+
|
168
|
+
|
169
|
+
end
|
170
|
+
|
171
|
+
|
172
|
+
class MultiPolygonImpl # :nodoc:
|
173
|
+
|
174
|
+
|
175
|
+
include Features::GeometryCollection
|
176
|
+
include ImplHelpers::BasicGeometryMethods
|
177
|
+
include SimpleSpherical::GeometryMethods
|
178
|
+
include ImplHelpers::BasicGeometryCollectionMethods
|
179
|
+
include ImplHelpers::BasicMultiPolygonMethods
|
180
|
+
|
181
|
+
|
182
|
+
end
|
183
|
+
|
184
|
+
|
185
|
+
end
|
186
|
+
|
187
|
+
end
|
188
|
+
|
189
|
+
end
|