module Gistance::Client::DistanceMatrix
Methods for the Distance Matrix API
@see developers.google.com/maps/documentation/distancematrix
Public Instance Methods
distance_matrix(options={})
click to toggle source
Calculate distances for a matrix of origins and destinations. @param options [Hash] a customizable set of options @option options [Hash] :origins an array of origins @option options [Hash] :destinations an array of destination @return [Hashie::Mash] the distance between origins and destinations @see developers.google.com/maps/documentation/distancematrix/#DistanceMatrixRequests @example
Gistance.distance_matrix( origins: ["48.92088132,2.210950607"], destinations: ["48.922024,2.206292"] )
# File lib/gistance/client/distance_matrix.rb, line 18 def distance_matrix(options={}) options[:origins] = format_locations_array(options[:origins]) options[:destinations] = format_locations_array(options[:destinations]) delete_status_from_response(get(options)) end
Private Instance Methods
delete_status_from_response(response)
click to toggle source
# File lib/gistance/client/distance_matrix.rb, line 41 def delete_status_from_response(response) response.delete(:status) response.rows.each do |row| row['elements'].each { |el| el.delete(:status) } end response end
format_location(location)
click to toggle source
# File lib/gistance/client/distance_matrix.rb, line 31 def format_location(location) return location if location_is_coordinates?(location) location.split(' ').join('+') end
format_locations_array(locations)
click to toggle source
# File lib/gistance/client/distance_matrix.rb, line 27 def format_locations_array(locations) locations.map { |location| format_location(location) }.join('|') end
location_is_coordinates?(location)
click to toggle source
# File lib/gistance/client/distance_matrix.rb, line 37 def location_is_coordinates?(location) location.to_s =~ /^\s*-?\d+\.\d+\,\s?-?\d+\.\d+\s*$/ end