我正在使用Node.js和MongoDB.假设我已经使用Lat&Lon预定了几个城市(例如西雅图,迈阿密,纽约).并且有用户点击我的网站,我知道他的IP地址,并找出lat&lon.然后我想知道我定义的哪个城市最接近用户.
我知道我可以使用Mongo的地理空间功能来做到这一点.但是使用DB来计算每个Web请求的数量会非常"昂贵".
是否有Node.js NPM包可以执行上面描述的地理功能?
您正在使用多少个"预定义"城市?如果它是一个小数字,你可能只是将列表存储在内存中并进行线性扫描.此外,你应该只是给mongo地理空间查询一个尝试,以确定它是多么昂贵,然后再假设它是不合理的 - 如果你索引城市位置和它,它会很快..如果你正在交易有很多要点,仍然不想依赖mongo geo-indexing,需要一些非常专业的东西,也许R-Tree值得尝试.这是javascript的r-tree实现.https://github.com/imbcmdth/RTree