具有边界矩形的RavenDB空间搜索

时间:2012-06-23 21:46:06

标签: ravendb spatial

我在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)

但是如果边界矩形位于antimeridian上,那就不起作用,使查询复杂化(检查是否是这种情况,将边界矩形拆分为两个,创建两个先前由||组合的表达式)。 / p>

我知道你可以创建一个spatial index,然后查询所有位于给定原点的指定半径内的位置的文档,但是我没有找到任何其他查询该索引的方法。

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

1 个答案:

答案 0 :(得分:3)

目前我们只允许搜索特定距离内的项目。 我们确实有其他功能,但目前尚未曝光。 我建议将其带到邮件列表,看看我们是否可以为您提供所需的API。