最近做乙個關於附近的人查詢,參考了很多資料:現在市面上主流的做法
1.用資料庫
2.用類存
3.用lucene
我選用的是用mongodb自帶的查附近的人的方法,**如下:
dbobject db = new basicdbobject("cityid", json.parse("}"));
dbobject near = new basicdbobject( "loc",json.parse(""));
dbobject query = new basicdbobject();
"cityid", 110000);
"cityid", 110000);
dbcursor cur = coll.find(near, query);
int n = 0;
while(cur.hasnext())
這種做法可以分頁,但是由於mongodb的演算法實現問題,查出來的附近的人可能距離排序不是很準,單總體趨勢是正確的 如何實現查詢附近的人
問題 給定乙個使用者a,返回與此使用者相距小於d的所有使用者。支援geo的後端儲存有mongodb,redis等。那麼如果讓我們實現,我們應該怎麼做呢?思路 圍繞此使用者生成乙個圓形,半徑是d,返回所有被此園覆蓋的使用者。方法1 先求方,再求園。如果直接求園,每乙個使用者都要計算距離值,無法利用到索...
redis實現查詢附近的人
地球上的任何乙個位置都可以使用二維的經緯度來表示,經度範圍 180,180 緯度範圍 90,90 可以基於當前的座標節點,來劃分出乙個矩形 2r 的範圍來查詢附近的人。當兩個座標元素的距離不是很遠的時候,我們就可以簡單利用勾股定理就能夠得出他們之間的距離。但是地球不是乙個標準的球體,經緯度的密度是不...
PHP查詢附近的人及其距離的實現方法
distance 1 範圍 單位千公尺 lat 113.873643 lng 22.573969 define earth radius 6371 地球半徑,平均半徑為6371km dlng 2 asin sin qioutilidistance 2 earth radius cos deg2rad...