c# - RavenDB 空间搜索始终为空
问题描述
我试图根据纬度和经度查找文档,所以我得到了这个:
应该找到一个已经存储的示例文档:
{
"UID": "uIwHCBvvAJ",
"Description": "galletita",
"Created": "03/01/2019 08:40:18",
"Active": true,
"Point": {
"latitude": -37.7505796,
"longitude": -57.4275142,
"distanceFromMe": 0
},
"Shape": {
"s": null,
"Longitude": null
}
}
现在这是索引、类和查询:
public class Test_Spatial40 : AbstractIndexCreationTask<Test>
{
public Test_Spatial40()
{
Map = docs => from spatial in docs
select new
{
Shape = spatial.Shape,
Point = spatial.Point,
_ = SpatialGenerate("Coordinates", spatial.Point.latitude, spatial.Point.longitude),
_2 = SpatialClustering("Clustering", spatial.Point.latitude, spatial.Point.longitude)
};
Spatial(x => x.Shape, options => options.Geography.Default());
Spatial(x => x.Point, options => options.Cartesian.BoundingBoxIndex());
}
}
List<Test> r = session
.Query<Test, Test_Spatial40>()
.Customize(x => x.SortByDistance())
.Spatial(
x => x.Shape,
criteria => criteria
.WithinRadius((int)maxDist, (double)la, (double)lo))
.ToList();
from spatial in docs
select new
{
Shape = spatial.Shape,
Point = spatial.Point,
_ = SpatialGenerate("Coordinates", spatial.Point.latitude, spatial.Point.longitude),
_2 = SpatialClustering("Clustering", spatial.Point.latitude, spatial.Point.longitude)
};
Spatial(x => x.Shape, options => options.Geography.Default());
Spatial(x => x.Point, options => options.Cartesian.BoundingBoxIndex());
它假设将相同的纬度和经度传递给它应该返回结果的查询,但每次都是空的......有什么想法吗?
解决方案
为了查询它,您需要在“形状”字段中有“纬度”和“经度”。(如果要按形状查询)。
推荐阅读
- android - 在android中通过网络发送消息
- php - 如何使用 PHP 从表单在同一项目中发送 PUT 请求
- javascript - this.value 和 $(this).val() 有什么区别?
- mysql - 如何创建存储过程并在预定时间运行它(在 MYSQL 中)
- javascript - 为什么 Edge 中的 sessionStorage 与 Firefox/Chrome 不同,我该如何更改?
- python - 字典中字符串值的总和
- c - redis中run_with_period c宏背后的确切语法或规范是什么
- javascript - 比较日期时间与当前日期时间
- javascript - 将字符串转换为标准矩格式
- android - 用户不选择图像时出现错误如何解决