下面的问题:我得到了一个包含数千个条目的数组(people with id and geolocation(lat.long))。其目的是在给定半径(例如20km)内将每个人与另一个人连接起来。我正在寻找一个有效的方法。我已经尝试过Geohashes了,但是由于数组的每个条目都需要与其他条目进行比较,所以在缩放时执行时间非常长。我会感激任何伟大的提示!多谢。我正在使用NodeJS服务器进行匹配算法。
我不明白为什么你需要将每个条目的geohash与其他条目进行比较?
从一个空映射开始,其中每个键是一个geohash,每个值是一组ID。对于每个条目,计算geohash并将条目id添加到相关集合中。现在,对于每个条目,您可以从集合中选择任何其他id,如果没有其他id,则需要降低精度。(如果一个条目不能与多个其他条目匹配,则实现将有所不同。)