在经线上,相差一纬度约为111km ,因此100m(0.1KM)在经线上对应约为0.1/111=0.0009度,这个度数和纬度没有关系

在纬线上,相差一经度约为111cosα(α为该纬线的纬度)因此100m(0.1KM)在该纬线上对应约为0.1/(111*cos23.14)=0.0009797度,这个度数和纬度有关


//0.0045 lat 500米纬度转换成度数
//0.0048985 lng 500米经度转换成度数
//经纬度所有500米统一用0.0048

先从数据库筛选范围

SELECT * from table
 where (lat between lat1-0.0048 and lat1-0.0048) and (lng between lng1-0.0048 and lng1+0.0048)




java 根据二个点的经纬度计算距离



public class DistanceUtil {

	private final static double PI = 3.14159265358979323; // 圆周率
    private final static double R = 6371229; // 地球的半径

    public static double getDistance(double lng1, double lat1, double lng2,double lat2) {
        double x, y, distance;
        x = (lng2 - lng1) * PI * R
                * Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180;
        y = (lat2 - lat1) * PI * R / 180;
        distance = Math.hypot(x, y);
        return distance;
    }

}