Node.js Cloudant中的距离计算

Node.js Cloudant中的距离计算,node.js,mapreduce,geospatial,cloudant,euclidean-distance,Node.js,Mapreduce,Geospatial,Cloudant,Euclidean Distance,这是我试图解决的问题 客户端通过Node.js应用程序管理的API发送其当前位置。Cloudant数据库存储一个坐标列表(几千个) 什么是获得最佳的方式 a) 所有坐标和坐标的列表 b) 每个坐标与客户所在位置之间的距离 c) 位于客户所在地X km半径范围内 已经为这些存储的坐标创建了地理空间索引 速度和效率是关键,但有时它们可能是相反的品质。如果可能的话,我更愿意在Cloudant中使用本机函数,而不是自定义代码。从网站上看,Cloudant中似乎已经有了一些预构建的地理空间功能: 在过去

这是我试图解决的问题

客户端通过Node.js应用程序管理的API发送其当前位置。Cloudant数据库存储一个坐标列表(几千个)

什么是获得最佳的方式 a) 所有坐标和坐标的列表 b) 每个坐标与客户所在位置之间的距离 c) 位于客户所在地X km半径范围内

已经为这些存储的坐标创建了地理空间索引


速度和效率是关键,但有时它们可能是相反的品质。如果可能的话,我更愿意在Cloudant中使用本机函数,而不是自定义代码。

从网站上看,Cloudant中似乎已经有了一些预构建的地理空间功能:

在过去的某个时候,我做的有点不同。我是通过搜索索引完成的: 该指数将公布lat和lng。然后,要查找距离某个搜索点25英里以内的任何文档,您可以编写一个lucene查询,将lat从[search_lat-25英里,search_lat+25英里]和lng从[search_lng-25英里,search_lat+25英里]限定。
使用这种方法,我能够用未经处理的lat和lng完成这项工作。看起来cloudant有了一些新功能,可以使地理空间搜索更加简单。

cloudant搜索是一种方法,如果您想搜索返回的给定点的距离。是一个更灵活的索引,它允许您按不规则多边形进行查询,但db无法将相对距离信息添加到响应中。这里有一个教程