Ruby on rails Geversine gem: пересчитать рассчитанное расстояние в км - PullRequest
0 голосов
/ 14 ноября 2018

Я работаю над задачей, которая вычисляет расстояние между двумя точками 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

В документе Doc of Hversine Gem есть метод для преобразования: distance.to_kilmeters, но он не работает для меня!любая помощь?

1 Ответ

0 голосов
/ 14 ноября 2018

Возможно, вам нужно вызвать метод 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 классу ...

...