Mysql指定経緯度とデータベース大量量データの距離比較
623 ワード
//
StringBuffer sb = new StringBuffer();
sb.append("select timeKey,");
sb.append("ROUND(6378.138*2*ASIN(SQRT(POW(SIN((?*PI()/180-lat*PI()/180)/2),2)");
sb.append("+COS(?*PI()/180)*COS(lat*PI()/180)*POW(SIN((?*PI()/");
sb.append("180-lng*PI()/180)/2),2)))*1000) AS jl ");
sb.append("from t_news having jl <= 3000 order by jl asc limit ?,?");
List<Object> params = new ArrayList<Object>();
params.add(lat);
params.add(lat);
params.add(lng);
params.add((curPage - 1) * 20);
params.add(curPage * 20);