rgeo 0.5.3 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/geos_c_impl/extconf.rb +1 -0
- data/ext/geos_c_impl/factory.c +10 -1
- data/ext/geos_c_impl/geometry.c +25 -3
- data/ext/geos_c_impl/line_string.c +1 -12
- data/ext/geos_c_impl/polygon.c +0 -3
- data/ext/geos_c_impl/preface.h +3 -0
- data/lib/rgeo.rb +0 -1
- data/lib/rgeo/feature/geometry.rb +17 -0
- data/lib/rgeo/feature/types.rb +4 -4
- data/lib/rgeo/geographic/projected_feature_methods.rb +1 -22
- data/lib/rgeo/geos/ffi_feature_methods.rb +5 -0
- data/lib/rgeo/geos/utils.rb +2 -0
- data/lib/rgeo/impl_helper/basic_line_string_methods.rb +1 -0
- data/lib/rgeo/version.rb +1 -1
- metadata +11 -171
- data/lib/rgeo/yaml.rb +0 -23
- data/test/cartesian_analysis_test.rb +0 -65
- data/test/cartesian_bbox_test.rb +0 -123
- data/test/common/factory_tests.rb +0 -78
- data/test/common/geometry_collection_tests.rb +0 -237
- data/test/common/line_string_tests.rb +0 -330
- data/test/common/multi_line_string_tests.rb +0 -182
- data/test/common/multi_point_tests.rb +0 -200
- data/test/common/multi_polygon_tests.rb +0 -191
- data/test/common/point_tests.rb +0 -370
- data/test/common/polygon_tests.rb +0 -228
- data/test/coord_sys/ogc_cs_test.rb +0 -342
- data/test/coord_sys/proj4_srs_data_test.rb +0 -41
- data/test/coord_sys/proj4_test.rb +0 -150
- data/test/coord_sys/sr_org_test.rb +0 -32
- data/test/coord_sys/url_reader_test.rb +0 -42
- data/test/geos_capi/factory_test.rb +0 -31
- data/test/geos_capi/geometry_collection_test.rb +0 -24
- data/test/geos_capi/line_string_test.rb +0 -24
- data/test/geos_capi/misc_test.rb +0 -116
- data/test/geos_capi/multi_line_string_test.rb +0 -24
- data/test/geos_capi/multi_point_test.rb +0 -24
- data/test/geos_capi/multi_polygon_test.rb +0 -39
- data/test/geos_capi/parsing_unparsing_test.rb +0 -40
- data/test/geos_capi/point_test.rb +0 -72
- data/test/geos_capi/polygon_test.rb +0 -154
- data/test/geos_capi/zmfactory_test.rb +0 -57
- data/test/geos_ffi/factory_test.rb +0 -31
- data/test/geos_ffi/geometry_collection_test.rb +0 -24
- data/test/geos_ffi/line_string_test.rb +0 -24
- data/test/geos_ffi/misc_test.rb +0 -63
- data/test/geos_ffi/multi_line_string_test.rb +0 -24
- data/test/geos_ffi/multi_point_test.rb +0 -24
- data/test/geos_ffi/multi_polygon_test.rb +0 -33
- data/test/geos_ffi/parsing_unparsing_test.rb +0 -41
- data/test/geos_ffi/point_test.rb +0 -77
- data/test/geos_ffi/polygon_test.rb +0 -46
- data/test/geos_ffi/zmfactory_test.rb +0 -58
- data/test/mixins_test.rb +0 -141
- data/test/oneoff_test.rb +0 -26
- data/test/projected_geographic/factory_test.rb +0 -25
- data/test/projected_geographic/geometry_collection_test.rb +0 -24
- data/test/projected_geographic/line_string_test.rb +0 -24
- data/test/projected_geographic/multi_line_string_test.rb +0 -26
- data/test/projected_geographic/multi_point_test.rb +0 -30
- data/test/projected_geographic/multi_polygon_test.rb +0 -25
- data/test/projected_geographic/point_test.rb +0 -51
- data/test/projected_geographic/polygon_test.rb +0 -24
- data/test/simple_cartesian/calculations_test.rb +0 -99
- data/test/simple_cartesian/factory_test.rb +0 -27
- data/test/simple_cartesian/geometry_collection_test.rb +0 -30
- data/test/simple_cartesian/line_string_test.rb +0 -31
- data/test/simple_cartesian/multi_line_string_test.rb +0 -28
- data/test/simple_cartesian/multi_point_test.rb +0 -31
- data/test/simple_cartesian/multi_polygon_test.rb +0 -31
- data/test/simple_cartesian/point_test.rb +0 -50
- data/test/simple_cartesian/polygon_test.rb +0 -28
- data/test/simple_mercator/factory_test.rb +0 -25
- data/test/simple_mercator/geometry_collection_test.rb +0 -24
- data/test/simple_mercator/line_string_test.rb +0 -24
- data/test/simple_mercator/multi_line_string_test.rb +0 -26
- data/test/simple_mercator/multi_point_test.rb +0 -29
- data/test/simple_mercator/multi_polygon_test.rb +0 -25
- data/test/simple_mercator/point_test.rb +0 -55
- data/test/simple_mercator/polygon_test.rb +0 -24
- data/test/simple_mercator/window_test.rb +0 -173
- data/test/spherical_geographic/calculations_test.rb +0 -167
- data/test/spherical_geographic/factory_test.rb +0 -27
- data/test/spherical_geographic/geometry_collection_test.rb +0 -31
- data/test/spherical_geographic/line_string_test.rb +0 -31
- data/test/spherical_geographic/multi_line_string_test.rb +0 -29
- data/test/spherical_geographic/multi_point_test.rb +0 -31
- data/test/spherical_geographic/multi_polygon_test.rb +0 -31
- data/test/spherical_geographic/point_test.rb +0 -78
- data/test/spherical_geographic/polygon_test.rb +0 -28
- data/test/types_test.rb +0 -42
- data/test/wkrep/wkb_generator_test.rb +0 -185
- data/test/wkrep/wkb_parser_test.rb +0 -293
- data/test/wkrep/wkt_generator_test.rb +0 -294
- data/test/wkrep/wkt_parser_test.rb +0 -412
@@ -1,228 +0,0 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
#
|
3
|
-
# Common tests for polygon implementations
|
4
|
-
#
|
5
|
-
# -----------------------------------------------------------------------------
|
6
|
-
|
7
|
-
require "rgeo"
|
8
|
-
|
9
|
-
module RGeo
|
10
|
-
module Tests # :nodoc:
|
11
|
-
module Common # :nodoc:
|
12
|
-
module PolygonTests # :nodoc:
|
13
|
-
def test_creation_simple
|
14
|
-
point1_ = @factory.point(0, 0)
|
15
|
-
point2_ = @factory.point(0, 1)
|
16
|
-
point3_ = @factory.point(1, 0)
|
17
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
18
|
-
polygon_ = @factory.polygon(exterior_)
|
19
|
-
assert_not_nil(polygon_)
|
20
|
-
assert(::RGeo::Feature::Polygon === polygon_)
|
21
|
-
assert_equal(::RGeo::Feature::Polygon, polygon_.geometry_type)
|
22
|
-
assert(exterior_.eql?(polygon_.exterior_ring))
|
23
|
-
assert_equal(0, polygon_.num_interior_rings)
|
24
|
-
assert_nil(polygon_.interior_ring_n(0))
|
25
|
-
assert_nil(polygon_.interior_ring_n(-1))
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_creation_one_hole
|
29
|
-
point1_ = @factory.point(0, 0)
|
30
|
-
point2_ = @factory.point(0, 10)
|
31
|
-
point3_ = @factory.point(10, 10)
|
32
|
-
point4_ = @factory.point(10, 0)
|
33
|
-
point5_ = @factory.point(4, 4)
|
34
|
-
point6_ = @factory.point(5, 6)
|
35
|
-
point7_ = @factory.point(6, 4)
|
36
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point4_, point1_])
|
37
|
-
interior_ = @factory.linear_ring([point5_, point6_, point7_, point5_])
|
38
|
-
polygon_ = @factory.polygon(exterior_, [interior_])
|
39
|
-
assert_not_nil(polygon_)
|
40
|
-
assert(::RGeo::Feature::Polygon === polygon_)
|
41
|
-
assert_equal(::RGeo::Feature::Polygon, polygon_.geometry_type)
|
42
|
-
assert(exterior_.eql?(polygon_.exterior_ring))
|
43
|
-
assert_equal(1, polygon_.num_interior_rings)
|
44
|
-
assert(interior_.eql?(polygon_.interior_ring_n(0)))
|
45
|
-
assert_nil(polygon_.interior_ring_n(1))
|
46
|
-
assert_nil(polygon_.interior_ring_n(-1))
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_required_equivalences
|
50
|
-
point1_ = @factory.point(0, 0)
|
51
|
-
point2_ = @factory.point(0, 1)
|
52
|
-
point3_ = @factory.point(1, 0)
|
53
|
-
exterior1_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
54
|
-
poly1_ = @factory.polygon(exterior1_)
|
55
|
-
point4_ = @factory.point(0, 0)
|
56
|
-
point5_ = @factory.point(0, 1)
|
57
|
-
point6_ = @factory.point(1, 0)
|
58
|
-
exterior2_ = @factory.linear_ring([point4_, point5_, point6_, point4_])
|
59
|
-
poly2_ = @factory.polygon(exterior2_)
|
60
|
-
assert(poly1_.eql?(poly2_))
|
61
|
-
assert(poly1_ == poly2_)
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_fully_equal
|
65
|
-
point1_ = @factory.point(0, 0)
|
66
|
-
point2_ = @factory.point(0, 1)
|
67
|
-
point3_ = @factory.point(1, 0)
|
68
|
-
exterior1_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
69
|
-
poly1_ = @factory.polygon(exterior1_)
|
70
|
-
point4_ = @factory.point(0, 0)
|
71
|
-
point5_ = @factory.point(0, 1)
|
72
|
-
point6_ = @factory.point(1, 0)
|
73
|
-
exterior2_ = @factory.linear_ring([point4_, point5_, point6_, point4_])
|
74
|
-
poly2_ = @factory.polygon(exterior2_)
|
75
|
-
assert(poly1_.rep_equals?(poly2_))
|
76
|
-
assert(poly1_.equals?(poly2_))
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_geometrically_equal_but_ordered_different
|
80
|
-
point1_ = @factory.point(0, 0)
|
81
|
-
point2_ = @factory.point(0, 1)
|
82
|
-
point3_ = @factory.point(1, 0)
|
83
|
-
exterior1_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
84
|
-
poly1_ = @factory.polygon(exterior1_)
|
85
|
-
exterior2_ = @factory.linear_ring([point2_, point3_, point1_, point2_])
|
86
|
-
poly2_ = @factory.polygon(exterior2_)
|
87
|
-
assert(!poly1_.rep_equals?(poly2_))
|
88
|
-
assert(poly1_.equals?(poly2_))
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_geometrically_equal_but_different_directions
|
92
|
-
point1_ = @factory.point(0, 0)
|
93
|
-
point2_ = @factory.point(0, 1)
|
94
|
-
point3_ = @factory.point(1, 0)
|
95
|
-
exterior1_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
96
|
-
poly1_ = @factory.polygon(exterior1_)
|
97
|
-
exterior2_ = @factory.linear_ring([point1_, point3_, point2_, point1_])
|
98
|
-
poly2_ = @factory.polygon(exterior2_)
|
99
|
-
assert(!poly1_.rep_equals?(poly2_))
|
100
|
-
assert(poly1_.equals?(poly2_))
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_hashes_equal_for_representationally_equivalent_objects
|
104
|
-
point1_ = @factory.point(0, 0)
|
105
|
-
point2_ = @factory.point(0, 1)
|
106
|
-
point3_ = @factory.point(1, 0)
|
107
|
-
exterior1_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
108
|
-
poly1_ = @factory.polygon(exterior1_)
|
109
|
-
point4_ = @factory.point(0, 0)
|
110
|
-
point5_ = @factory.point(0, 1)
|
111
|
-
point6_ = @factory.point(1, 0)
|
112
|
-
exterior2_ = @factory.linear_ring([point4_, point5_, point6_, point4_])
|
113
|
-
poly2_ = @factory.polygon(exterior2_)
|
114
|
-
assert_equal(poly1_.hash, poly2_.hash)
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_wkt_creation_simple
|
118
|
-
parsed_poly_ = @factory.parse_wkt("POLYGON((0 0, 0 1, 1 0, 0 0))")
|
119
|
-
point1_ = @factory.point(0, 0)
|
120
|
-
point2_ = @factory.point(0, 1)
|
121
|
-
point3_ = @factory.point(1, 0)
|
122
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
123
|
-
built_poly_ = @factory.polygon(exterior_)
|
124
|
-
assert(built_poly_.eql?(parsed_poly_))
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_wkt_creation_one_hole
|
128
|
-
parsed_poly_ = @factory.parse_wkt("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (4 4, 5 6, 6 4, 4 4))")
|
129
|
-
point1_ = @factory.point(0, 0)
|
130
|
-
point2_ = @factory.point(0, 10)
|
131
|
-
point3_ = @factory.point(10, 10)
|
132
|
-
point4_ = @factory.point(10, 0)
|
133
|
-
point5_ = @factory.point(4, 4)
|
134
|
-
point6_ = @factory.point(5, 6)
|
135
|
-
point7_ = @factory.point(6, 4)
|
136
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point4_, point1_])
|
137
|
-
interior_ = @factory.linear_ring([point5_, point6_, point7_, point5_])
|
138
|
-
built_poly_ = @factory.polygon(exterior_, [interior_])
|
139
|
-
assert(built_poly_.eql?(parsed_poly_))
|
140
|
-
end
|
141
|
-
|
142
|
-
def test_clone
|
143
|
-
point1_ = @factory.point(0, 0)
|
144
|
-
point2_ = @factory.point(0, 1)
|
145
|
-
point3_ = @factory.point(1, 0)
|
146
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
147
|
-
poly1_ = @factory.polygon(exterior_)
|
148
|
-
poly2_ = poly1_.clone
|
149
|
-
assert(poly1_.eql?(poly2_))
|
150
|
-
assert(exterior_.eql?(poly2_.exterior_ring))
|
151
|
-
assert_equal(0, poly2_.num_interior_rings)
|
152
|
-
end
|
153
|
-
|
154
|
-
def test_type_check
|
155
|
-
point1_ = @factory.point(0, 0)
|
156
|
-
point2_ = @factory.point(0, 1)
|
157
|
-
point3_ = @factory.point(1, 0)
|
158
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
159
|
-
poly_ = @factory.polygon(exterior_)
|
160
|
-
assert(::RGeo::Feature::Geometry.check_type(poly_))
|
161
|
-
assert(!::RGeo::Feature::Point.check_type(poly_))
|
162
|
-
assert(!::RGeo::Feature::GeometryCollection.check_type(poly_))
|
163
|
-
assert(::RGeo::Feature::Surface.check_type(poly_))
|
164
|
-
assert(::RGeo::Feature::Polygon.check_type(poly_))
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_as_text_wkt_round_trip
|
168
|
-
point1_ = @factory.point(0, 0)
|
169
|
-
point2_ = @factory.point(0, 1)
|
170
|
-
point3_ = @factory.point(1, 0)
|
171
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
172
|
-
poly1_ = @factory.polygon(exterior_)
|
173
|
-
text_ = poly1_.as_text
|
174
|
-
poly2_ = @factory.parse_wkt(text_)
|
175
|
-
assert(poly1_.eql?(poly2_))
|
176
|
-
end
|
177
|
-
|
178
|
-
def test_as_binary_wkb_round_trip
|
179
|
-
point1_ = @factory.point(0, 0)
|
180
|
-
point2_ = @factory.point(0, 1)
|
181
|
-
point3_ = @factory.point(1, 0)
|
182
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
183
|
-
poly1_ = @factory.polygon(exterior_)
|
184
|
-
binary_ = poly1_.as_binary
|
185
|
-
poly2_ = @factory.parse_wkb(binary_)
|
186
|
-
assert(poly1_.eql?(poly2_))
|
187
|
-
end
|
188
|
-
|
189
|
-
def test_dimension
|
190
|
-
point1_ = @factory.point(0, 0)
|
191
|
-
point2_ = @factory.point(0, 10)
|
192
|
-
point3_ = @factory.point(10, 10)
|
193
|
-
point4_ = @factory.point(10, 0)
|
194
|
-
point5_ = @factory.point(4, 4)
|
195
|
-
point6_ = @factory.point(5, 6)
|
196
|
-
point7_ = @factory.point(6, 4)
|
197
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point4_, point1_])
|
198
|
-
interior_ = @factory.linear_ring([point5_, point6_, point7_, point5_])
|
199
|
-
poly_ = @factory.polygon(exterior_, [interior_])
|
200
|
-
assert_equal(2, poly_.dimension)
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_is_empty
|
204
|
-
point1_ = @factory.point(0, 0)
|
205
|
-
point2_ = @factory.point(0, 1)
|
206
|
-
point3_ = @factory.point(1, 0)
|
207
|
-
exterior_ = @factory.linear_ring([point1_, point2_, point3_, point1_])
|
208
|
-
poly1_ = @factory.polygon(exterior_)
|
209
|
-
assert(!poly1_.is_empty?)
|
210
|
-
poly2_ = @factory.polygon(@factory.linear_ring([]))
|
211
|
-
assert(poly2_.is_empty?)
|
212
|
-
end
|
213
|
-
|
214
|
-
def test_polygon_coordinates
|
215
|
-
coordinates = [
|
216
|
-
[[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0], [0.0, 0.0]],
|
217
|
-
[[0.25, 0.25], [0.75, 0.25], [0.75, 0.75], [0.25, 0.75], [0.25, 0.25]]
|
218
|
-
]
|
219
|
-
|
220
|
-
ring = @factory.line_string(coordinates.first.map { |(x, y)| @factory.point x, y })
|
221
|
-
inner_ring = @factory.line_string(coordinates.last.map { |(x, y)| @factory.point x, y })
|
222
|
-
polygon = @factory.polygon ring, [inner_ring]
|
223
|
-
assert_equal(polygon.coordinates, coordinates)
|
224
|
-
end
|
225
|
-
end
|
226
|
-
end
|
227
|
-
end
|
228
|
-
end
|
@@ -1,342 +0,0 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
#
|
3
|
-
# Tests for OGC CS classes
|
4
|
-
#
|
5
|
-
# -----------------------------------------------------------------------------
|
6
|
-
|
7
|
-
require "test/unit"
|
8
|
-
require "rgeo"
|
9
|
-
|
10
|
-
module RGeo
|
11
|
-
module Tests # :nodoc:
|
12
|
-
module CoordSys # :nodoc:
|
13
|
-
class TestOgcCs < ::Test::Unit::TestCase # :nodoc:
|
14
|
-
# Handle differences in floating-point output.
|
15
|
-
|
16
|
-
def _lenient_regex_for(str_)
|
17
|
-
::Regexp.new(str_.gsub(/(\d)\.(\d{10,})/) do |_m_|
|
18
|
-
before_ = Regexp.last_match(1)
|
19
|
-
after_ = Regexp.last_match(2)[0, 10]
|
20
|
-
"#{before_}.#{after_}\\d*"
|
21
|
-
end.gsub(/(\.|\[|\]|\(|\)|\$|\^|\||\+)/) { |_m_| "\\#{Regexp.last_match(1)}" })
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_axis_info_by_value
|
25
|
-
obj_ = ::RGeo::CoordSys::CS::AxisInfo.create("N", ::RGeo::CoordSys::CS::AO_NORTH)
|
26
|
-
assert_equal("N", obj_.name)
|
27
|
-
assert_equal(::RGeo::CoordSys::CS::AO_NORTH, obj_.orientation)
|
28
|
-
assert_equal('AXIS["N",NORTH]', obj_.to_wkt)
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_axis_info_by_name
|
32
|
-
obj_ = ::RGeo::CoordSys::CS::AxisInfo.create("S", "SOUTH")
|
33
|
-
assert_equal("S", obj_.name)
|
34
|
-
assert_equal(::RGeo::CoordSys::CS::AO_SOUTH, obj_.orientation)
|
35
|
-
assert_equal('AXIS["S",SOUTH]', obj_.to_wkt)
|
36
|
-
obj2_ = ::RGeo::CoordSys::CS::AxisInfo.create("S", ::RGeo::CoordSys::CS::AO_SOUTH)
|
37
|
-
assert_equal(obj_, obj2_)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_parameter
|
41
|
-
obj_ = ::RGeo::CoordSys::CS::ProjectionParameter.create("false_easting", 400_000)
|
42
|
-
assert_equal("false_easting", obj_.name)
|
43
|
-
assert_equal(400_000, obj_.value)
|
44
|
-
assert_equal('PARAMETER["false_easting",400000.0]', obj_.to_wkt)
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_towgs84
|
48
|
-
obj_ = ::RGeo::CoordSys::CS::WGS84ConversionInfo.create(1, 2, 3, 4, 5, 6, 7)
|
49
|
-
assert_equal(1, obj_.dx)
|
50
|
-
assert_equal(2, obj_.dy)
|
51
|
-
assert_equal(3, obj_.dz)
|
52
|
-
assert_equal(4, obj_.ex)
|
53
|
-
assert_equal(5, obj_.ey)
|
54
|
-
assert_equal(6, obj_.ez)
|
55
|
-
assert_equal(7, obj_.ppm)
|
56
|
-
assert_equal("TOWGS84[1.0,2.0,3.0,4.0,5.0,6.0,7.0]", obj_.to_wkt)
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_unit
|
60
|
-
obj_ = ::RGeo::CoordSys::CS::Unit.create("metre", 1)
|
61
|
-
assert_equal("metre", obj_.name)
|
62
|
-
assert_equal(1, obj_.conversion_factor)
|
63
|
-
assert_nil(obj_.authority)
|
64
|
-
assert_equal('UNIT["metre",1.0]', obj_.to_wkt)
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_unit_with_authority
|
68
|
-
obj_ = ::RGeo::CoordSys::CS::Unit.create("metre", 1, "EPSG", 9001)
|
69
|
-
assert_equal("metre", obj_.name)
|
70
|
-
assert_equal(1, obj_.conversion_factor)
|
71
|
-
assert_equal("EPSG", obj_.authority)
|
72
|
-
assert_equal("9001", obj_.authority_code)
|
73
|
-
assert_equal('UNIT["metre",1.0,AUTHORITY["EPSG","9001"]]', obj_.to_wkt)
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_linear_unit
|
77
|
-
obj_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1)
|
78
|
-
assert_equal(1, obj_.meters_per_unit)
|
79
|
-
assert_equal('UNIT["metre",1.0]', obj_.to_wkt)
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_angular_unit
|
83
|
-
obj_ = ::RGeo::CoordSys::CS::AngularUnit.create("radian", 1)
|
84
|
-
assert_equal(1, obj_.radians_per_unit)
|
85
|
-
assert_equal('UNIT["radian",1.0]', obj_.to_wkt)
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_prime_meridian
|
89
|
-
obj1_ = ::RGeo::CoordSys::CS::AngularUnit.create("radian", 1)
|
90
|
-
obj_ = ::RGeo::CoordSys::CS::PrimeMeridian.create("Greenwich", obj1_, 0, "EPSG", "8901")
|
91
|
-
assert_equal("Greenwich", obj_.name)
|
92
|
-
assert_equal(0, obj_.longitude)
|
93
|
-
assert_equal('PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]]', obj_.to_wkt)
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_create_flattened_sphere
|
97
|
-
obj1_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1)
|
98
|
-
obj_ = ::RGeo::CoordSys::CS::Ellipsoid.create_flattened_sphere("WGS 84", 6_378_137, 298.257223563, obj1_, "EPSG", "7030")
|
99
|
-
assert_equal("WGS 84", obj_.name)
|
100
|
-
assert_equal(6_378_137, obj_.semi_major_axis)
|
101
|
-
assert_in_delta(298.257223563, obj_.inverse_flattening, 0.1)
|
102
|
-
assert_in_delta(6_356_752.314245, obj_.semi_minor_axis, 0.1)
|
103
|
-
assert_equal("EPSG", obj_.authority)
|
104
|
-
assert_equal("7030", obj_.authority_code)
|
105
|
-
assert_equal('SPHEROID["WGS 84",6378137.0,298.257223563,AUTHORITY["EPSG","7030"]]', obj_.to_wkt)
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_create_unflattened_sphere
|
109
|
-
obj1_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1)
|
110
|
-
obj_ = ::RGeo::CoordSys::CS::Ellipsoid.create_flattened_sphere("Popular Visualisation Sphere", 6_378_137, 0, obj1_, "EPSG", "7059")
|
111
|
-
assert_equal("Popular Visualisation Sphere", obj_.name)
|
112
|
-
assert_equal(6_378_137, obj_.semi_major_axis)
|
113
|
-
assert_equal(0, obj_.inverse_flattening)
|
114
|
-
assert_equal(6_378_137, obj_.semi_minor_axis)
|
115
|
-
assert_equal("EPSG", obj_.authority)
|
116
|
-
assert_equal("7059", obj_.authority_code)
|
117
|
-
assert_equal('SPHEROID["Popular Visualisation Sphere",6378137.0,0.0,AUTHORITY["EPSG","7059"]]', obj_.to_wkt)
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_create_ellipsoid
|
121
|
-
obj1_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1)
|
122
|
-
obj_ = ::RGeo::CoordSys::CS::Ellipsoid.create_ellipsoid("WGS 84", 6_378_137, 6_356_752.314245, obj1_, "EPSG", "7030")
|
123
|
-
assert_in_delta(298.257223563, obj_.inverse_flattening, 0.1)
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_create_spherical_ellipsoid
|
127
|
-
obj1_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1)
|
128
|
-
obj_ = ::RGeo::CoordSys::CS::Ellipsoid.create_ellipsoid("Popular Visualisation Sphere", 6_378_137, 6_378_137, obj1_, "EPSG", "7059")
|
129
|
-
assert_equal(0, obj_.inverse_flattening)
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_local_datum
|
133
|
-
obj_ = ::RGeo::CoordSys::CS::LocalDatum.create("Random Local Datum", ::RGeo::CoordSys::CS::LD_MIN)
|
134
|
-
assert_equal("Random Local Datum", obj_.name)
|
135
|
-
assert_equal(::RGeo::CoordSys::CS::LD_MIN, obj_.datum_type)
|
136
|
-
assert_equal('LOCAL_DATUM["Random Local Datum",10000]', obj_.to_wkt)
|
137
|
-
end
|
138
|
-
|
139
|
-
def test_local_datum_with_extension
|
140
|
-
obj_ = ::RGeo::CoordSys::CS::LocalDatum.create("Random Local Datum", ::RGeo::CoordSys::CS::LD_MIN, nil, nil, nil, nil, nil, foo: :bar)
|
141
|
-
assert_equal("bar", obj_.extension(:foo))
|
142
|
-
assert_nil(obj_.extension(:bar))
|
143
|
-
assert_equal('LOCAL_DATUM["Random Local Datum",10000,EXTENSION["foo","bar"]]', obj_.to_wkt)
|
144
|
-
end
|
145
|
-
|
146
|
-
def test_vertical_datum
|
147
|
-
obj_ = ::RGeo::CoordSys::CS::VerticalDatum.create("Ordnance Datum Newlyn", ::RGeo::CoordSys::CS::VD_GEOID_MODE_DERIVED, "EPSG", "5101")
|
148
|
-
assert_equal("Ordnance Datum Newlyn", obj_.name)
|
149
|
-
assert_equal(::RGeo::CoordSys::CS::VD_GEOID_MODE_DERIVED, obj_.datum_type)
|
150
|
-
assert_equal("EPSG", obj_.authority)
|
151
|
-
assert_equal("5101", obj_.authority_code)
|
152
|
-
assert_equal('VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]]', obj_.to_wkt)
|
153
|
-
end
|
154
|
-
|
155
|
-
def test_horizontal_datum
|
156
|
-
obj1_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1)
|
157
|
-
obj2_ = ::RGeo::CoordSys::CS::Ellipsoid.create_ellipsoid("Popular Visualisation Sphere", 6_378_137, 6_378_137, obj1_, "EPSG", "7059")
|
158
|
-
obj3_ = ::RGeo::CoordSys::CS::WGS84ConversionInfo.create(0, 0, 0, 0, 0, 0, 0)
|
159
|
-
obj_ = ::RGeo::CoordSys::CS::HorizontalDatum.create("Popular_Visualisation_Datum", ::RGeo::CoordSys::CS::HD_GEOCENTRIC, obj2_, obj3_, "EPSG", "6055")
|
160
|
-
assert_equal("Popular_Visualisation_Datum", obj_.name)
|
161
|
-
assert_equal(::RGeo::CoordSys::CS::HD_GEOCENTRIC, obj_.datum_type)
|
162
|
-
assert_equal("EPSG", obj_.authority)
|
163
|
-
assert_equal("6055", obj_.authority_code)
|
164
|
-
assert_equal('DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137.0,0.0,AUTHORITY["EPSG","7059"]],TOWGS84[0.0,0.0,0.0,0.0,0.0,0.0,0.0],AUTHORITY["EPSG","6055"]]', obj_.to_wkt)
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_projection
|
168
|
-
obj_ = ::RGeo::CoordSys::CS::Projection.create("Transverse_Mercator", "Transverse_Mercator", [])
|
169
|
-
assert_equal("Transverse_Mercator", obj_.name)
|
170
|
-
assert_equal("Transverse_Mercator", obj_.class_name)
|
171
|
-
assert_equal(0, obj_.num_parameters)
|
172
|
-
assert_equal('PROJECTION["Transverse_Mercator"]', obj_.to_wkt)
|
173
|
-
end
|
174
|
-
|
175
|
-
def test_local_coordinate_system
|
176
|
-
obj1_ = ::RGeo::CoordSys::CS::LocalDatum.create("Random Local Datum", ::RGeo::CoordSys::CS::LD_MIN)
|
177
|
-
obj2_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1, "EPSG", 9001)
|
178
|
-
obj3_ = ::RGeo::CoordSys::CS::AxisInfo.create("N", ::RGeo::CoordSys::CS::AO_NORTH)
|
179
|
-
obj4_ = ::RGeo::CoordSys::CS::AxisInfo.create("E", ::RGeo::CoordSys::CS::AO_EAST)
|
180
|
-
obj_ = ::RGeo::CoordSys::CS::LocalCoordinateSystem.create("My CS", obj1_, obj2_, [obj3_, obj4_])
|
181
|
-
assert_equal("My CS", obj_.name)
|
182
|
-
assert_equal(2, obj_.dimension)
|
183
|
-
assert_equal("Random Local Datum", obj_.local_datum.name)
|
184
|
-
assert_equal("N", obj_.get_axis(0).name)
|
185
|
-
assert_equal("E", obj_.get_axis(1).name)
|
186
|
-
assert_equal("metre", obj_.get_units(0).name)
|
187
|
-
assert_equal("metre", obj_.get_units(1).name)
|
188
|
-
assert_equal('LOCAL_CS["My CS",LOCAL_DATUM["Random Local Datum",10000],UNIT["metre",1.0,AUTHORITY["EPSG","9001"]],AXIS["N",NORTH],AXIS["E",EAST]]', obj_.to_wkt)
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_geocentric_coordinate_system
|
192
|
-
obj1_ = ::RGeo::CoordSys::CS::Ellipsoid.create_flattened_sphere("WGS 84", 6_378_137, 298.257223563, nil, "EPSG", "7030")
|
193
|
-
obj2_ = ::RGeo::CoordSys::CS::HorizontalDatum.create("World Geodetic System 1984", ::RGeo::CoordSys::CS::HD_GEOCENTRIC, obj1_, nil, "EPSG", "6326")
|
194
|
-
obj3_ = ::RGeo::CoordSys::CS::PrimeMeridian.create("Greenwich", nil, 0.0, "EPSG", "8901")
|
195
|
-
obj4_ = ::RGeo::CoordSys::CS::LinearUnit.create("m", 1.0)
|
196
|
-
obj5_ = ::RGeo::CoordSys::CS::AxisInfo.create("Geocentric X", ::RGeo::CoordSys::CS::AO_OTHER)
|
197
|
-
obj6_ = ::RGeo::CoordSys::CS::AxisInfo.create("Geocentric Y", ::RGeo::CoordSys::CS::AO_EAST)
|
198
|
-
obj7_ = ::RGeo::CoordSys::CS::AxisInfo.create("Geocentric Z", ::RGeo::CoordSys::CS::AO_NORTH)
|
199
|
-
obj_ = ::RGeo::CoordSys::CS::GeocentricCoordinateSystem.create("WGS 84 (geocentric)", obj2_, obj3_, obj4_, obj5_, obj6_, obj7_, "EPSG", 4328)
|
200
|
-
assert_equal("WGS 84 (geocentric)", obj_.name)
|
201
|
-
assert_equal(3, obj_.dimension)
|
202
|
-
assert_equal("World Geodetic System 1984", obj_.horizontal_datum.name)
|
203
|
-
assert_equal("Greenwich", obj_.prime_meridian.name)
|
204
|
-
assert_equal("m", obj_.linear_unit.name)
|
205
|
-
assert_equal("Geocentric X", obj_.get_axis(0).name)
|
206
|
-
assert_equal("Geocentric Y", obj_.get_axis(1).name)
|
207
|
-
assert_equal("Geocentric Z", obj_.get_axis(2).name)
|
208
|
-
assert_equal("m", obj_.get_units(0).name)
|
209
|
-
assert_equal("m", obj_.get_units(1).name)
|
210
|
-
assert_equal("m", obj_.get_units(2).name)
|
211
|
-
assert_equal('GEOCCS["WGS 84 (geocentric)",DATUM["World Geodetic System 1984",SPHEROID["WGS 84",6378137.0,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["m",1.0],AXIS["Geocentric X",OTHER],AXIS["Geocentric Y",EAST],AXIS["Geocentric Z",NORTH],AUTHORITY["EPSG","4328"]]', obj_.to_wkt)
|
212
|
-
end
|
213
|
-
|
214
|
-
def test_vertical_coordinate_system
|
215
|
-
obj1_ = ::RGeo::CoordSys::CS::VerticalDatum.create("Ordnance Datum Newlyn", ::RGeo::CoordSys::CS::VD_GEOID_MODE_DERIVED, "EPSG", 5101)
|
216
|
-
obj2_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1, "EPSG", 9001)
|
217
|
-
obj3_ = ::RGeo::CoordSys::CS::AxisInfo.create("Up", ::RGeo::CoordSys::CS::AO_UP)
|
218
|
-
obj_ = ::RGeo::CoordSys::CS::VerticalCoordinateSystem.create("Newlyn", obj1_, obj2_, obj3_, "EPSG", 5701)
|
219
|
-
assert_equal("Newlyn", obj_.name)
|
220
|
-
assert_equal(1, obj_.dimension)
|
221
|
-
assert_equal("Ordnance Datum Newlyn", obj_.vertical_datum.name)
|
222
|
-
assert_equal("metre", obj_.vertical_unit.name)
|
223
|
-
assert_equal("Up", obj_.get_axis(0).name)
|
224
|
-
assert_equal("metre", obj_.get_units(0).name)
|
225
|
-
assert_equal('VERT_CS["Newlyn",VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],UNIT["metre",1.0,AUTHORITY["EPSG","9001"]],AXIS["Up",UP],AUTHORITY["EPSG","5701"]]', obj_.to_wkt)
|
226
|
-
end
|
227
|
-
|
228
|
-
def test_geographic_coordinate_system
|
229
|
-
obj1_ = ::RGeo::CoordSys::CS::Ellipsoid.create_flattened_sphere("WGS 84", 6_378_137, 298.257223563, nil, "EPSG", "7030")
|
230
|
-
obj2_ = ::RGeo::CoordSys::CS::AngularUnit.create("degree", 0.01745329251994328, "EPSG", 9122)
|
231
|
-
obj3_ = ::RGeo::CoordSys::CS::HorizontalDatum.create("WGS_1984", ::RGeo::CoordSys::CS::HD_GEOCENTRIC, obj1_, nil, "EPSG", "6326")
|
232
|
-
obj4_ = ::RGeo::CoordSys::CS::PrimeMeridian.create("Greenwich", nil, 0, "EPSG", "8901")
|
233
|
-
obj_ = ::RGeo::CoordSys::CS::GeographicCoordinateSystem.create("WGS 84", obj2_, obj3_, obj4_, nil, nil, "EPSG", 4326)
|
234
|
-
assert_equal("WGS 84", obj_.name)
|
235
|
-
assert_equal(2, obj_.dimension)
|
236
|
-
assert_equal("WGS_1984", obj_.horizontal_datum.name)
|
237
|
-
assert_equal("Greenwich", obj_.prime_meridian.name)
|
238
|
-
assert_equal("degree", obj_.angular_unit.name)
|
239
|
-
assert_nil(obj_.get_axis(0))
|
240
|
-
assert_nil(obj_.get_axis(1))
|
241
|
-
assert_equal("degree", obj_.get_units(0).name)
|
242
|
-
assert_equal("degree", obj_.get_units(1).name)
|
243
|
-
assert_match(_lenient_regex_for('GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137.0,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]'), obj_.to_wkt)
|
244
|
-
end
|
245
|
-
|
246
|
-
def test_projected_coordinate_system
|
247
|
-
obj1_ = ::RGeo::CoordSys::CS::Ellipsoid.create_flattened_sphere("Airy 1830", 6_377_563.396, 299.3249646, nil, "EPSG", "7001")
|
248
|
-
obj2_ = ::RGeo::CoordSys::CS::WGS84ConversionInfo.create(375, -111, 431, 0, 0, 0, 0)
|
249
|
-
obj3_ = ::RGeo::CoordSys::CS::AngularUnit.create("DMSH", 0.0174532925199433, "EPSG", 9108)
|
250
|
-
obj4_ = ::RGeo::CoordSys::CS::HorizontalDatum.create("OSGB_1936", ::RGeo::CoordSys::CS::HD_CLASSIC, obj1_, obj2_, "EPSG", "6277")
|
251
|
-
obj5_ = ::RGeo::CoordSys::CS::PrimeMeridian.create("Greenwich", nil, 0, "EPSG", "8901")
|
252
|
-
obj6_ = ::RGeo::CoordSys::CS::AxisInfo.create("Lat", ::RGeo::CoordSys::CS::AO_NORTH)
|
253
|
-
obj7_ = ::RGeo::CoordSys::CS::AxisInfo.create("Long", ::RGeo::CoordSys::CS::AO_EAST)
|
254
|
-
obj8_ = ::RGeo::CoordSys::CS::GeographicCoordinateSystem.create("OSGB 1936", obj3_, obj4_, obj5_, obj6_, obj7_, "EPSG", 4277)
|
255
|
-
obj9_ = ::RGeo::CoordSys::CS::ProjectionParameter.create("latitude_of_origin", 49)
|
256
|
-
obj10_ = ::RGeo::CoordSys::CS::ProjectionParameter.create("central_meridian", -2)
|
257
|
-
obj11_ = ::RGeo::CoordSys::CS::ProjectionParameter.create("scale_factor", 0.999601272)
|
258
|
-
obj12_ = ::RGeo::CoordSys::CS::ProjectionParameter.create("false_easting", 400_000)
|
259
|
-
obj13_ = ::RGeo::CoordSys::CS::ProjectionParameter.create("false_northing", -100_000)
|
260
|
-
obj14_ = ::RGeo::CoordSys::CS::Projection.create("Transverse_Mercator", "Transverse_Mercator", [obj9_, obj10_, obj11_, obj12_, obj13_])
|
261
|
-
obj15_ = ::RGeo::CoordSys::CS::LinearUnit.create("metre", 1, "EPSG", 9001)
|
262
|
-
obj16_ = ::RGeo::CoordSys::CS::AxisInfo.create("E", ::RGeo::CoordSys::CS::AO_EAST)
|
263
|
-
obj17_ = ::RGeo::CoordSys::CS::AxisInfo.create("N", ::RGeo::CoordSys::CS::AO_NORTH)
|
264
|
-
obj_ = ::RGeo::CoordSys::CS::ProjectedCoordinateSystem.create("OSGB 1936 / British National Grid", obj8_, obj14_, obj15_, obj16_, obj17_, "EPSG", 27_700)
|
265
|
-
assert_equal("OSGB 1936 / British National Grid", obj_.name)
|
266
|
-
assert_equal(2, obj_.dimension)
|
267
|
-
assert_equal("OSGB_1936", obj_.horizontal_datum.name)
|
268
|
-
assert_equal("OSGB 1936", obj_.geographic_coordinate_system.name)
|
269
|
-
assert_equal("Transverse_Mercator", obj_.projection.name)
|
270
|
-
assert_equal(5, obj_.projection.num_parameters)
|
271
|
-
assert_equal("latitude_of_origin", obj_.projection.get_parameter(0).name)
|
272
|
-
assert_equal(49, obj_.projection.get_parameter(0).value)
|
273
|
-
assert_equal("false_northing", obj_.projection.get_parameter(4).name)
|
274
|
-
assert_equal(-100_000, obj_.projection.get_parameter(4).value)
|
275
|
-
assert_equal("metre", obj_.linear_unit.name)
|
276
|
-
assert_equal("E", obj_.get_axis(0).name)
|
277
|
-
assert_equal("N", obj_.get_axis(1).name)
|
278
|
-
assert_equal("metre", obj_.get_units(0).name)
|
279
|
-
assert_equal("metre", obj_.get_units(1).name)
|
280
|
-
assert_equal('PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[375.0,-111.0,431.0,0.0,0.0,0.0,0.0],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["DMSH",0.0174532925199433,AUTHORITY["EPSG","9108"]],AXIS["Lat",NORTH],AXIS["Long",EAST],AUTHORITY["EPSG","4277"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49.0],PARAMETER["central_meridian",-2.0],PARAMETER["scale_factor",0.999601272],PARAMETER["false_easting",400000.0],PARAMETER["false_northing",-100000.0],UNIT["metre",1.0,AUTHORITY["EPSG","9001"]],AXIS["E",EAST],AXIS["N",NORTH],AUTHORITY["EPSG","27700"]]', obj_.to_wkt)
|
281
|
-
end
|
282
|
-
|
283
|
-
def test_parse_epsg_6055
|
284
|
-
input_ = 'DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137.0,0.0,AUTHORITY["EPSG","7059"]],TOWGS84[0.0,0.0,0.0,0.0,0.0,0.0,0.0],AUTHORITY["EPSG","6055"]]'
|
285
|
-
obj_ = ::RGeo::CoordSys::CS.create_from_wkt(input_)
|
286
|
-
assert_kind_of(::RGeo::CoordSys::CS::HorizontalDatum, obj_)
|
287
|
-
assert_equal("Popular_Visualisation_Datum", obj_.name)
|
288
|
-
assert_equal(::RGeo::CoordSys::CS::HD_GEOCENTRIC, obj_.datum_type)
|
289
|
-
assert_equal("EPSG", obj_.authority)
|
290
|
-
assert_equal("6055", obj_.authority_code)
|
291
|
-
assert_equal("Popular Visualisation Sphere", obj_.ellipsoid.name)
|
292
|
-
assert_equal(6_378_137, obj_.ellipsoid.semi_major_axis)
|
293
|
-
assert_equal(0, obj_.ellipsoid.inverse_flattening)
|
294
|
-
assert_equal(6_378_137, obj_.ellipsoid.semi_minor_axis)
|
295
|
-
assert_equal("EPSG", obj_.ellipsoid.authority)
|
296
|
-
assert_equal("7059", obj_.ellipsoid.authority_code)
|
297
|
-
assert_equal(0, obj_.wgs84_parameters.dx)
|
298
|
-
assert_equal(input_, obj_.to_wkt)
|
299
|
-
end
|
300
|
-
|
301
|
-
def test_parse_epsg_7405
|
302
|
-
input_ = 'COMPD_CS["OSGB36 / British National Grid + ODN",PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB 1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-4.2261596151967575],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic latitude",NORTH],AXIS["Geodetic longitude",EAST],AUTHORITY["EPSG","4277"]],PROJECTION["Transverse Mercator",AUTHORITY["EPSG","9807"]],PARAMETER["central_meridian",-2.0],PARAMETER["latitude_of_origin",49.0],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000.0],PARAMETER["false_northing",-100000.0],UNIT["m",1.0],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","27700"]],VERT_CS["Newlyn",VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],UNIT["m",1.0],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5701"]],AUTHORITY["EPSG","7405"]]'
|
303
|
-
obj_ = ::RGeo::CoordSys::CS.create_from_wkt(input_)
|
304
|
-
assert_kind_of(::RGeo::CoordSys::CS::CompoundCoordinateSystem, obj_)
|
305
|
-
assert_kind_of(::RGeo::CoordSys::CS::ProjectedCoordinateSystem, obj_.head)
|
306
|
-
assert_kind_of(::RGeo::CoordSys::CS::VerticalCoordinateSystem, obj_.tail)
|
307
|
-
assert_equal(3, obj_.dimension)
|
308
|
-
assert_match(_lenient_regex_for(input_), obj_.to_wkt)
|
309
|
-
end
|
310
|
-
|
311
|
-
def test_parse_local_datum_with_extension
|
312
|
-
input_ = 'LOCAL_DATUM["Random Local Datum",10000,EXTENSION["foo","bar"]]'
|
313
|
-
obj_ = ::RGeo::CoordSys::CS.create_from_wkt(input_)
|
314
|
-
assert_kind_of(::RGeo::CoordSys::CS::LocalDatum, obj_)
|
315
|
-
assert_equal("bar", obj_.extension(:foo))
|
316
|
-
assert_nil(obj_.extension(:bar))
|
317
|
-
assert_equal(input_, obj_.to_wkt)
|
318
|
-
end
|
319
|
-
|
320
|
-
def test_marshal_roundtrip
|
321
|
-
input_ = 'COMPD_CS["OSGB36 / British National Grid + ODN",PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB 1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-4.2261596151967575],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic latitude",NORTH],AXIS["Geodetic longitude",EAST],AUTHORITY["EPSG","4277"]],PROJECTION["Transverse Mercator",AUTHORITY["EPSG","9807"]],PARAMETER["central_meridian",-2.0],PARAMETER["latitude_of_origin",49.0],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000.0],PARAMETER["false_northing",-100000.0],UNIT["m",1.0],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","27700"]],VERT_CS["Newlyn",VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],UNIT["m",1.0],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5701"]],AUTHORITY["EPSG","7405"]]'
|
322
|
-
obj1_ = ::RGeo::CoordSys::CS.create_from_wkt(input_)
|
323
|
-
dump_ = ::Marshal.dump(obj1_)
|
324
|
-
obj2_ = ::Marshal.load(dump_)
|
325
|
-
assert_equal(obj1_, obj2_)
|
326
|
-
end
|
327
|
-
|
328
|
-
if ::RGeo.yaml_supported?
|
329
|
-
|
330
|
-
def test_yaml_roundtrip
|
331
|
-
input_ = 'COMPD_CS["OSGB36 / British National Grid + ODN",PROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB 1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-4.2261596151967575],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.017453292519943295],AXIS["Geodetic latitude",NORTH],AXIS["Geodetic longitude",EAST],AUTHORITY["EPSG","4277"]],PROJECTION["Transverse Mercator",AUTHORITY["EPSG","9807"]],PARAMETER["central_meridian",-2.0],PARAMETER["latitude_of_origin",49.0],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000.0],PARAMETER["false_northing",-100000.0],UNIT["m",1.0],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","27700"]],VERT_CS["Newlyn",VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],UNIT["m",1.0],AXIS["Gravity-related height",UP],AUTHORITY["EPSG","5701"]],AUTHORITY["EPSG","7405"]]'
|
332
|
-
obj1_ = ::RGeo::CoordSys::CS.create_from_wkt(input_)
|
333
|
-
dump_ = ::Psych.dump(obj1_)
|
334
|
-
obj2_ = ::Psych.load(dump_)
|
335
|
-
assert_equal(obj1_, obj2_)
|
336
|
-
end
|
337
|
-
|
338
|
-
end
|
339
|
-
end
|
340
|
-
end
|
341
|
-
end
|
342
|
-
end
|