3

我在 RavenDB 中有类似的文档:

public class MyClass
{
    ...
    public double Latitude { get; set; }
    public double Longitude { get; set; }
    ...
}

现在我想查找位置在由 N 和 S 纬度以及 W 和 E 经度指定的矩形范围内的所有文档。

一个简单的方法是这样的查询:

.Where(o => o.Latitude <= boundaryNorth &&
            o.Latitude >= boundarySouth &&
            o.Longitude >= boundaryWest &&
            o.Longitude <= boundaryEast)

但是,如果边界矩形位于反子午线上,这将不起作用,使查询复杂化(检查是否是这种情况,将边界矩形分成两个,创建两个由 || 组合的先前表达式)。

我知道您可以创建一个空间索引,然后从给定原点查询位置在指定半径内的所有文档,但我还没有找到任何其他查询该索引的方法。

还有其他查询空间索引的方法吗?

4

1 回答 1

3

目前我们只允许搜索点的特定距离内的项目。我们确实有其他能力,但目前还没有公开。我建议将其发送到邮件列表,看看我们是否可以为您提供您想要的 API。

于 2012-06-24T08:11:47.630 回答