You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CosmosDB GeoSpatial查询未返回结果问题排查

问题原因及解决方案

核心问题是你搞反了GeoJSON坐标的顺序:
GeoJSON规范中,Point类型的coordinates必须遵循**[经度, 纬度]**的顺序,而你写成了[c.Latitude, c.Longitude],这导致ST_DISTANCE计算的是错误坐标点间的距离,实际这个错误距离远小于1米,所以没有返回结果。

修正后的查询

调换坐标顺序,用[c.Longitude, c.Latitude]构造文档的地理点:

SELECT c.id
FROM c
WHERE ST_DISTANCE({"type": "Point", "coordinates":[c.Longitude, c.Latitude]}, {"type": "Point", "coordinates":[100.5238, 13.7604]}) > 1

补充说明

  1. 两个正确坐标点的实际距离约为1700米,远大于1米,修正坐标顺序后查询会返回目标文档。
  2. 确保你的容器已启用地理空间索引(默认是开启状态,若手动关闭会导致地理空间函数无法正常工作)。

内容的提问来源于stack exchange,提问作者Matt Douhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:40:25