[英]geokit-rails getting the route passing close to 2 points
我有一個route
模型
class Route < ActiveRecord::Base
has_many :etapes
acts_as_mappable :through => :steps
end
和step
(包含lat和lgn)
class Step ActiveRecord::Base
belongs_to :route
acts_as_mappable
end
實際上,我可以使用in_range
范圍獲得經過近一點的in_range
: Route.joins(:steps).in_range(0..15, :origin => [lat, lng]).group(:id)
我正在嘗試使route
傳遞接近2 steps
, acts_as_mappable
沒有我需要的范圍,所以我想知道最好的方法是什么?
好吧,對於那些有類似問題的人,我是這樣做的。
給定一個具有4點的哈希值(2緯度和經度);
ids = Route.joins(:steps).in_range(0..15, :origin => [hash[:lat1], hash[:lng1]]).group(:id).map(&:id)
routes = Route.joins(:steps).in_range(0..15, :origin => [hash[:lat2], hash[:lng2]]).group(:id)
routes.select {|route| ids.include? route.id}
我首先選擇第一個點在范圍內的路線,然后選擇第二個點在范圍內的路線,然后在第一條路線中僅選擇第二條路線中的一條路線。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.