使用 CouchDB+GeoCouch 在 2 个文档的地理位置之间发出链接



我有一个CouchDB,其中每个文档代表地图上的一个点。此外,每个文档都有一个id列表,其中每个id都表示地图上链接的目标。我想知道是否有可能创建一个GeoCouch空间索引,其中键是链接的GeoJSON表示(例如LineStrings)。我在下面给出一个例子。

让我们假设我有这两个文档:

{
  _id: "doc1",
  latlng: [52.52, 13.13],     // geoposition of doc1
  links: ["doc2", "doc3"]     // links to doc2 and doc3
}

{
  _id: "doc2",
  latlng: [53.53, 14.14],     // geoposition of doc2
  links: ["doc1"]             // link to doc1
}

我想要的是一个空间索引,我可以查询所有链接在一个给定的边界框。但是,在为doc1运行的CouchDB/GeoCouch映射函数中,我无法访问doc2的地理位置。

有没有人看到在上述情况下为链接实现空间索引的另一种方法?

在Apache CouchDB中,您可以将链接发送为_id,使用include_docs=true查询它,并使用_list函数将其转换为您想要的任何内容。

遗憾的是GeoCouch不支持include_docs参数,所以它不会在那里工作。对于GeoCouch,您需要发出两个请求。首先获得链接,然后获得keys=[the-ids]的所有文档。您可以选择在视图上执行第二个请求,并使用_list函数从中获取GeoJSON。

相关内容

  • 没有找到相关文章

最新更新