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

How to find nearest points using latitude and longitude from a DocumentDB collection?

我正在使用 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 and perform processing client-side. Alternatively, you can use a JavaScript library like GeoJSON Utils 在存储过程中执行此操作。