查詢附近的人 mongodb的實現

2021-07-29 21:54:37 字數 522 閱讀 3165

最近做乙個關於附近的人查詢,參考了很多資料:現在市面上主流的做法

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...