DocumentDB空间距离查询 - 空集

时间:2016-09-02 00:02:07

标签: azure-cosmosdb spatial-query

我正在尝试从以下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”文档应该通过此查询解析。

我的数据库实例位于澳大利亚东部 - 显然应该很好。

我在这里做错了什么?我的收藏品上没有空间索引 - 是否需要?

1 个答案:

答案 0 :(得分:0)

在GeoJSON中,使用[经度,纬度]指定点,使其与我们对x为东西向的正常期望值匹配,y为南北向。不幸的是,这与显示GEO坐标的传统方式相反。

174.xxx不是纬度的有效值。纬度范围为-90到+90。经度指定为-180到+180。

交换坐标,它应该按预期工作。