gpt4 book ai didi

ruby-on-rails - Ruby Geocoder 如何设置最小.near 距离

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:36 26 4
gpt4 key购买 nike

使用 Alex Reisner 的 Ruby Geocoder并发现 .near 方法非常有用。我们有一个问题是我们如何设置它以便我们可以搜索距原点 x 和 y 之间的对象(目前 .near 方法似乎只设置最大距离): documentation here

我们正在寻找类似的东西:

places = Place.near("Washington", min_distance, max_distance).reorder("score")

或者修改查询的某种方式,以便我们在不使用 .reorder 的情况下获得相同的效果(我们正在使用它来对另一个“分数”字段进行排序)

我们想要的最终结果是能够让距离原点 x 和 y 英里之间的位置按分数排序。

最佳答案

据我所知,它不是本地实现的。

如果使用ActiveRecord,可以尝试使用Geocoder的private class methods (从第 105 行到第 147 行)滚动您自己的“反向”方法,其算法应该或多或少:

  • 使用 Geocoder::Calculations#bounding_box 计算最小距离查询的边界框
  • 构建 SQL 以查找边界框中的所有记录并使用 #distance_sql(lat,lon,options) >= 最小距离

将此逻辑填充到 where 中范围,将其链接到 near ,瞧!如果您觉得懒惰,您甚至可以复制/粘贴整个方法并更改 <=。谓词。

附带说明一下,如果在 geocoder 的 github 上提交功能请求会很棒,因为我认为它们会很快实现。

关于ruby-on-rails - Ruby Geocoder 如何设置最小.near 距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14624669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com