以下是我正在尝试解决的问题。Cloudant中的距离计算
客户端通过由Node.js应用程序管理的API发送其当前位置。 Cloudant数据库存储坐标列表(几千)。
什么是最佳的方式来获得 一)所有的坐标和 B)分别从客户端的位置的坐标的距离的列表,它 三)属于客户端的位置
的X公里半径范围内已经为这些存储的坐标创建了地理空间索引。
速度和效率是关键,但有时这些可能是相反的品质。如果可能,我更愿意使用Cloudant中的本地函数而不是自定义代码。
以下是我正在尝试解决的问题。Cloudant中的距离计算
客户端通过由Node.js应用程序管理的API发送其当前位置。 Cloudant数据库存储坐标列表(几千)。
什么是最佳的方式来获得 一)所有的坐标和 B)分别从客户端的位置的坐标的距离的列表,它 三)属于客户端的位置
的X公里半径范围内已经为这些存储的坐标创建了地理空间索引。
速度和效率是关键,但有时这些可能是相反的品质。如果可能,我更愿意使用Cloudant中的本地函数而不是自定义代码。
寻找在网站上,它看起来像已经存在cloudant一些预构建的地理空间的东西: https://docs.cloudant.com/geo.html#geospatial-indexing
有时在过去,我这样做有点不同。我做了一个搜索索引: https://docs.cloudant.com/search.html 这个索引将放弃lat & lng。然后,要查找距离某个搜索点25英里范围内的任何文档,可以编写一个lucene查询,将[search_lat-25miles,search_lat + 25miles]和lng from [search_lng-25miles,search_lat + 25miles]中的纬度范围限定为。 使用这种方法,我能够用原始经纬度做到这一点。它看起来像cloudant有一些新的功能,使地理空间搜索更简单一点。
如果您想要返回给定点的距离,Cloudant Search就是要走的路。 [Cloudant Geo](https://docs.cloudant.com/geo.html)是一个更灵活的索引,它允许您使用不规则多边形进行查询,但数据库无法将相对距离信息添加到响应中。这里有一个教程https://examples.cloudant.com/simplegeo_places/_design/geo/search.html – Raj