swissgrid 0.1.0 → 0.1.1
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.
- checksums.yaml +5 -13
- data/README.md +34 -3
- data/lib/swissgrid.rb +12 -1
- data/lib/swissgrid/ch1903.rb +50 -20
- data/lib/swissgrid/version.rb +1 -1
- data/lib/swissgrid/wgs84.rb +22 -5
- data/spec/swissgrid_spec.rb +148 -16
- metadata +13 -12
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YzNhYTA1MDZlMmZkZDg0NzI0OWI3YTRmYjU3YmMxNzZiMDFjYWI5NQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d90a1c3df85723960dc4bd5e3f2d3f7004ff9218
|
4
|
+
data.tar.gz: 9614ca7c3e477e9711ba47d975c55f4e2c662fb4
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NGRmNzVlY2M1YWQ2OWNlMGY0ZDdjOTU2ZWQwZTBiYWQxNzhkM2YxY2I3Y2M2
|
11
|
-
NTNkZWI2NzAxNTgxODBiOGI2NDk1OGM1NGIzZDA3NWIyYTMyZjM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YjVkNzA4MmUwMzNjNzc1NTIyNDlkN2IzYWY3NTMxMTZlZWMzZGRjMjQwNDFk
|
14
|
-
NDM0MWZiMzFkMmM1MTRkMjc1ZmY3NWI1YTUxYTgyMDAwNWRiNjFlNTQ1NDZm
|
15
|
-
NGFlZDNmY2Y1ZGQ2OGIzNTE0MDhhYjVhMDMyOTE5OWE5OGEyNzI=
|
6
|
+
metadata.gz: f4480b2a45b6d3687870e4aa660e4d2ce9de59bbbdad8f46d003382e480a2ff70e82dc2c8f840ed7f4d43637e747427f74ae1d4d59fd6941f342fe7731530f76
|
7
|
+
data.tar.gz: 65350e51fe8b301e4169798a97b8f27325fd4f554b8eb8bd471158aed440d1b5a790aa672ef0203b503677aa0a29ee24dd6393baabdc8bc0e21a842679db97e8
|
data/README.md
CHANGED
@@ -25,15 +25,42 @@ Require the swissgrid library as follows:
|
|
25
25
|
```ruby
|
26
26
|
require 'swissgrid'
|
27
27
|
```
|
28
|
+
|
29
|
+
###Swissgrid
|
30
|
+
The swissgird library has currently two modules:
|
31
|
+
|
32
|
+
* CH1903 - responsible for CH1903 conversions
|
33
|
+
* WGS84 - responsible for WGS84 conversions
|
34
|
+
|
35
|
+
If other conversions are needed just create an issue or make a pull request :-).
|
36
|
+
|
28
37
|
###From WGS84(GPS) to CH1903
|
38
|
+
A WGS84 point can easily be converted to a CH1903 point as follows:
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
wgs84_point = [46.951082877, 7.438632495] # [lat, lon] Bern, The building of exact sciences.
|
42
|
+
ch1903_coord = Swissgrid::CH1903.from_wgs84(wgs84_point)
|
43
|
+
```
|
44
|
+
|
45
|
+
Or just use the following shortcut:
|
29
46
|
|
30
47
|
```ruby
|
31
|
-
|
32
|
-
|
48
|
+
wgs84_point = [46.951082877, 7.438632495] # [lat, lon] Bern, The building of exact sciences.
|
49
|
+
ch1903_coord = Swissgrid::CH1903(wgs84_point)
|
33
50
|
```
|
34
51
|
###From CH1903 to WGS84(GPS)
|
52
|
+
The same way a CH1903 point can be converted to a WGS84 point:
|
53
|
+
|
54
|
+
```
|
55
|
+
ch1903_point = [600_000, 200_000] # [y, x] Bern, The building of exact sciences.
|
56
|
+
wgs84_coord = Swissgrid::WGS84.from_ch1903(ch1903_point)
|
57
|
+
```
|
58
|
+
|
59
|
+
|
60
|
+
Or just use the following shortcut:
|
61
|
+
|
35
62
|
```ruby
|
36
|
-
ch1903_point = [
|
63
|
+
ch1903_point = [600_000, 200_000] # [y, x] Bern, The building of exact sciences.
|
37
64
|
wgs84_coord = Swissgrid::WGS84(ch1903_point)
|
38
65
|
```
|
39
66
|
|
@@ -49,6 +76,10 @@ require 'swissgrid'
|
|
49
76
|
```
|
50
77
|
|
51
78
|
##Changelog
|
79
|
+
* 0.1.1
|
80
|
+
* Refactor tests and codebase
|
81
|
+
* Update Readme
|
82
|
+
* Add comments
|
52
83
|
* 0.1.0
|
53
84
|
* Fix ch1903 to wgs84 conversion bug. Thanks @christianmeichtry.
|
54
85
|
* 0.0.3
|
data/lib/swissgrid.rb
CHANGED
@@ -4,10 +4,21 @@ require 'swissgrid/wgs84'
|
|
4
4
|
|
5
5
|
module Swissgrid
|
6
6
|
|
7
|
+
|
8
|
+
# Converts a WGS84 point to a CH1903 point.
|
9
|
+
#
|
10
|
+
# @param a_point [List] the WGS84 point to be converted.
|
11
|
+
# @return [List] the converted WGS84 point as CH1903 point.
|
12
|
+
#
|
7
13
|
def self.CH1903(a_point)
|
8
|
-
|
14
|
+
CH1903.from_wgs84(a_point)
|
9
15
|
end
|
10
16
|
|
17
|
+
# Converts a CH1903 point to a WGS84 point.
|
18
|
+
#
|
19
|
+
# @param a_point [List] the CH1903 point to be converted.
|
20
|
+
# @return [List] the converted CH1903 point as WGS84 point.
|
21
|
+
#
|
11
22
|
def self.WGS84(a_point)
|
12
23
|
WGS84.from_ch1903(a_point)
|
13
24
|
end
|
data/lib/swissgrid/ch1903.rb
CHANGED
@@ -1,41 +1,58 @@
|
|
1
1
|
module Swissgrid
|
2
2
|
|
3
|
-
module
|
3
|
+
module CH1903
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
# Projection centre Bern
|
6
|
+
PHI_BERN = 169_028.66 # in meters
|
7
|
+
LAMBDA_BERN = 26_782.5 # in meters
|
8
|
+
SCALE = 10_000 # scale to unit 10000"
|
8
9
|
|
10
|
+
|
11
|
+
# Converts a CH1903 point to a WGS84 point.
|
12
|
+
#
|
13
|
+
# @param a_point [List] the CH1903 point to be converted.
|
14
|
+
# @return [List] the converted CH1903 point as WGS84 point.
|
15
|
+
#
|
9
16
|
def self.from_wgs84(a_point)
|
10
17
|
lat, lon, z = a_point
|
11
|
-
phi_sec =
|
12
|
-
lambda_sec =
|
18
|
+
phi_sec = to_arc_seconds(lat)
|
19
|
+
lambda_sec = to_arc_seconds(lon)
|
13
20
|
lambda_prime = (lambda_sec - LAMBDA_BERN) / SCALE.to_f
|
14
21
|
phi_prime = (phi_sec - PHI_BERN) / SCALE.to_f
|
22
|
+
|
23
|
+
# compute WGS84 point
|
15
24
|
convert(lambda_prime, phi_prime, z)
|
16
25
|
end
|
17
26
|
|
27
|
+
|
18
28
|
private
|
19
29
|
|
30
|
+
|
31
|
+
# Computes the WGS84 point by means of the auxiliary parameters lambda', phi' and height h.
|
32
|
+
#
|
33
|
+
# @param lambda_prime [Float] auxiliary parameter lambda'.
|
34
|
+
# @param phi_prime [Float] auxiliary parameter phi'.
|
35
|
+
# @param h [Float] height h.
|
36
|
+
#
|
20
37
|
def self.convert(lambda_prime, phi_prime, h)
|
21
38
|
y = [
|
22
|
-
|
23
|
-
|
24
|
-
-
|
39
|
+
600_072.37,
|
40
|
+
211_455.93 * lambda_prime,
|
41
|
+
-10_938.51 * lambda_prime * phi_prime,
|
25
42
|
-0.36 * lambda_prime * (phi_prime ** 2),
|
26
43
|
-44.54 * (lambda_prime ** 3)
|
27
44
|
].reduce(:+)
|
28
45
|
|
29
46
|
x = [
|
30
|
-
|
31
|
-
|
32
|
-
|
47
|
+
200_147.07,
|
48
|
+
308_807.95 * phi_prime,
|
49
|
+
3_745.25 * (lambda_prime ** 2),
|
33
50
|
76.63 * (phi_prime ** 2),
|
34
51
|
-194.56 * (lambda_prime ** 2) * phi_prime,
|
35
52
|
119.79 * (phi_prime ** 3)
|
36
53
|
].reduce(:+)
|
37
54
|
|
38
|
-
z = if h.nil?
|
55
|
+
z = if h.nil? # if nil do nothing
|
39
56
|
h
|
40
57
|
else
|
41
58
|
[
|
@@ -45,22 +62,35 @@ module Swissgrid
|
|
45
62
|
].reduce(:+)
|
46
63
|
end
|
47
64
|
|
48
|
-
z.nil? ? [y, x] : [y, x, z]
|
65
|
+
z.nil? ? [y, x] : [y, x, z] # if z is nil, remove z component
|
49
66
|
end
|
50
67
|
|
51
68
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
69
|
+
# Converts decimal degrees to a DMS triple that consists of the parts degree, minutes and seconds.
|
70
|
+
#
|
71
|
+
# @param dec_degrees [Float] decimal degrees to be converted.
|
72
|
+
# @return [List] a triple [degree, minutes, seconds].
|
73
|
+
#
|
74
|
+
def self.to_dms_triple(dec_degrees)
|
75
|
+
degrees = dec_degrees.to_i
|
76
|
+
minutes = (60*(dec_degrees - degrees)).to_i
|
77
|
+
seconds = (60*(dec_degrees - degrees) - minutes) * 60
|
56
78
|
[degrees, minutes, seconds]
|
57
79
|
end
|
58
80
|
|
59
|
-
|
60
|
-
|
81
|
+
|
82
|
+
# Converts decimal degrees to arc seconds.
|
83
|
+
#
|
84
|
+
# @param dec_degrees [Float] decimal degrees to be converted.
|
85
|
+
# @return [Float] arc seconds.
|
86
|
+
#
|
87
|
+
def self.to_arc_seconds(dec_degrees)
|
88
|
+
degree, minutes, seconds = to_dms_triple(dec_degrees)
|
61
89
|
degree * 3600 + minutes * 60 + seconds
|
62
90
|
end
|
63
91
|
|
64
92
|
end
|
65
93
|
|
94
|
+
Ch1903 = CH1903 # to be compatible to previous versions
|
95
|
+
|
66
96
|
end
|
data/lib/swissgrid/version.rb
CHANGED
data/lib/swissgrid/wgs84.rb
CHANGED
@@ -2,19 +2,36 @@ module Swissgrid
|
|
2
2
|
|
3
3
|
module WGS84
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
# Projection centre Bern
|
6
|
+
Y_BERN = 600_000 # in meters
|
7
|
+
X_BERN = 200_000 # in meters
|
8
|
+
SCALE = 1_000_000 # scale to unit 1000km
|
8
9
|
|
10
|
+
|
11
|
+
# Converts a WGS84 point to a CH1903 point.
|
12
|
+
#
|
13
|
+
# @param a_point [List] the WGS84 point to be converted.
|
14
|
+
# @return [List] the converted WGS84 point as CH1903 point.
|
15
|
+
#
|
9
16
|
def self.from_ch1903(a_point)
|
10
17
|
y, x , z = a_point
|
11
18
|
y_prime = (y - Y_BERN) / SCALE.to_f
|
12
19
|
x_prime = (x - X_BERN) / SCALE.to_f
|
20
|
+
|
21
|
+
# compute CH1903 point
|
13
22
|
convert(y_prime, x_prime, z)
|
14
23
|
end
|
15
24
|
|
25
|
+
|
16
26
|
private
|
17
27
|
|
28
|
+
|
29
|
+
# Computes the CH1903 point by means of the auxiliary parameters y', x' and height h'.
|
30
|
+
#
|
31
|
+
# @param y_prime [Float] auxiliary parameter y'.
|
32
|
+
# @param x_prime [Float] auxiliary parameter x'.
|
33
|
+
# @param h_prime [Float] height h.
|
34
|
+
#
|
18
35
|
def self.convert(y_prime, x_prime, h_prime)
|
19
36
|
lambda_prime = [
|
20
37
|
2.6779094,
|
@@ -33,7 +50,7 @@ module Swissgrid
|
|
33
50
|
-0.0140 * (x_prime ** 3)
|
34
51
|
].reduce(:+)
|
35
52
|
|
36
|
-
z = if h_prime.nil?
|
53
|
+
z = if h_prime.nil? # if nil do nothing
|
37
54
|
h_prime
|
38
55
|
else
|
39
56
|
[
|
@@ -44,7 +61,7 @@ module Swissgrid
|
|
44
61
|
end
|
45
62
|
|
46
63
|
lat, lon = [phi_prime, lambda_prime].map { |v| v * 100/36.to_f }
|
47
|
-
z.nil? ? [lat, lon] : [lat, lon, z]
|
64
|
+
z.nil? ? [lat, lon] : [lat, lon, z] # if z is nil, remove z component
|
48
65
|
end
|
49
66
|
|
50
67
|
end
|
data/spec/swissgrid_spec.rb
CHANGED
@@ -2,32 +2,164 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Swissgrid
|
4
4
|
|
5
|
+
PRECISION_CH1903_TO_WGS84 = 0.1/3600 # Precision in the order of 0.1"
|
6
|
+
PRECISION_WGS84_TO_CH1903 = 1.5 # Precision in the order of 1.5 metre
|
7
|
+
|
5
8
|
describe Swissgrid do
|
6
9
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
#
|
11
|
+
# Test conversion methods directly.
|
12
|
+
#
|
13
|
+
|
14
|
+
describe CH1903 do
|
15
|
+
it "tests from_wgs84" do
|
16
|
+
wgs84_point = [46.881908, 7.471829]
|
17
|
+
expected_ch1903_point = [602_530.221, 192_310.331]
|
18
|
+
ch1903_coord = Swissgrid::CH1903.from_wgs84(wgs84_point)
|
19
|
+
expect(ch1903_coord[0]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[0])
|
20
|
+
expect(ch1903_coord[1]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[1])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe WGS84 do
|
25
|
+
it "tests from_ch903" do
|
26
|
+
ch1903_point = [602_530.221, 192_310.331]
|
27
|
+
expected_wgs84_point = [46.881908, 7.471829]
|
28
|
+
wgs84_coord = Swissgrid::WGS84.from_ch1903(ch1903_point)
|
29
|
+
expect(wgs84_coord[0]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[0])
|
30
|
+
expect(wgs84_coord[1]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[1])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
#
|
35
|
+
# Test conversion: Zimmerwald CH1903 [602_530.221, 192_310.331] <=> WGS84 [46.881908, 7.471829]
|
36
|
+
#
|
37
|
+
|
38
|
+
it "tests conversion from Zimmerwald wgs84 point to ch1903 point" do
|
39
|
+
wgs84_point = [46.881908, 7.471829]
|
40
|
+
expected_ch1903_point = [602_530.221, 192_310.331]
|
41
|
+
ch1903_coord = Swissgrid::CH1903(wgs84_point)
|
42
|
+
expect(ch1903_coord[0]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[0])
|
43
|
+
expect(ch1903_coord[1]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[1])
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
it "tests conversion from Zimmerwald ch1903 point to wgs84 point" do
|
48
|
+
ch1903_point = [602_530.221, 192_310.331]
|
49
|
+
expected_wgs84_point = [46.881908, 7.471829]
|
50
|
+
wgs84_coord = Swissgrid::WGS84(ch1903_point)
|
51
|
+
expect(wgs84_coord[0]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[0])
|
52
|
+
expect(wgs84_coord[1]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[1])
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
#
|
57
|
+
# Test conversion: Zuerich CH1903 [683_082.039, 247_793.250] <=> WGS84 [47.375736, 8.538750]
|
58
|
+
#
|
59
|
+
|
60
|
+
it "tests conversion from Zuerich wgs84 point to ch1903 point" do
|
61
|
+
wgs84_point = [47.375736, 8.538750]
|
62
|
+
expected_ch1903_point = [683_082.039, 247_793.250]
|
63
|
+
ch1903_coord = Swissgrid::CH1903(wgs84_point)
|
64
|
+
expect(ch1903_coord[0]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[0])
|
65
|
+
expect(ch1903_coord[1]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[1])
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
it "tests conversion from Zuerich ch1903 point to wgs84 point" do
|
70
|
+
ch1903_point = [683_082.039, 247_793.250]
|
71
|
+
expected_wgs84_point = [47.375736, 8.538750]
|
72
|
+
wgs84_coord = Swissgrid::WGS84(ch1903_point)
|
73
|
+
expect(wgs84_coord[0]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[0])
|
74
|
+
expect(wgs84_coord[1]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[1])
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
#
|
79
|
+
# Test conversion: Bern CH1903 [600_000, 200_000] <=> WGS84 [46.951082877, 7.438632495]
|
80
|
+
#
|
81
|
+
|
82
|
+
it "tests conversion from Bern wgs84 point to ch1903 point" do
|
83
|
+
wgs84_point = [46.951082877, 7.438632495]
|
84
|
+
expected_ch1903_point = [600_000, 200_000]
|
85
|
+
ch1903_coord = Swissgrid::CH1903(wgs84_point)
|
86
|
+
expect(ch1903_coord[0]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[0])
|
87
|
+
expect(ch1903_coord[1]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[1])
|
13
88
|
end
|
14
89
|
|
15
90
|
|
16
|
-
it "tests conversion from ch1903 to wgs84" do
|
91
|
+
it "tests conversion from Bern ch1903 point to wgs84 point" do
|
17
92
|
ch1903_point = [600_000, 200_000]
|
18
|
-
|
19
|
-
|
20
|
-
expect(wgs84_coord[
|
21
|
-
|
93
|
+
expected_wgs84_point = [46.951082877, 7.438632495]
|
94
|
+
wgs84_coord = Swissgrid::WGS84(ch1903_point)
|
95
|
+
expect(wgs84_coord[0]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[0])
|
96
|
+
expect(wgs84_coord[1]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[1])
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
#
|
101
|
+
# Test conversion: Lugano CH1903 [717_665.373, 95_957.362] <=> WGS84 [46.951082877, 7.438632495]
|
102
|
+
#
|
103
|
+
|
104
|
+
it "tests conversion from Lugano wgs84 point to ch1903 point" do
|
105
|
+
wgs84_point = [46.004914, 8.957646]
|
106
|
+
expected_ch1903_point = [717_665.373, 95_957.362]
|
107
|
+
ch1903_coord = Swissgrid::CH1903(wgs84_point)
|
108
|
+
expect(ch1903_coord[0]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[0])
|
109
|
+
expect(ch1903_coord[1]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[1])
|
110
|
+
end
|
111
|
+
|
112
|
+
|
113
|
+
it "tests conversion from Lugano ch1903 point to wgs84 point" do
|
114
|
+
ch1903_point = [717_665.373, 95_957.362]
|
115
|
+
expected_wgs84_point = [46.004914, 8.957646]
|
116
|
+
wgs84_coord = Swissgrid::WGS84(ch1903_point)
|
117
|
+
expect(wgs84_coord[0]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[0])
|
118
|
+
expect(wgs84_coord[1]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs84_point[1])
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
#
|
123
|
+
# Test conversion: Geneva CH1903 [501_000.723, 118_136.350] <=> WGS84 [46.207383, 6.155882]
|
124
|
+
#
|
125
|
+
|
126
|
+
it "tests conversion from Geneva wgs84 point to ch1903 point" do
|
127
|
+
wgs84_point = [46.207383, 6.155882]
|
128
|
+
expected_ch1903_point = [501_000.723, 118_136.350]
|
129
|
+
ch1903_coord = Swissgrid::CH1903(wgs84_point)
|
130
|
+
expect(ch1903_coord[0]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[0])
|
131
|
+
expect(ch1903_coord[1]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[1])
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
it "tests conversion from Geneva ch1903 point to wgs84 point" do
|
136
|
+
ch1903_point = [501_000.723, 118_136.350]
|
137
|
+
expected_wgs_point = [46.207383, 6.155882]
|
138
|
+
wgs84_coord = Swissgrid::WGS84(ch1903_point)
|
139
|
+
expect(wgs84_coord[0]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs_point[0])
|
140
|
+
expect(wgs84_coord[1]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs_point[1])
|
22
141
|
end
|
23
142
|
|
24
|
-
|
143
|
+
|
144
|
+
#
|
145
|
+
# Test conversion: Thun CH1903 [611_202, 177_630] <=> WGS84 [46.7497613025, 7.58523830611]
|
146
|
+
#
|
147
|
+
|
148
|
+
it "tests conversion from Thun wgs84 point to ch1903 point" do
|
149
|
+
wgs84_point = [46.7497613025, 7.58523830611]
|
150
|
+
expected_ch1903_point = [611_202, 177_630]
|
151
|
+
ch1903_coord = Swissgrid::CH1903(wgs84_point)
|
152
|
+
expect(ch1903_coord[0]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[0])
|
153
|
+
expect(ch1903_coord[1]).to be_within(PRECISION_WGS84_TO_CH1903).of(expected_ch1903_point[1])
|
154
|
+
end
|
155
|
+
|
156
|
+
|
157
|
+
it "tests conversion from Thun ch1903 point to wgs84 point" do
|
25
158
|
ch1903_point = [611_202, 177_630]
|
26
159
|
expected_wgs_point = [46.7497613025, 7.58523830611]
|
27
|
-
wgs84_coord =
|
28
|
-
expect(wgs84_coord[0]).to be_within(
|
29
|
-
expect(wgs84_coord[1]).to be_within(
|
30
|
-
pp wgs84_coord
|
160
|
+
wgs84_coord = Swissgrid::WGS84(ch1903_point)
|
161
|
+
expect(wgs84_coord[0]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs_point[0])
|
162
|
+
expect(wgs84_coord[1]).to be_within(PRECISION_CH1903_TO_WGS84).of(expected_wgs_point[1])
|
31
163
|
end
|
32
164
|
|
33
165
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swissgrid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Rueedlinger
|
@@ -14,56 +14,56 @@ dependencies:
|
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.7'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec-core
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Swissgrid is a library to convert gps points into the Swiss coordinate
|
@@ -74,7 +74,7 @@ executables: []
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
-
- .gitignore
|
77
|
+
- ".gitignore"
|
78
78
|
- Gemfile
|
79
79
|
- LICENSE.txt
|
80
80
|
- README.md
|
@@ -96,12 +96,12 @@ require_paths:
|
|
96
96
|
- lib
|
97
97
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
|
-
- -
|
99
|
+
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0'
|
102
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- -
|
104
|
+
- - ">="
|
105
105
|
- !ruby/object:Gem::Version
|
106
106
|
version: '0'
|
107
107
|
requirements: []
|
@@ -113,3 +113,4 @@ summary: A library to convert gps points into the Swiss coordinate system (CH190
|
|
113
113
|
test_files:
|
114
114
|
- spec/spec_helper.rb
|
115
115
|
- spec/swissgrid_spec.rb
|
116
|
+
has_rdoc:
|