Ruby on rails Geversine gem: пересчитать рассчитанное расстояние в км
Я работаю над задачей, которая вычисляет расстояние между двумя точками GPS и я хочу преобразовать расстояние в КМ:
def distances
site = Site.find params[ :id ]
stores = Store.current
distances = []
stores.map do |store|
distance = Haversine.distance(site.address.latitude, site.address.longitude, store.address.latitude, store.address.longitude)
distances << {
name: store.name,
value: distance
}
end
render json: {
distances: distances.to_json
}
end
пример вычисляемой позиции:
store2: 5527.654499076738
в документе haversine gem есть метод для преобразования: distance.to_kilmeters, но он не работает для меня! любая помощь?
1 ответ
Вам, вероятно, нужно позвонить to_kilometers
метод на основе Haversine::Distance
в противном случае его to_s
Метод будет использован:
def distances
site = Site.find params[ :id ]
distances = Store.current.map do |store|
{
name: store.name,
value: Haversine.distance(
site.address.latitude,
site.address.longitude,
store.address.latitude,
store.address.longitude
).to_kilometers
}
end
render json: {
distances: distances
}
end
Что вы действительно хотите сделать, это добавить distance_in_km
на ваш Address
учебный класс...