rgeo 0.1.14 → 0.1.15
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 +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
|