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

时间:2015-07-07 02:07:05

标签: 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查询来查找集合中最近的点?

由于

1 个答案:

答案 0 :(得分:4)

您需要一个地理空间功能,如ST_NEAR或ST_DISTANCE。这目前无法使用 - 您可以查看功能here的状态。

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