刚开始玩geokit并尝试了一些东西......
事情几乎按预期工作,考虑到一点,它在附近找到东西。
但是,如果我将 :within 设置为一个很大的值,比如 100,000,使用 :miles,我希望得到 db 中的大部分(如果不是全部)对象返回 - 但它似乎在某个点停止 - 因为如果:within 有一个内置的最大值。
我已经尝试过公式:flat 和 :sphere。
在此先感谢,克里斯
您的问题似乎不是内置的最大值,:within
而是缺乏限制(以及 geokit 内部的健全性检查)。
看起来:within
查询最终会Geokit::Bounds.from_point_and_radius
生成一个边界框。from_point_and_radius
将做一些三角函数(参见 参考资料endpoint
)mappable.rb
,结果将是一个Geokit::Bounds
实例。
我怀疑你在三角函数中出了问题;三角函数是周期性的,因此您的 100 000 半径最终会环绕到 0 到 ~40 000 公里(地球周长,约 25 000 英里)之间,并且边界框不会限制 100 000 英里。如果你稍微玩一下你的 100 000,你可能会让 geokit 产生一个每边只有几厘米的边界框(或者如果你能解决通常的浮点问题,则半径为零)。
执行摘要:如果你想要它们,就不要使用:within
;如果您想使用:within
,则给它一个合理的距离(即小到足以适合行星表面而无需环绕)。