geokit-rails 获取接近 2 点的路线

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 一个(包含纬度和经度)

class Step ActiveRecord::Base
  belongs_to :route
  acts_as_mappable
end

实际上,我可以在 in_range 范围内获得接近一点的路线:Route.joins(:steps).in_range(0..15, :origin => [lat, lng]).group(:id)

我试图让 route 接近 2 stepsacts_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}

我先走第一个点范围内的路线,然后第二个点走范围内的路线,我select在第一条路线中只走第二条路线。