1
Livid MOD 4sq 的这类数据是用 MongoDB 来存储和提供服务的。你可以 Google 一下 MongoDB Geo。
|
2
catfan 2012-06-06 02:25:12 +08:00
XY的值分开保存,查询的时候按条件筛选便可以。
WHERE 1000 < X < 2000 AND 1300 < Y < 2300 |
3
ling0322 2012-06-06 02:42:47 +08:00
我的建议是(X区域号,Y区域号,X,Y)这样建。其中对(X区域号,Y区域号)建一个联合的索引。区域号的意思就是, 每隔1000米编号-> 0~999:0#; 1000~1999:1#; 2000~2999:3#...
然后查找的时候根据你所处在的地点(X,Y)算出(X区域号,Y区域号)寻找到你所在的相关的区域(以及邻近的8个区域,因为有索引所以可以在O(1)时间中取得),再和这个区域中的人比较X和Y,最终得出人数。 |
4
coldear 2012-06-06 03:30:11 +08:00
用NoSQL的话,看这篇文章第6条 http://coolshell.cn/articles/7270.html
Geohash技术,具体我也没搞过 |