googlemaps-services 1.3.0 → 1.3.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f9af6339c46954459057f1f720aa53f4275158c2
4
- data.tar.gz: e167756c771106d77778d36284960c429cb9105f
3
+ metadata.gz: 9a29bf1ab90463cf58a2920a07ea63a791cf6637
4
+ data.tar.gz: 27203036b8394d7f9bb304864f8156fd0c454ded
5
5
  SHA512:
6
- metadata.gz: dba8b6e7c27f3ddd0e90ef28d981930ab97c148a7202b3b98862a0bd18d8c80467b15df9751bb17827f596dbc3592eca30a0c988e5e7fdb31f1ce989f13d5c22
7
- data.tar.gz: ab24f530bae29cf059851bfcea3682766b693909addb9dfa16e37e7d1379be0c4f8a59eecb1c271bb2cef2b0fee89ab5e5c28b2439b0ee9f5c7c5895c6f58b9e
6
+ metadata.gz: 5cdbce608cb68fe2b5fb418e8f4193f0c8d137f1239ec26efa9c58919e1eac2099b1c2dd261fc4e729f3a096e01d32f93bd55bff66e22404299a500899b91d75
7
+ data.tar.gz: 9b6422d246c467abe6d29db91239e4f11abbf48e72c10584ba55e0f54234dc18fb60e8dca44661e6c840f6168f07acdf78254409e27c99294a3bee5494ae698e
@@ -105,9 +105,7 @@ module GoogleMaps
105
105
  # @return [Hash, Array, nil] response body (either in JSON or XML) or nil.
106
106
  def get(url:, params:, first_request_time: nil, retry_counter: nil, base_url: DEFAULT_BASE_URL,
107
107
  accepts_clientid: true, extract_body: nil, request_headers: nil)
108
- unless first_request_time
109
- first_request_time = Util.current_time
110
- end
108
+ first_request_time = Util.current_time unless first_request_time
111
109
 
112
110
  elapsed = Time.now - first_request_time
113
111
  if elapsed > self.retry_timeout
@@ -120,7 +118,7 @@ module GoogleMaps
120
118
  # at 1, so subtract that first.
121
119
  delay_seconds = 0.5 * 1.5 ** (retry_counter - 1)
122
120
  # Jitter this value by 50% and pause.
123
- sleep(delay_seconds * (random.random + 0.5))
121
+ sleep(delay_seconds * (Random.rand + 0.5))
124
122
  end
125
123
 
126
124
  authed_url = generate_auth_url(url, params, accepts_clientid)
@@ -219,8 +217,6 @@ module GoogleMaps
219
217
 
220
218
  if body.key?('error_message')
221
219
  raise APIError.new(api_status), body['error_message']
222
- else
223
- raise APIError.new(api_status)
224
220
  end
225
221
  end
226
222
 
@@ -257,8 +253,6 @@ module GoogleMaps
257
253
  error_message = doc.xpath('//error_message')
258
254
  if error_message
259
255
  raise APIError.new(api_status), error_message.text
260
- else
261
- raise APIError.new(api_status)
262
256
  end
263
257
  end
264
258
 
@@ -304,12 +298,10 @@ module GoogleMaps
304
298
  return path + '&signature=' + sig
305
299
  end
306
300
 
307
- if self.key
308
- params['key'] = self.key
309
- return path + '?' + Util.urlencode_params(params)
310
- end
301
+ raise StandardError, 'Must provide API key for this API. It does not accept enterprise credentials.' unless self.key
311
302
 
312
- raise StandardError, 'Must provide API key for this API. It does not accept enterprise credentials.'
303
+ params['key'] = self.key
304
+ return path + '?' + Util.urlencode_params(params)
313
305
  end
314
306
 
315
307
  private :get_json_body, :get_xml_body, :get_map_image, :get_redirection_url, :generate_auth_url
@@ -67,7 +67,7 @@ module GoogleMaps
67
67
  # Performs requests to the Google Maps Geocoding API.
68
68
  #
69
69
  # @example
70
- # reverse_geocode = GoogleMaps::Services::ReverseGeocode(client)
70
+ # reverse_geocode = GoogleMaps::Services::ReverseGeocode.new(client)
71
71
  # result = reverse_geocode.query(latlng: {:lat => 52.520645, :lng => 13.409779}, language: "fr")
72
72
  class ReverseGeocode
73
73
  attr_accessor :client
@@ -42,6 +42,8 @@ module GoogleMaps
42
42
  # @param [String, Array] path The single path of two or more connected points to overlay in the image at the specified locations.
43
43
  # @param [String, Array] visible One or more locations that should remain visible on the map.
44
44
  # @param [String] style A custom style to alter the presentation of a specific feature (roads, parks, and other features) of the map.
45
+ #
46
+ # @return [Hash] Hash with image URL, MIME type and its base64-encoded value.
45
47
  def query(size:, center: nil, zoom: nil, scale: 1, format: "png", maptype: "roadmap",
46
48
  language: nil, region: nil, markers: nil, path: nil, visible: nil, style: nil)
47
49
  params = { 'size' => Convert.rectangular_dimensions(size) }
@@ -0,0 +1,73 @@
1
+ require 'googlemaps/services/util'
2
+
3
+ module GoogleMaps
4
+ module Services
5
+
6
+ # Performs requests to the Google Street View Map API.
7
+ #
8
+ # @example Get the street view map image
9
+ # streetview = GoogleMaps::Services::StreetViewImage.new(client)
10
+ # map_img = streetview.query(size: {:length=>400, :width=>400}, location: "40.714728,-73.998672", heading: 151.78, pitch: -0.76)
11
+ # # {
12
+ # # :url => "https://maps.googleapis.com/maps/api/streetview?size=400x400&location=40.714728%2C-73.998672&heading=151.78&pitch=-0.76",
13
+ # # :mime_type => "image/jpeg",
14
+ # # :image_data => "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHR..."
15
+ # # }
16
+ class StreetViewImage
17
+
18
+ # @return [Symbol] The HTTP client.
19
+ attr_accessor :client
20
+
21
+ def initialize(client)
22
+ self.client = client
23
+ end
24
+
25
+ # Get the street view map image.
26
+ #
27
+ # @param [Hash] size the rectangular dimensions of the street view image.
28
+ # @param [String, Hash] location The address or lat/lng value of the street view map.
29
+ # @param [String] pano A specific panorama ID.
30
+ # @param [Numeric] heading The compass heading of the camera. Accepted values are from 0 to 360.
31
+ # @param [Numeric] fov The horizontal field of view of the image. It is expressed in degrees, with a maximum allowed value of 120.
32
+ # @param [Numeric] pitch The up or down angle of the camera relative to the Street View vehicle.
33
+ # Positive values angle the camera up (with 90 degrees indicating straight up).
34
+ # Negative values angle the camera down (with -90 indicating straight down).
35
+ #
36
+ # @return [Hash] Hash with image URL, MIME type and its base64-encoded value.
37
+ def query(size:, location: nil, pano: nil, heading: nil, fov: nil, pitch: nil)
38
+ params = {
39
+ 'size' => Convert.rectangular_dimensions(size)
40
+ }
41
+
42
+ if location
43
+ params['location'] = Convert.to_latlng(location)
44
+ end
45
+
46
+ if pano
47
+ params['pano'] = pano
48
+ end
49
+
50
+ if location && pano
51
+ raise StandardError, 'should not specify both location and panorama ID.'
52
+ end
53
+
54
+ if heading
55
+ raise StandardError, 'invalid compass heading value.' unless (0..360).include? heading
56
+ params['heading'] = heading
57
+ end
58
+
59
+ if fov
60
+ raise StandardError, 'invalid field of view (fov) value.' unless (0..120).include? fov
61
+ params['fov'] = fov
62
+ end
63
+
64
+ if pitch
65
+ raise StandardError, 'invalid pitch value.' unless (-90..90).include? pitch
66
+ params['pitch'] = pitch
67
+ end
68
+
69
+ self.client.get(url: "/maps/api/streetview", params: params)
70
+ end
71
+ end
72
+ end
73
+ end
@@ -1,5 +1,5 @@
1
1
  module GoogleMaps
2
2
  module Services
3
- VERSION = '1.3.0'.freeze
3
+ VERSION = '1.3.5'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: googlemaps-services
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Faissal Elamraoui
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-18 00:00:00.000000000 Z
11
+ date: 2017-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -109,6 +109,7 @@ files:
109
109
  - lib/googlemaps/services/places.rb
110
110
  - lib/googlemaps/services/roads.rb
111
111
  - lib/googlemaps/services/staticmap.rb
112
+ - lib/googlemaps/services/streetview.rb
112
113
  - lib/googlemaps/services/timezone.rb
113
114
  - lib/googlemaps/services/util.rb
114
115
  - lib/googlemaps/services/version.rb