module OpenRouteClient
Constants
- HEADERS
- OPENROUTE_API_KEY
- OPENROUTE_URI
- VERSION
Public Class Methods
fetch_distance(start_address, destination_address)
click to toggle source
# File lib/open_route_client.rb, line 13 def fetch_distance(start_address, destination_address) start = locate(start_address) destination = locate(destination_address) coordinates = start[:latitude].to_s + "," + start[:longitude].to_s + "|" + destination[:latitude].to_s + "," + destination[:longitude].to_s api_endpoint = OPENROUTE_URI + 'directions' params = { params: { api_key: OPENROUTE_API_KEY, coordinates: coordinates, profile: 'cycling-road' } }.merge(HEADERS) response = RestClient.get(api_endpoint, params) json_body = JSON.parse(response.body) distance_in_meters = json_body["routes"].first["summary"]["distance"] distance_in_kilometers = (distance_in_meters/1000).round(0) return distance_in_kilometers end
locate(address)
click to toggle source
# File lib/open_route_client.rb, line 37 def locate(address) api_endpoint = OPENROUTE_URI + 'geocode/search' params = { params: { api_key: OPENROUTE_API_KEY, text: address } }.merge(HEADERS) response = RestClient.get(api_endpoint, params) json_body = JSON.parse(response.body) coordinates = json_body["features"].first["geometry"]["coordinates"] return { latitude: coordinates[0], longitude: coordinates[1] } end