travel_time 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f92636f6a9ef3ed92abd0fba69609a827923c4c2f0f617b8b986921749282224
4
- data.tar.gz: aa5352c332805b59a3057d17cf983691f2866d72de765df7c65d4bf12dc9e91b
3
+ metadata.gz: 2b3e81554adec31d0273e4a8800d9f31ee0b6bbd74277a8e0b61592629e813b5
4
+ data.tar.gz: 74d2300d335ba54c7191848fede142c37b001516bedd6a84da01d8b8fab82cf9
5
5
  SHA512:
6
- metadata.gz: 45cd2bd0a182a170afb7569720bbe4acb9010e307b75dcdce56917b0ed4efe073934a98d24f838319e7e64b0c020df4ada6340b798fde13de5da5c1b5c15e9da
7
- data.tar.gz: c2ef831952436c81bd1519065c4217dde55fffce7f976a55564304b7b9fa395809b7d6a62893c7dc046d607e1b89fe108042a4c1afd21a4b02b8620604c66408
6
+ metadata.gz: e171245021dbb7c0ff92d601c61b7dd28e67972dc440f7f9d3accb0023c18d0d97e10227d9be269cf6290b02005a070cd9d2913c4b8a733b511d349138460b3a
7
+ data.tar.gz: 1ddde0b924c7dcb823230514942bab274b9654bfba612e1778ad7bf79634bc9ce7321d2ece7c410021ddd80957b1409e938c35d8dda963f8a0cde70895551ee8
data/README.md CHANGED
@@ -70,6 +70,418 @@ departure_search = {
70
70
  client.time_map(departure_searches: [departure_search])
71
71
  ```
72
72
 
73
+
74
+ ### [Isochrones (Time Map)](https://traveltime.com/docs/api/reference/isochrones)
75
+ Given origin coordinates, find shapes of zones reachable within corresponding travel time.
76
+ Find unions/intersections between different searches.
77
+
78
+ ```ruby
79
+ require 'time'
80
+
81
+ departure_search = {
82
+ id: "public transport from Trafalgar Square",
83
+ coords: {
84
+ lat: 51.506756,
85
+ lng: -0.128050
86
+ },
87
+ transportation: { type: "public_transport" },
88
+ departure_time: Time.now.iso8601,
89
+ travel_time: 1800,
90
+ }
91
+
92
+ arrival_search = {
93
+ id: "public transport to Trafalgar Square",
94
+ coords: {
95
+ lat: 51.506756,
96
+ lng: -0.128050
97
+ },
98
+ transportation: { type: "public_transport" },
99
+ arrival_time: Time.now.iso8601,
100
+ travel_time: 1800,
101
+ range: { enabled: true, width: 3600 }
102
+ }
103
+
104
+ union = {
105
+ id: 'union of driving and public transport',
106
+ search_ids: ['public transport from Trafalgar Square', 'public transport to Trafalgar Square']
107
+ }
108
+ intersection = {
109
+ id: 'intersection of driving and public transport',
110
+ search_ids: ['public transport from Trafalgar Square', 'public transport to Trafalgar Square']
111
+ }
112
+
113
+ response = client.time_map(
114
+ departure_searches: [departure_search],
115
+ arrival_searches: [arrival_search],
116
+ unions: [union],
117
+ intersections: [intersection]
118
+ )
119
+
120
+ puts response.body
121
+ ```
122
+
123
+ ### [Distance Matrix (Time Filter)](https://traveltime.com/docs/api/reference/distance-matrix)
124
+ Given origin and destination points filter out points that cannot be reached within specified time limit.
125
+ Find out travel times, distances and costs between an origin and up to 2,000 destination points.
126
+
127
+ ```ruby
128
+ require 'time'
129
+
130
+ locations = [
131
+ {
132
+ id: 'London center',
133
+ coords: {
134
+ lat: 51.508930,
135
+ lng: -0.131387
136
+ }
137
+ },
138
+ {
139
+ id: 'Hyde Park',
140
+ coords: {
141
+ lat: 51.508824,
142
+ lng: -0.167093
143
+ }
144
+ },
145
+ {
146
+ id: 'ZSL London Zoo',
147
+ coords: {
148
+ lat: 51.536067,
149
+ lng: -0.153596
150
+ }
151
+ }
152
+ ]
153
+
154
+ departure_search = {
155
+ id: 'forward search example',
156
+ departure_location_id: 'London center',
157
+ arrival_location_ids: ['Hyde Park', 'ZSL London Zoo'],
158
+ transportation: { type: 'bus' },
159
+ departure_time: Time.now.iso8601,
160
+ travel_time: 1800,
161
+ properties: ['travel_time'],
162
+ range: { enabled: true, max_results: 3, width: 600 }
163
+ }
164
+
165
+ arrival_search = {
166
+ id: 'backward search example',
167
+ departure_location_ids: ['Hyde Park', 'ZSL London Zoo'],
168
+ arrival_location_id: 'London center',
169
+ transportation: { type: 'public_transport' },
170
+ arrival_time: Time.now.iso8601,
171
+ travel_time: 1800,
172
+ properties: ['travel_time', 'distance', 'distance_breakdown', 'fares']
173
+ }
174
+
175
+ response = client.time_filter(
176
+ locations: locations,
177
+ departure_searches: [departure_search],
178
+ arrival_searches: [arrival_search]
179
+ )
180
+
181
+ puts response.body
182
+ ```
183
+
184
+ ### [Routes](https://traveltime.com/docs/api/reference/routes)
185
+ Returns routing information between source and destinations.
186
+
187
+ ```ruby
188
+ require 'time'
189
+
190
+ locations = [{
191
+ id: 'London center',
192
+ coords: {
193
+ lat: 51.508930,
194
+ lng: -0.131387
195
+ }
196
+ },
197
+ {
198
+ id: 'Hyde Park',
199
+ coords: {
200
+ lat: 51.508824,
201
+ lng: -0.167093
202
+ }
203
+ },
204
+ {
205
+ id: 'ZSL London Zoo',
206
+ coords: {
207
+ lat: 51.536067,
208
+ lng: -0.153596
209
+ }
210
+ }]
211
+
212
+ departure_search = {
213
+ id: 'forward search example',
214
+ departure_location_id: 'London center',
215
+ arrival_location_ids: ['Hyde Park', 'ZSL London Zoo'],
216
+ transportation: {
217
+ type: 'bus'
218
+ },
219
+ departure_time: Time.now.iso8601,
220
+ travel_time: 1800,
221
+ properties: ['travel_time'],
222
+ range: {
223
+ enabled: true,
224
+ max_results: 3,
225
+ width: 600
226
+ }
227
+ }
228
+
229
+ arrival_search = {
230
+ id: 'backward search example',
231
+ departure_location_ids: ['Hyde Park', 'ZSL London Zoo'],
232
+ arrival_location_id: 'London center',
233
+ transportation: {
234
+ type: 'public_transport'
235
+ },
236
+ arrival_time: Time.now.iso8601,
237
+ travel_time: 1800,
238
+ properties: ['travel_time', 'distance', 'fares', 'route']
239
+ }
240
+
241
+ response = client.routes(
242
+ locations: locations,
243
+ departure_searches: [departure_search],
244
+ arrival_searches: [arrival_search]
245
+ )
246
+
247
+ puts response.body
248
+ ```
249
+
250
+ ### [Time Filter (Fast)](https://traveltime.com/docs/api/reference/time-filter-fast)
251
+ A very fast version of time_filter().
252
+ However, the request parameters are much more limited.
253
+ Currently only supports UK and Ireland.
254
+
255
+ ```ruby
256
+ locations = [
257
+ {
258
+ id: 'London center',
259
+ coords: {
260
+ lat: 51.508930,
261
+ lng: -0.131387
262
+ }
263
+ },
264
+ {
265
+ id: 'Hyde Park',
266
+ coords: {
267
+ lat: 51.508824,
268
+ lng: -0.167093
269
+ }
270
+ },
271
+ {
272
+ id: 'ZSL London Zoo',
273
+ coords: {
274
+ lat: 51.536067,
275
+ lng: -0.153596
276
+ }
277
+ }
278
+ ]
279
+
280
+ arrival_many_to_one = {
281
+ id: 'arrive-at many-to-one search example',
282
+ departure_location_ids: ['Hyde Park', 'ZSL London Zoo'],
283
+ arrival_location_id: 'London center',
284
+ transportation: { type: 'public_transport' },
285
+ arrival_time_period: 'weekday_morning',
286
+ travel_time: 1900,
287
+ properties: ['travel_time', 'fares']
288
+ }
289
+
290
+ arrival_one_to_many = {
291
+ id: 'arrive-at one-to-many search example',
292
+ arrival_location_ids: ['Hyde Park', 'ZSL London Zoo'],
293
+ departure_location_id: 'London center',
294
+ transportation: { type: 'public_transport' },
295
+ arrival_time_period: 'weekday_morning',
296
+ travel_time: 1900,
297
+ properties: ['travel_time', 'fares']
298
+ }
299
+
300
+ arrival_searches = {
301
+ many_to_one: [arrival_many_to_one],
302
+ one_to_many: [arrival_one_to_many]
303
+ }
304
+
305
+ response = client.time_filter_fast(
306
+ locations: locations,
307
+ arrival_searches: arrival_searches
308
+ )
309
+
310
+ puts response.body
311
+ ```
312
+
313
+ ### [Time Filter (Postcode Districts)](https://traveltime.com/docs/api/reference/postcode-district-filter)
314
+ Find districts that have a certain coverage from origin (or to destination) and get statistics about postcodes within such districts.
315
+ Currently only supports United Kingdom.
316
+
317
+ ```ruby
318
+ require 'time'
319
+
320
+ departure_search = {
321
+ id: 'public transport from Trafalgar Square',
322
+ departure_time: Time.now.iso8601,
323
+ travel_time: 1800,
324
+ coords: { lat: 51.507609, lng: -0.128315 },
325
+ transportation: { type: 'public_transport' },
326
+ properties: ['coverage', 'travel_time_reachable', 'travel_time_all'],
327
+ reachable_postcodes_threshold: 0.1
328
+ }
329
+
330
+ arrival_search = {
331
+ id: 'public transport to Trafalgar Square',
332
+ arrival_time: Time.now.iso8601,
333
+ travel_time: 1800,
334
+ coords: { lat: 51.507609, lng: -0.128315 },
335
+ transportation: { type: 'public_transport' },
336
+ properties: ['coverage', 'travel_time_reachable', 'travel_time_all'],
337
+ reachable_postcodes_threshold: 0.1
338
+ }
339
+
340
+ response = client.time_filter_postcode_districts(
341
+ departure_searches: [departure_search],
342
+ arrival_searches: [arrival_search]
343
+ )
344
+
345
+ puts response.body
346
+ ```
347
+
348
+ ### [Time Filter (Postcode Sectors)](https://traveltime.com/docs/api/reference/postcode-sector-filter)
349
+ Find sectors that have a certain coverage from origin (or to destination) and get statistics about postcodes within such sectors.
350
+ Currently only supports United Kingdom.
351
+
352
+ ```ruby
353
+ require 'time'
354
+
355
+ departure_search = {
356
+ id: 'public transport from Trafalgar Square',
357
+ departure_time: Time.now.iso8601,
358
+ travel_time: 1800,
359
+ coords: { lat: 51.507609, lng: -0.128315 },
360
+ transportation: { type: 'public_transport' },
361
+ properties: ['coverage', 'travel_time_reachable', 'travel_time_all'],
362
+ reachable_postcodes_threshold: 0.1
363
+ }
364
+
365
+ arrival_search = {
366
+ id: 'public transport to Trafalgar Square',
367
+ arrival_time: Time.now.iso8601,
368
+ travel_time: 1800,
369
+ coords: { lat: 51.507609, lng: -0.128315 },
370
+ transportation: { type: 'public_transport' },
371
+ properties: ['coverage', 'travel_time_reachable', 'travel_time_all'],
372
+ reachable_postcodes_threshold: 0.1
373
+ }
374
+
375
+ response = client.time_filter_postcode_sectors(
376
+ departure_searches: [departure_search],
377
+ arrival_searches: [arrival_search]
378
+ )
379
+
380
+ puts response.body
381
+ ```
382
+
383
+ ### [Time Filter (Postcodes)](https://traveltime.com/docs/api/reference/postcode-search)
384
+ Find reachable postcodes from origin (or to destination) and get statistics about such postcodes.
385
+ Currently only supports United Kingdom.
386
+
387
+ ```ruby
388
+ require 'time'
389
+
390
+ TravelTime.configure do |config|
391
+ config.application_id = 'YOUR_API_ID'
392
+ config.api_key = 'YOUR_API_KEY'
393
+ end
394
+
395
+ client = TravelTime::Client.new
396
+
397
+ departure_search = {
398
+ id: 'public transport from Trafalgar Square',
399
+ departure_time: Time.now.iso8601,
400
+ travel_time: 1800,
401
+ coords: { lat: 51.507609, lng: -0.128315 },
402
+ transportation: { type: 'public_transport' },
403
+ properties: ['travel_time', 'distance']
404
+ }
405
+
406
+ arrival_search = {
407
+ id: 'public transport to Trafalgar Square',
408
+ arrival_time: Time.now.iso8601,
409
+ travel_time: 1800,
410
+ coords: { lat: 51.507609, lng: -0.128315 },
411
+ transportation: { type: 'public_transport' },
412
+ properties: ['travel_time', 'distance']
413
+ }
414
+
415
+ response = client.time_filter_postcodes(
416
+ departure_searches: [departure_search],
417
+ arrival_searches: [arrival_search]
418
+ )
419
+
420
+ puts response.body
421
+ ```
422
+
423
+ ### [Geocoding (Search)](https://traveltime.com/docs/api/reference/geocoding-search)
424
+ Match a query string to geographic coordinates.
425
+
426
+ ```ruby
427
+ response = client.geocoding(query: 'London', within_country: 'GB')
428
+ puts response.body
429
+ ```
430
+
431
+ ### [Reverse Geocoding](https://traveltime.com/docs/api/reference/geocoding-reverse)
432
+ Attempt to match a latitude, longitude pair to an address.
433
+
434
+ ```ruby
435
+ response = client.reverse_geocoding(lat: 51.506756, lng: -0.128050)
436
+ puts response.body
437
+ ```
438
+
439
+ ### [Map Info](https://traveltime.com/docs/api/reference/map-info)
440
+ Get information about currently supported countries.
441
+
442
+ ```ruby
443
+ response = client.map_info
444
+ puts response.body
445
+ ```
446
+
447
+ ### [Supported Locations](https://traveltime.com/docs/api/reference/supported-locations)
448
+ Find out what points are supported by the api.
449
+
450
+ ```ruby
451
+ locations = [{
452
+ id: "London",
453
+ coords: {
454
+ lat: 51.506756,
455
+ lng: -0.128050
456
+ }
457
+ },
458
+ {
459
+ id: "Bangkok",
460
+ coords: {
461
+ lat: 13.761866,
462
+ lng: 100.544818
463
+ }
464
+ },
465
+ {
466
+ id: "Lisbon",
467
+ coords: {
468
+ lat: 38.721869,
469
+ lng: -9.138549
470
+ }
471
+ },
472
+ {
473
+ id: "Kaunas",
474
+ coords: {
475
+ lat: 54.900008,
476
+ lng: 23.957734
477
+ }
478
+ }]
479
+
480
+ response = client.supported_locations(locations: locations)
481
+
482
+ puts response.body
483
+ ```
484
+
73
485
  ## Development
74
486
 
75
487
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can
@@ -82,5 +494,4 @@ a GitHub Action which will push the `.gem` file to [rubygems.org](https://rubyge
82
494
 
83
495
  ## Contributing
84
496
 
85
- Bug reports and pull requests are welcome on GitHub at https://github.com/traveltime-dev/travel_time.
86
-
497
+ Bug reports and pull requests are welcome on GitHub at https://github.com/traveltime-dev/travel_time.
@@ -50,7 +50,7 @@ module TravelTime
50
50
  'exclude.location.types': exclude,
51
51
  limit: limit,
52
52
  'force.add.postcode': force_postcode
53
- }.compact!
53
+ }.compact
54
54
  perform_request { connection.get('geocoding/search', query) }
55
55
  end
56
56
 
@@ -60,7 +60,7 @@ module TravelTime
60
60
  lng: lng,
61
61
  'within.country': within_country,
62
62
  'exclude.location.types': exclude
63
- }.compact!
63
+ }.compact
64
64
  perform_request { connection.get('geocoding/reverse', query) }
65
65
  end
66
66
 
@@ -70,7 +70,7 @@ module TravelTime
70
70
  arrival_searches: arrival_searches,
71
71
  unions: unions,
72
72
  intersections: intersections
73
- }.compact!
73
+ }.compact
74
74
  perform_request { connection.post('time-map', payload) }
75
75
  end
76
76
 
@@ -79,7 +79,7 @@ module TravelTime
79
79
  locations: locations,
80
80
  departure_searches: departure_searches,
81
81
  arrival_searches: arrival_searches
82
- }.compact!
82
+ }.compact
83
83
  perform_request { connection.post('time-filter', payload) }
84
84
  end
85
85
 
@@ -87,7 +87,7 @@ module TravelTime
87
87
  payload = {
88
88
  locations: locations,
89
89
  arrival_searches: arrival_searches
90
- }.compact!
90
+ }.compact
91
91
  perform_request { connection.post('time-filter/fast', payload) }
92
92
  end
93
93
 
@@ -95,7 +95,7 @@ module TravelTime
95
95
  payload = {
96
96
  departure_searches: departure_searches,
97
97
  arrival_searches: arrival_searches
98
- }.compact!
98
+ }.compact
99
99
  perform_request { connection.post('time-filter/postcodes', payload) }
100
100
  end
101
101
 
@@ -103,7 +103,7 @@ module TravelTime
103
103
  payload = {
104
104
  departure_searches: departure_searches,
105
105
  arrival_searches: arrival_searches
106
- }.compact!
106
+ }.compact
107
107
  perform_request { connection.post('time-filter/postcode-districts', payload) }
108
108
  end
109
109
 
@@ -111,7 +111,7 @@ module TravelTime
111
111
  payload = {
112
112
  departure_searches: departure_searches,
113
113
  arrival_searches: arrival_searches
114
- }.compact!
114
+ }.compact
115
115
  perform_request { connection.post('time-filter/postcode-sectors', payload) }
116
116
  end
117
117
 
@@ -120,7 +120,7 @@ module TravelTime
120
120
  locations: locations,
121
121
  departure_searches: departure_searches,
122
122
  arrival_searches: arrival_searches
123
- }.compact!
123
+ }.compact
124
124
  perform_request { connection.post('routes', payload) }
125
125
  end
126
126
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TravelTime
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: travel_time
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TravelTime Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-03 00:00:00.000000000 Z
11
+ date: 2022-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-configurable