[英]How to find nearest coupon from cosmos db with current Latitude and Longitude
我在Cosmos db中有一個Coupon容器,其中包含id,名稱,類別,緯度和經度字段。 我為不同地區保存優惠券,並保存其中的緯度和經度。 我想搜索當前用戶英里半徑內(例如50英里內)的優惠券。 我正在從他們的設備獲取用戶位置的經度和緯度。 緯度和經度格式為lat:24.8779 long:67.0641。 我正在使用SQL API for cosmos db查詢數據。 請指導我對此的查詢是什么?
首先,請確保將優惠券坐標存儲為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將英里轉換為米。
有關更多信息,請參見https://docs.microsoft.com/zh-cn/azure/cosmos-db/geospatial 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.