我正在尝试从以下DocumentDB空间查询中获取有效结果。
在LINQ或SQL中 -
SELECT * FROM root
WHERE (ST_Distance(root["Address"]["Location"]["Queryable"],
{"type": "Point", "coordinates": [-36.******, 174.******]}) < 10000)
...和/或:
FeedOptions queryOptions = new FeedOptions { MaxItemCount = -1, EnableScanInQuery = true };
IQueryable<Store> documentQuery = client.CreateDocumentQuery<Store>(
UriFactory.CreateDocumentCollectionUri(this.databaseName, this.collection), queryOptions)
.Where(s => s.Address.Location.Queryable.Distance(store.Address.Location.Queryable) < 10000);
......两种方法都给我相同的结果 - 空集。
但是数据库中有两个“Store”文档应该通过此查询解析。
我的数据库实例位于澳大利亚东部 - 显然应该很好。
我在这里做错了什么?我的收藏品上没有空间索引 - 是否需要?
答案 0 :(得分:0)
在GeoJSON中,使用[经度,纬度]指定点,使其与我们对x为东西向的正常期望值匹配,y为南北向。不幸的是,这与显示GEO坐标的传统方式相反。
174.xxx不是纬度的有效值。纬度范围为-90到+90。经度指定为-180到+180。
交换坐标,它应该按预期工作。