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);