这是我试图解决的问题。
客户端发送其当前位置,该位置通过 Node.js 应用程序管理的 API 传入。 Cloudant 数据库存储坐标列表(几千个)。
获得的最佳方式是什么 a) 所有坐标的列表 AND b) 每个坐标距客户端位置的距离 c) 位于客户位置 X 公里半径范围内
已经为这些存储的坐标创建了地理空间索引。
速度和效率是关键,但有时这些可能是相反的品质。如果可能的话,我更愿意使用 Cloudant 中的 native 函数而不是自定义代码。
最佳答案
在网站上查看,cloudant 中似乎已经有一些预构建的地理空间内容: https://docs.cloudant.com/geo.html#geospatial-indexing
过去的某个时候,我的做法有点不同。我用搜索索引做到了: https://docs.cloudant.com/search.html 该索引将显示纬度和经度。然后,要查找距离某个搜索点 25 英里范围内的任何文档,您可以编写一个 lucene 查询,该查询将 lat 限制为 [search_lat-25miles, search_lat+25miles],将 lng 限制为 [search_lng-25miles, search_lat+25miles]。 使用这种方法,我能够使用原始纬度和经度来做到这一点。看起来 cloudant 有一些新功能可以使地理空间搜索变得更加简单。
关于node.js - Cloudant 中的距离计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108836/