Couchbase地理空间边界框查询

时间:2017-01-05 17:16:03

标签: couchbase n1ql

据我所知,couchbase支持地理空间数据,但我不知道如何使用它。

有没有人知道,是否可以通过couchbase中的N1QL SELECT语句查询边界框内的元素? 如果是,SELECT语句将如何查询,以查询以下json中元素的边界框?

{
  "type": "Feature",
  "properties": {
    "name": "Bermuda Triangle",
    "area": 1150180
  },
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [-64.73, 32.31],
        [-80.19, 25.76],
        [-66.09, 18.43],
        [-64.73, 32.31]
      ]
    ]
  }
}


{
  "type": "Feature",
  "properties": {
    "name": "Flemish Diamond",
    "area": 2947
  },
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [3.55, 51.08],
        [4.36, 50.73],
        [4.84, 50.85],
        [4.45, 51.30],
        [3.55, 51.08]
      ]
    ]
  }
}


{
  "type": "Feature",
  "properties": {
    "name": "Research Triangle",
    "area": 252
  },
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [-78.93, 36.00],
        [-78.67, 35.78],
        [-79.04, 35.90],
        [-78.93, 36.00]
      ]
    ]
  }
}   

1 个答案:

答案 0 :(得分:1)

Couchbase地理空间查询仅通过地理空间视图支持,而非N1QL查询。

您需要为坐标创建地理空间视图,并通过Views API进行查询。

您可以在Couchbase Server文档中查看有关地理空间视图的更多信息:https://developer.couchbase.com/documentation/server/current/indexes/querying-using-spatial-views.html

技术上可以使用N1QL模拟地理空间查询,但是它不会受到空间索引的支持,并且会导致显着的性能损失 - 特别是对于您提供的多边形数据。您可以在此处查看有关如何使用点数据执行此操作的文章:https://dzone.com/articles/speed-up-spatial-search-in-couchbase-n1ql