azure - 如何使用 DocumentDB 集合中的纬度和经度查找最近的点?

标签 azure azure-cosmosdb

我正在使用 Microsoft 的 DocumentDB 来存储英国数百个和数千个地理位置的位置。数据库集合中的文档如下所示。

  {
    "CommonName": "Cassell Road",
    "CommonNameLang": "en",
    "Street": "Downend Road",
    "StreetLang": "en",
    "Indicator": "SW-bound",
    "IndicatorLang": "en",
    "Bearing": "SW",
    "LocalityName": "Fishponds",
    "ParentLocalityName": "Bristol",
    "Easting": 364208,
    "Northing": 176288,
    "Longitude": -2.5168477762,
    "Latitude": 51.4844052488,
  },

我可以根据用户的纬度和经度使用什么类型的 DocumentDB 查询来从集合中查找最近的点?

谢谢

最佳答案

您需要一个地理空间函数,例如 ST_NEAR 或 ST_DISTANCE。此功能当前不可用 - 您可以检查该功能的状态 here .

短期内,特别是如果文档数量少于 1000 个,您也许可以使用现有的地理空间库,例如 System.Spatial并在客户端执行处理。或者,您可以使用 JavaScript 库,例如 GeoJSON Utils在存储过程中执行此操作。

关于azure - 如何使用 DocumentDB 集合中的纬度和经度查找最近的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31258624/

相关文章:

c# - Azure队列触发器错误地给出空队列项目

asp.net - IIS 工作进程崩溃

oracle - Oracle 的数据迁移以及 XML 到 JSON 的转换

sql - 在 documentDb 中搜索多个搜索词

azure - DocumentDB 不在 CosmosDB API 列表中

azure - 如何配置 Azure Web 角色的区域设置和语言?

azure - 使用 azure 数据工厂 v2 一次将一个文件从一个容器复制到另一个容器

c# - 从 ASP.NET Core 1.1 迁移到 2.0。失败并显示 "Failed to initialize CoreCLR, HRESULT: 0x80004005"

azure - 如何使用 AAD 身份验证在 powershell 中调用 Azure CosmosDB REST API

c# - 尝试连接到azure数据库突然停止工作,抛出异常