在2个doc的地理位置与CouchDB + GeoCouch之间发送链接

时间:2013-04-28 17:21:36

标签: mapreduce couchdb geocoding geojson

我有一个CouchDB,其中每个文档代表地图上的一个点。此外,每个doc都有一个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的地理位置。

在上述情况下,是否有人看到另一种方法来获得链接的空间索引?

1 个答案:

答案 0 :(得分:0)

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

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