rgeo 0.1.14 → 0.1.15
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +6 -0
- data/Version +1 -1
- data/lib/rgeo.rb +80 -30
- data/lib/rgeo/all.rb +48 -0
- data/lib/rgeo/cartesian.rb +37 -12
- data/lib/rgeo/cartesian/calculations.rb +5 -0
- data/lib/rgeo/cartesian/{simple_factory.rb → factory.rb} +14 -17
- data/lib/rgeo/cartesian/{simple_feature_classes.rb → feature_classes.rb} +55 -55
- data/lib/rgeo/cartesian/{simple_feature_methods.rb → feature_methods.rb} +7 -3
- data/lib/rgeo/cartesian/interface.rb +7 -3
- data/lib/rgeo/errors.rb +4 -0
- data/lib/rgeo/features.rb +25 -20
- data/lib/rgeo/geo_json.rb +10 -8
- data/lib/rgeo/geography.rb +10 -16
- data/lib/rgeo/geography/all.rb +40 -0
- data/lib/rgeo/geography/factory.rb +2 -2
- data/lib/rgeo/geography/{factories.rb → interface.rb} +4 -2
- data/lib/rgeo/geography/simple_mercator.rb +69 -0
- data/lib/rgeo/geography/simple_mercator/feature_classes.rb +62 -62
- data/lib/rgeo/geography/simple_mercator/projector.rb +1 -1
- data/lib/rgeo/geography/simple_spherical.rb +68 -0
- data/lib/rgeo/geography/simple_spherical/calculations.rb +2 -2
- data/lib/rgeo/geography/simple_spherical/feature_classes.rb +44 -44
- data/lib/rgeo/geos.rb +12 -9
- data/lib/rgeo/impl_helpers.rb +14 -9
- data/lib/rgeo/impl_helpers/basic_geometry_collection_methods.rb +10 -0
- data/lib/rgeo/impl_helpers/basic_point_methods.rb +3 -0
- data/lib/rgeo/{geography/helper.rb → impl_helpers/math.rb} +3 -3
- data/lib/rgeo/wkrep.rb +32 -12
- data/lib/rgeo/wkrep/wkb_generator.rb +95 -9
- data/lib/rgeo/wkrep/wkb_parser.rb +117 -9
- data/lib/rgeo/wkrep/wkt_generator.rb +106 -18
- data/lib/rgeo/wkrep/wkt_parser.rb +203 -59
- data/tests/simple_cartesian/tc_calculations.rb +8 -8
- data/tests/wkrep/tc_wkt_generator.rb +362 -0
- data/tests/wkrep/tc_wkt_parser.rb +490 -0
- metadata +16 -8
data/History.rdoc
CHANGED
data/Version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.15
|
data/lib/rgeo.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -----------------------------------------------------------------------------
|
2
2
|
#
|
3
|
-
# RGeo
|
3
|
+
# RGeo main file
|
4
4
|
#
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
# Copyright 2010 Daniel Azuma
|
@@ -34,30 +34,80 @@
|
|
34
34
|
;
|
35
35
|
|
36
36
|
|
37
|
-
# RGeo is a spatial data library for Ruby.
|
37
|
+
# RGeo is a spatial data library for Ruby. It focuses on the storage and
|
38
|
+
# manipulation of spatial data types such as points, lines, and polygons.
|
39
|
+
#
|
40
|
+
# === RGeo Modules
|
41
|
+
#
|
42
|
+
# RGeo comprises a number of modules.
|
38
43
|
#
|
39
44
|
# The RGeo::Features module contains interface specifications for spatial
|
40
45
|
# objects implemented by RGeo. These interfaces closely follow the OGC
|
41
|
-
# Simple Features Specifiation (SFS).
|
46
|
+
# Simple Features Specifiation (SFS). This module forms the core of RGeo.
|
42
47
|
#
|
43
|
-
# The RGeo::Cartesian module provides basic
|
44
|
-
# objects in a Cartesian (flat) coordinate system.
|
45
|
-
#
|
46
|
-
#
|
48
|
+
# The RGeo::Cartesian module provides a basic pure ruby implementation of
|
49
|
+
# spatial objects in a Cartesian (flat) coordinate system. It does not
|
50
|
+
# implement all the geometric analysis operations in the SFS, but it
|
51
|
+
# implements the data structures without requiring an external C library,
|
52
|
+
# so it is often sufficient for basic applications.
|
47
53
|
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
# Cartesian geometry
|
54
|
+
# The RGeo::Geos module is another cartesian implementation that wraps the
|
55
|
+
# GEOS library to provide a full, high-performance implementation of
|
56
|
+
# Cartesian geometry that includes every operation defined in the SFS. It
|
57
|
+
# requires GEOS 3.2 or later.
|
51
58
|
#
|
52
59
|
# The RGeo::Geography module contains spatial implementations that
|
53
|
-
# operate in latitude-longitude coordinates
|
54
|
-
#
|
55
|
-
#
|
60
|
+
# operate in latitude-longitude coordinates and are well-suited for
|
61
|
+
# geographic location based applications.
|
62
|
+
#
|
63
|
+
# One of the geography implementations is RGeo::Geography::SimpleMercator,
|
64
|
+
# which uses the same coordinate system and projection as that used by
|
65
|
+
# Google and Bing Maps, and is ideally suited for visualization
|
66
|
+
# applications based on those technologies.
|
67
|
+
#
|
68
|
+
# The RGeo::Geography::SimpleSpherical provides another geography
|
69
|
+
# implementation that does not use a projection, but instead performs
|
70
|
+
# geometric operations on a spherical approximation of the globe. This
|
71
|
+
# implementation does not provide all the geometric analysis operations
|
72
|
+
# in the SFS, but it may be useful for cases when you need more accuracy
|
73
|
+
# than a projected implementation would provide.
|
74
|
+
#
|
75
|
+
# The RGeo::WKRep module contains tools for reading and writing spatial
|
76
|
+
# data in the OGC Well-Known Text (WKT) and Well-Known Binary (WKB)
|
77
|
+
# representations. It also supports their variants such as the PostGIS
|
78
|
+
# EWKT and EWKB representations.
|
56
79
|
#
|
57
80
|
# The RGeo::GeoJSON module contains tools for GeoJSON serialization of
|
58
|
-
# spatial objects.
|
81
|
+
# spatial objects. These tools work with any of the spatial object
|
82
|
+
# implementations.
|
83
|
+
#
|
84
|
+
# === Loading the library
|
59
85
|
#
|
60
|
-
#
|
86
|
+
# After installing the RGeo gem, you can load the library with:
|
87
|
+
# require 'rgeo'
|
88
|
+
#
|
89
|
+
# This will "lazy-load" the modules as they are referenced or needed
|
90
|
+
# (using autoload).
|
91
|
+
#
|
92
|
+
# If, for performance reasons, or because you want to run RGeo in a
|
93
|
+
# multithreaded environment, you wish to eagerly load RGeo, you may do so
|
94
|
+
# with:
|
95
|
+
# require 'rgeo/all'
|
96
|
+
#
|
97
|
+
# You may also eagerly load individual modules:
|
98
|
+
# require 'rgeo/features'
|
99
|
+
# require 'rgeo/cartesian'
|
100
|
+
# require 'rgeo/geos'
|
101
|
+
# require 'rgeo/geography'
|
102
|
+
# require 'rgeo/geography/simple_mercator'
|
103
|
+
# require 'rgeo/geography/simple_spherical'
|
104
|
+
# require 'rgeo/wkrep'
|
105
|
+
# require 'rgeo/geo_json'
|
106
|
+
#
|
107
|
+
# === Future modules
|
108
|
+
#
|
109
|
+
# RGeo is in active development with several additional modules planned
|
110
|
+
# for future releases. These include:
|
61
111
|
#
|
62
112
|
# * RGeo::Shapefile, which provides tools for reading and writing
|
63
113
|
# spatial objects in the ESRI shapefile format.
|
@@ -65,23 +115,23 @@
|
|
65
115
|
# for developing location-based web applications.
|
66
116
|
# * RGeo::JTS, which provides a Cartesian SFS implementation backed by
|
67
117
|
# the JTS library (which can run natively in JRuby.)
|
118
|
+
# * RGeo::Projection, which wraps and provides an API for the proj4
|
119
|
+
# library, providing a way to compute arbitrary projections.
|
68
120
|
# * RGeo::Geography extensions to provide highly accurate ellipsoidal
|
69
|
-
# geometric calculations, and support arbitrary map projections
|
121
|
+
# geometric calculations, and support arbitrary map projections
|
122
|
+
# via RGeo::Projection.
|
70
123
|
|
71
124
|
module RGeo
|
125
|
+
|
126
|
+
autoload(:Cartesian, 'rgeo/cartesian')
|
127
|
+
autoload(:Errors, 'rgeo/errors')
|
128
|
+
autoload(:Features, 'rgeo/features')
|
129
|
+
autoload(:GeoJSON, 'rgeo/geo_json')
|
130
|
+
autoload(:Geography, 'rgeo/geography')
|
131
|
+
autoload(:Geos, 'rgeo/geos')
|
132
|
+
autoload(:ImplHelpers, 'rgeo/impl_helpers')
|
133
|
+
autoload(:WKRep, 'rgeo/wkrep')
|
134
|
+
|
72
135
|
end
|
73
136
|
|
74
|
-
|
75
|
-
# The source files that should be required by default.
|
76
|
-
paths_ = [
|
77
|
-
'version',
|
78
|
-
'errors',
|
79
|
-
'features',
|
80
|
-
'impl_helpers',
|
81
|
-
'wkrep',
|
82
|
-
'geos',
|
83
|
-
'cartesian',
|
84
|
-
'geography',
|
85
|
-
'geo_json',
|
86
|
-
]
|
87
|
-
paths_.each{ |path_| require "rgeo/#{path_}" }
|
137
|
+
require 'rgeo/version'
|
data/lib/rgeo/all.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
#
|
3
|
+
# All RGeo submodules
|
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
|
+
# Parent file
|
38
|
+
require 'rgeo'
|
39
|
+
|
40
|
+
# Implementation files
|
41
|
+
require 'rgeo/errors'
|
42
|
+
require 'rgeo/features'
|
43
|
+
require 'rgeo/impl_helpers'
|
44
|
+
require 'rgeo/wkrep'
|
45
|
+
require 'rgeo/geos'
|
46
|
+
require 'rgeo/cartesian'
|
47
|
+
require 'rgeo/geography/all'
|
48
|
+
require 'rgeo/geo_json'
|
data/lib/rgeo/cartesian.rb
CHANGED
@@ -34,10 +34,35 @@
|
|
34
34
|
;
|
35
35
|
|
36
36
|
|
37
|
+
# Parent file
|
38
|
+
require 'rgeo'
|
39
|
+
|
40
|
+
|
37
41
|
module RGeo
|
38
42
|
|
39
43
|
|
40
|
-
# The
|
44
|
+
# The Cartesian module provides a simple spatial implementation using
|
45
|
+
# the Cartesian coordinate system. This is the default implementation
|
46
|
+
# used by RGeo if no full-featured implementation, such as Geos, is
|
47
|
+
# available.
|
48
|
+
#
|
49
|
+
# The Cartesian implementation can handle all the SFS 1.1 types, and
|
50
|
+
# provides extensions for Z and M coordinates. It also provides WKT
|
51
|
+
# and WKB serialization using the WKRep module.
|
52
|
+
#
|
53
|
+
# However, the Cartesian implementation does not implement many of
|
54
|
+
# the more advanced geometric operations. Limitations include:
|
55
|
+
# * relational operators such as Features::Geometry#intersects? are
|
56
|
+
# not implemented for most types.
|
57
|
+
# * relational constructors such as Features::Geometry#union are
|
58
|
+
# not implemented for most types.
|
59
|
+
# * buffer, boundary, and convex hull calculation are not implemented
|
60
|
+
# for most types.
|
61
|
+
# * distance and area calculation are not implemented for most types,
|
62
|
+
# though length for LineStrings is implemented.
|
63
|
+
# * equality and simplicity evaluation are implemented for some types
|
64
|
+
# but not all types.
|
65
|
+
# * assertions for polygons and multipolygons are not implemented.
|
41
66
|
|
42
67
|
module Cartesian
|
43
68
|
end
|
@@ -46,14 +71,14 @@ module RGeo
|
|
46
71
|
end
|
47
72
|
|
48
73
|
|
49
|
-
# Dependency
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
74
|
+
# Dependency files.
|
75
|
+
require 'rgeo/features'
|
76
|
+
require 'rgeo/wkrep'
|
77
|
+
require 'rgeo/impl_helpers'
|
78
|
+
|
79
|
+
# Implementation files.
|
80
|
+
require 'rgeo/cartesian/calculations'
|
81
|
+
require 'rgeo/cartesian/feature_methods'
|
82
|
+
require 'rgeo/cartesian/feature_classes'
|
83
|
+
require 'rgeo/cartesian/factory'
|
84
|
+
require 'rgeo/cartesian/interface'
|
@@ -42,18 +42,14 @@ module RGeo
|
|
42
42
|
# This class implements the factory for the simple cartesian
|
43
43
|
# implementation.
|
44
44
|
|
45
|
-
class
|
45
|
+
class Factory
|
46
46
|
|
47
47
|
include Features::Factory::Instance
|
48
48
|
|
49
49
|
|
50
50
|
# Create a new simple cartesian factory.
|
51
51
|
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
# <tt>:srid</tt>::
|
55
|
-
# The SRID reported by features created by this factory.
|
56
|
-
# Default is 0.
|
52
|
+
# See ::RGeo::Cartesian::simple_factory for a list of supported options.
|
57
53
|
|
58
54
|
def initialize(opts_={})
|
59
55
|
@srid = opts_[:srid].to_i
|
@@ -94,82 +90,83 @@ module RGeo
|
|
94
90
|
# See ::RGeo::Features::Factory#parse_wkt
|
95
91
|
|
96
92
|
def parse_wkt(str_)
|
97
|
-
WKRep::WKTParser.new(
|
93
|
+
::RGeo::WKRep::WKTParser.new(:default_factory => self).parse(str_)
|
98
94
|
end
|
99
95
|
|
100
96
|
|
101
97
|
# See ::RGeo::Features::Factory#parse_wkb
|
102
98
|
|
103
99
|
def parse_wkb(str_)
|
104
|
-
WKRep::WKBParser.new(self).parse(str_)
|
100
|
+
::RGeo::WKRep::WKBParser.new(:default_factory => self).parse(str_)
|
105
101
|
end
|
106
102
|
|
107
103
|
|
108
104
|
# See ::RGeo::Features::Factory#point
|
109
105
|
|
110
106
|
def point(x_, y_, *extra_)
|
111
|
-
|
107
|
+
PointImpl.new(self, x_, y_, *extra_) rescue nil
|
112
108
|
end
|
113
109
|
|
114
110
|
|
115
111
|
# See ::RGeo::Features::Factory#line_string
|
116
112
|
|
117
113
|
def line_string(points_)
|
118
|
-
|
114
|
+
LineStringImpl.new(self, points_) rescue nil
|
119
115
|
end
|
120
116
|
|
121
117
|
|
122
118
|
# See ::RGeo::Features::Factory#line
|
123
119
|
|
124
120
|
def line(start_, end_)
|
125
|
-
|
121
|
+
LineImpl.new(self, start_, end_) rescue nil
|
126
122
|
end
|
127
123
|
|
128
124
|
|
129
125
|
# See ::RGeo::Features::Factory#linear_ring
|
130
126
|
|
131
127
|
def linear_ring(points_)
|
132
|
-
|
128
|
+
LinearRingImpl.new(self, points_) rescue nil
|
133
129
|
end
|
134
130
|
|
135
131
|
|
136
132
|
# See ::RGeo::Features::Factory#polygon
|
137
133
|
|
138
134
|
def polygon(outer_ring_, inner_rings_=nil)
|
139
|
-
|
135
|
+
PolygonImpl.new(self, outer_ring_, inner_rings_) rescue nil
|
140
136
|
end
|
141
137
|
|
142
138
|
|
143
139
|
# See ::RGeo::Features::Factory#collection
|
144
140
|
|
145
141
|
def collection(elems_)
|
146
|
-
|
142
|
+
GeometryCollectionImpl.new(self, elems_) rescue nil
|
147
143
|
end
|
148
144
|
|
149
145
|
|
150
146
|
# See ::RGeo::Features::Factory#multi_point
|
151
147
|
|
152
148
|
def multi_point(elems_)
|
153
|
-
|
149
|
+
MultiPointImpl.new(self, elems_) rescue nil
|
154
150
|
end
|
155
151
|
|
156
152
|
|
157
153
|
# See ::RGeo::Features::Factory#multi_line_string
|
158
154
|
|
159
155
|
def multi_line_string(elems_)
|
160
|
-
|
156
|
+
MultiLineStringImpl.new(self, elems_) rescue nil
|
161
157
|
end
|
162
158
|
|
163
159
|
|
164
160
|
# See ::RGeo::Features::Factory#multi_polygon
|
165
161
|
|
166
162
|
def multi_polygon(elems_)
|
167
|
-
|
163
|
+
MultiPolygonImpl.new(self, elems_) rescue nil
|
168
164
|
end
|
169
165
|
|
170
166
|
|
171
167
|
end
|
172
168
|
|
169
|
+
|
173
170
|
end
|
174
171
|
|
175
172
|
end
|
@@ -39,13 +39,13 @@ module RGeo
|
|
39
39
|
module Cartesian
|
40
40
|
|
41
41
|
|
42
|
-
class
|
42
|
+
class PointImpl # :nodoc:
|
43
43
|
|
44
44
|
|
45
|
-
include Features::Point
|
46
|
-
include ImplHelpers::BasicGeometryMethods
|
47
|
-
include Cartesian::
|
48
|
-
include ImplHelpers::BasicPointMethods
|
45
|
+
include ::RGeo::Features::Point
|
46
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
47
|
+
include ::RGeo::Cartesian::GeometryMethods
|
48
|
+
include ::RGeo::ImplHelpers::BasicPointMethods
|
49
49
|
|
50
50
|
|
51
51
|
def _validate_geometry
|
@@ -63,9 +63,9 @@ module RGeo
|
|
63
63
|
|
64
64
|
|
65
65
|
def distance(rhs_)
|
66
|
-
rhs_ = Features.cast(rhs_, @factory)
|
66
|
+
rhs_ = ::RGeo::Features.cast(rhs_, @factory)
|
67
67
|
case rhs_
|
68
|
-
when
|
68
|
+
when PointImpl
|
69
69
|
dx_ = @x - rhs_.x
|
70
70
|
dy_ = @y - rhs_.y
|
71
71
|
::Math.sqrt(dx_ * dx_ + dy_ * dy_)
|
@@ -78,105 +78,105 @@ module RGeo
|
|
78
78
|
end
|
79
79
|
|
80
80
|
|
81
|
-
class
|
81
|
+
class LineStringImpl # :nodoc:
|
82
82
|
|
83
83
|
|
84
|
-
include Features::LineString
|
85
|
-
include ImplHelpers::BasicGeometryMethods
|
86
|
-
include Cartesian::
|
87
|
-
include ImplHelpers::BasicLineStringMethods
|
88
|
-
include Cartesian::
|
84
|
+
include ::RGeo::Features::LineString
|
85
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
86
|
+
include ::RGeo::Cartesian::GeometryMethods
|
87
|
+
include ::RGeo::ImplHelpers::BasicLineStringMethods
|
88
|
+
include ::RGeo::Cartesian::LineStringMethods
|
89
89
|
|
90
90
|
|
91
91
|
end
|
92
92
|
|
93
93
|
|
94
|
-
class
|
94
|
+
class LineImpl # :nodoc:
|
95
95
|
|
96
96
|
|
97
|
-
include Features::Line
|
98
|
-
include ImplHelpers::BasicGeometryMethods
|
99
|
-
include Cartesian::
|
100
|
-
include ImplHelpers::BasicLineStringMethods
|
101
|
-
include Cartesian::
|
102
|
-
include ImplHelpers::BasicLineMethods
|
97
|
+
include ::RGeo::Features::Line
|
98
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
99
|
+
include ::RGeo::Cartesian::GeometryMethods
|
100
|
+
include ::RGeo::ImplHelpers::BasicLineStringMethods
|
101
|
+
include ::RGeo::Cartesian::LineStringMethods
|
102
|
+
include ::RGeo::ImplHelpers::BasicLineMethods
|
103
103
|
|
104
104
|
|
105
105
|
end
|
106
106
|
|
107
107
|
|
108
|
-
class
|
108
|
+
class LinearRingImpl # :nodoc:
|
109
109
|
|
110
110
|
|
111
|
-
include Features::Line
|
112
|
-
include ImplHelpers::BasicGeometryMethods
|
113
|
-
include Cartesian::
|
114
|
-
include ImplHelpers::BasicLineStringMethods
|
115
|
-
include Cartesian::
|
116
|
-
include ImplHelpers::BasicLinearRingMethods
|
111
|
+
include ::RGeo::Features::Line
|
112
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
113
|
+
include ::RGeo::Cartesian::GeometryMethods
|
114
|
+
include ::RGeo::ImplHelpers::BasicLineStringMethods
|
115
|
+
include ::RGeo::Cartesian::LineStringMethods
|
116
|
+
include ::RGeo::ImplHelpers::BasicLinearRingMethods
|
117
117
|
|
118
118
|
|
119
119
|
end
|
120
120
|
|
121
121
|
|
122
|
-
class
|
122
|
+
class PolygonImpl # :nodoc:
|
123
123
|
|
124
124
|
|
125
|
-
include Features::Polygon
|
126
|
-
include ImplHelpers::BasicGeometryMethods
|
127
|
-
include Cartesian::
|
128
|
-
include ImplHelpers::BasicPolygonMethods
|
125
|
+
include ::RGeo::Features::Polygon
|
126
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
127
|
+
include ::RGeo::Cartesian::GeometryMethods
|
128
|
+
include ::RGeo::ImplHelpers::BasicPolygonMethods
|
129
129
|
|
130
130
|
|
131
131
|
end
|
132
132
|
|
133
133
|
|
134
|
-
class
|
134
|
+
class GeometryCollectionImpl # :nodoc:
|
135
135
|
|
136
136
|
|
137
|
-
include Features::GeometryCollection
|
138
|
-
include ImplHelpers::BasicGeometryMethods
|
139
|
-
include Cartesian::
|
140
|
-
include ImplHelpers::BasicGeometryCollectionMethods
|
137
|
+
include ::RGeo::Features::GeometryCollection
|
138
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
139
|
+
include ::RGeo::Cartesian::GeometryMethods
|
140
|
+
include ::RGeo::ImplHelpers::BasicGeometryCollectionMethods
|
141
141
|
|
142
142
|
|
143
143
|
end
|
144
144
|
|
145
145
|
|
146
|
-
class
|
146
|
+
class MultiPointImpl # :nodoc:
|
147
147
|
|
148
148
|
|
149
|
-
include Features::GeometryCollection
|
150
|
-
include ImplHelpers::BasicGeometryMethods
|
151
|
-
include Cartesian::
|
152
|
-
include ImplHelpers::BasicGeometryCollectionMethods
|
153
|
-
include ImplHelpers::BasicMultiPointMethods
|
149
|
+
include ::RGeo::Features::GeometryCollection
|
150
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
151
|
+
include ::RGeo::Cartesian::GeometryMethods
|
152
|
+
include ::RGeo::ImplHelpers::BasicGeometryCollectionMethods
|
153
|
+
include ::RGeo::ImplHelpers::BasicMultiPointMethods
|
154
154
|
|
155
155
|
|
156
156
|
end
|
157
157
|
|
158
158
|
|
159
|
-
class
|
159
|
+
class MultiLineStringImpl # :nodoc:
|
160
160
|
|
161
161
|
|
162
|
-
include Features::GeometryCollection
|
163
|
-
include ImplHelpers::BasicGeometryMethods
|
164
|
-
include Cartesian::
|
165
|
-
include ImplHelpers::BasicGeometryCollectionMethods
|
166
|
-
include ImplHelpers::BasicMultiLineStringMethods
|
162
|
+
include ::RGeo::Features::GeometryCollection
|
163
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
164
|
+
include ::RGeo::Cartesian::GeometryMethods
|
165
|
+
include ::RGeo::ImplHelpers::BasicGeometryCollectionMethods
|
166
|
+
include ::RGeo::ImplHelpers::BasicMultiLineStringMethods
|
167
167
|
|
168
168
|
|
169
169
|
end
|
170
170
|
|
171
171
|
|
172
|
-
class
|
172
|
+
class MultiPolygonImpl # :nodoc:
|
173
173
|
|
174
174
|
|
175
|
-
include Features::GeometryCollection
|
176
|
-
include ImplHelpers::BasicGeometryMethods
|
177
|
-
include Cartesian::
|
178
|
-
include ImplHelpers::BasicGeometryCollectionMethods
|
179
|
-
include ImplHelpers::BasicMultiPolygonMethods
|
175
|
+
include ::RGeo::Features::GeometryCollection
|
176
|
+
include ::RGeo::ImplHelpers::BasicGeometryMethods
|
177
|
+
include ::RGeo::Cartesian::GeometryMethods
|
178
|
+
include ::RGeo::ImplHelpers::BasicGeometryCollectionMethods
|
179
|
+
include ::RGeo::ImplHelpers::BasicMultiPolygonMethods
|
180
180
|
|
181
181
|
|
182
182
|
end
|