I'm trying to figure out a way to show calculated distance between two point on a map using Geocoder. I have start_address and destination_address in my table which I ask for in my view, my model looks like this:
class Ride < ActiveRecord::Base
geocoded_by :start_address
geocoded_by :destination_address
reverse_geocoded_by :latitude, :longitude
after_validation :geocode
end
How can I get calculated distance between the two points and show in view. No need for longitude and latitude.
Edit: The default unit is 'miles'. To change default unit set it in your ActiveRecord model:
Venue.near([40.71, -100.23], 20, :units => :km)
or change it in:
# config/initializers/geocoder.rb
# set default units to kilometers:
:units => :km,
Edit: I've managed to resolve this like so:
ride = Ride.new(params)
start_address_coordinates = Geocoder.coordinates(params[:start_address])
destination_coordinates = Geocoder.coordinates(params[:destination])
ride.distance = Geocoder::Calculations.distance_between(start_address_coordinates, destination_coordinates)