我有一个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的地理位置。
在上述情况下,是否有人看到另一种方法来获得链接的空间索引?
答案 0 :(得分:0)
在Apache CouchDB中,您可以发出链接as _id
,使用include_docs=true
进行查询,并使用_list函数将其转换为您想要的任何内容。
可悲的是,GeoCouch不支持include_docs
参数,所以它不会在那里工作。对于GeoCouch,您需要提出两个请求。首先获取链接,然后使用keys=[the-ids]
获取所有文档。您可以选择在View上执行第二个请求,并使用_list函数从中获取GeoJSON。