Ruby gem geokit和:在最大值或容差范围内?

时间:2011-02-19 15:56:32

标签: ruby geokit

刚开始玩geokit并尝试了一些事情......

事情正如预期的那样发挥作用,考虑到一点,它在附近找到了东西。

但是,如果我设置:在一个较大的值,比如说100,000,使用:miles,我希望得到的数据库中的大部分(如果不是全部)都返回 - 但它似乎停在了某个point - 好像有一个内置的最大值:在。内。

我尝试过公式:扁平和:球体。

提前致谢, 克里斯

1 个答案:

答案 0 :(得分:1)

您的问题似乎不是:within的内置最大值,但缺少限制(以及geokit内部的健全性检查)。

看起来:within查询最终会通过Geokit::Bounds.from_point_and_radius生成一个边界框。 from_point_and_radius将执行一些三角函数(请参阅endpoint中的mappable.rb),结果将是Geokit::Bounds个实例。

我怀疑你在三角学中出了问题;三角函数是周期性的,因此你的10万半径将最终缠绕在0到约40 000 km(地球周长,约25 000英里)之间,并且边界框不会约束10万英里。如果你玩你的10万,你可能会得到geokit来生成一个每边只有几厘米的边界框(如果你可以解决通常的浮点问题,则为零半径)。

执行摘要:如果你想要全部,请不要使用:within;如果你想使用:within,那么给它一个合理的距离(即足够小以适应行星的表面而不会缠绕)。