如果不能正常显示,请查看原文 , 或返回

附近的人怎么计算出来的?

一般是利用 GeoHash,介绍可见: GeoHash核心原理解析 - zhanlijun - 博客园
Redis 的 Geo 功能,MongoDB的2d索引都是利用geohash实现的。
GeoHash 的缺点在于:突变性(填充曲线决定的)、不平衡性(Area Ratio 可达5.2)。

MongoDB的 2dSphere索引 支持更多的geo功能,其实现是利用 Google S2库,该算法用于Google Map、Mongo、Foursquare等。
它的优秀特性来源于:希尔伯特填充曲线、独特的映射方式、紧凑的Cell表示。
详细可见:Google S2,球面几何,希尔伯特曲线

返回