//地球半徑,單位公尺
private static double earth_radius = 6378137;
/// /// 根據提供的經度和緯度、以及半徑,取得此半徑內的最大最小經緯度
///
/// 緯度
/// 經度
/// 半徑(公尺)
///
public static double getaround(double lat, double lon, int raidus);}
/// /// 計算兩點位置的距離,返回兩點的距離,單位 公尺
/// 該公式為google提供,誤差小於0.2公尺
///
/// 第一點緯度
/// 第一點經度
/// 第二點緯度
/// 第二點經度
///
public static double getdistance(double lat1, double lng1, double lat2, double lng2)
通過getaround方法得到 minlat,minlng,maxlat,maxlng 4個座標
double scope = getaround(lat, lng, radius);
double minlat = scope[0];
double minlng = scope[1];
double maxlat = scope[2];
double maxlng = scope[3];
再帶入資料庫進行查詢符合條件的
select * from 表名 where lat < maxlat and lat > minlat and lng < maxlng and lng > minlng
PHP 附近的人
思路 首先,我們知道自己的經緯度,知道自己要搜尋的範圍 半徑 我們就可以得到乙個已自己為中心的範圍圈。然後計算出範圍內的經緯度,也就是對於的附近的人。第一步 我們先宣告乙個函式,用作計算經緯度的範圍 根據經緯度和半徑計算出範圍 param string lat 緯度 param string lng...
用redis獲取附近的人
geoadd 將指定的地理空間位置 緯度 經度 名稱 新增到指定的 key 中 我們用這個命令將使用者發表動態時的位置資訊記錄進 redis key longitude latitude member longitude latitude member georadius 以給定的經緯度為中心,返回...
nodejs mongo 實現搜附近的人
參考 用mongo作為儲存,來實現搜尋附近的人具有先天的優勢,mongodb原生支援地理位置索引,可以直接用於位置距離計算和查詢。另外,它也是如今最流行的nosql資料庫之一,除了能夠很好地支援地理位置計算之外,還擁有諸如面向集合儲存 模式自由 高效能 支援複雜查詢 支援完全索引等等特性。先看一下我...