server-side-google-maps 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,11 +20,17 @@ module ServerSideGoogleMaps
20
20
  # Returns a new Path with n equidistant Points along this Path, complete with .elevation
21
21
  def elevations(n)
22
22
  results = self.class.get_elevations(:path => "enc:#{encoded_path}", :samples => n)
23
+
24
+ i = -1
25
+ total_distance = points.last.distance_along_path
26
+
23
27
  points = results['results'].collect do |r|
28
+ i += 1
24
29
  Point.new(
25
30
  r['location']['lat'].to_f,
26
31
  r['location']['lng'].to_f,
27
- :elevation => r['elevation'].to_f
32
+ :elevation => r['elevation'].to_f,
33
+ :distance_along_path => total_distance && (total_distance.to_f * i / (n - 1)).to_i
28
34
  )
29
35
  end
30
36
  Path.new(points)
@@ -1,3 +1,3 @@
1
1
  module ServerSideGoogleMaps
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -54,6 +54,17 @@ module ServerSideGoogleMaps
54
54
  elevations.points[0].longitude.should == -73.55368
55
55
  elevations.points[19].elevation.should == 89.6621323
56
56
  end
57
+
58
+ it('should populate #distance_along_path') do
59
+ pt1 = Point.new(45.50867, -73.55368)
60
+ pt2 = Point.new(43.65235, -79.38240)
61
+ path = Path.new([pt1, pt2])
62
+ path.calculate_distances
63
+ elevations = path.elevations(20)
64
+ elevations.points[0].distance_along_path.should == 0
65
+ elevations.points[19].distance_along_path.should == path.points.last.distance_along_path
66
+ elevations.points[9].distance_along_path.should == (path.points.last.distance_along_path * 9.0 / 19).to_i
67
+ end
57
68
  end
58
69
  end
59
70
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: server-side-google-maps
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Adam Hooper