我在 Cosmos db 中有一個優惠券容器,其中包含 id、名稱、類別、緯度和經度字段。我正在保存不同區域的優惠券并保存這些區域的緯度和經度。我想搜索當前用戶英里半徑內的優惠券,例如 50 英里內。我正在從他們的設備獲取用戶位置的緯度和經度。緯度和經度的格式為 lat: 24.8779 long: 67.0641。我正在使用 cosmos db 的 SQL API 來查詢數據。請指導我對此的查詢是什么?
1 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
首先確保以 GeoJSON 格式存儲優惠券坐標。例如,請參閱下面的位置字段:
{
? "country": "AD",
? "name": "Sant Julià de Lòria",
? "location": {
? ? "type": "Point",
? ? "coordinates": [
? ? ? ? 42.46372,
? ? ? ? 1.49129
? ? ]
? },
}
然后,使用ST_DISTANCE函數進行查詢,例如:
SELECT * FROM c
WHERE ST_DISTANCE(c.location, {'type': 'Point', 'coordinates':[42.54277, 1.73361]}) < (50 * 1609.344)
ST_DISTANCE使用米,因此乘以 1609.344 是將英里轉換為米。
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消