数据表可能是这样的
user_id | latitude | longtitude
但是不可能遍历整个数据表吧。
求大概的算法和实现方式
user_id | latitude | longtitude
但是不可能遍历整个数据表吧。
求大概的算法和实现方式
|
1
当然不可能遍历,地理位置网格分块,存块ID,然后四叉搜索。
你的经纬度换算成网格ID,同网格的人撸出来,临近网格的人撸出来,搞定。 |
|
2
灯塔算法
|
|
fangzhzhJul 6, 2014 via Android
3
范围扩大一倍 人数指数级增长
|
|
5
貌似有个 geohash,研究下
|
|
udonmaiJul 6, 2014
7
KD Tree
R Tree |
|
8
貌似这个叫做Spatial Search,python,java(solr)都有实现
http://django-haystack.readthedocs.org/en/latest/spatial.html https://wiki.apache.org/solr/SpatialSearch 继续研究下。。 |
|
9
|
|
wonJul 6, 2014 via iPhone
10
购买geo
|
|
wanjunJul 6, 2014
11
就看你的用户量了,如果最多只有几亿的话,mysql就可以了,存储x,y坐标,加索引,
然后mongodb自身实现了计算距离,排序。 geohash并不好用,https://github.com/kungfoo/geohash-java |
|
leizJul 6, 2014
12
postgis
|