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 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}
我先走第一个点范围内的路线,然后第二个点走范围内的路线,我select在第一条路线中只走第二条路线。
我有一个 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 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}
我先走第一个点范围内的路线,然后第二个点走范围内的路线,我select在第一条路线中只走第二条路线。