如何判断一个GPS点是否在以另一个GPS点为圆心100米为半径的圆内(Java代码)

时间:2023-03-08 20:19:40

题目乍一看,无从下手,仔细想了一下,原来只需要判断两个GPS点的直线距离是否<100米即可。

Java代码如下:

        /**
* 将两个经纬度坐标转化成距离(米)
*
* @param 2个GPS经纬度坐标(latitude1,longitude1)(latitude2,longitude2)
*
* @return true:坐标点异常
* false:坐标点正常
*/
public static boolean coordinateToDistance(double latitude1, double longitude1, double latitude2, double longitude2)
{
double a = latitude1 * Math.PI / 180.0 - latitude2 * Math.PI / 180.0;
double b = longitude1 * Math.PI / 180.0 - longitude2 * Math.PI / 180.0;
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+ Math.cos(latitude1 * Math.PI / 180.0)
* Math.cos(latitude2 * Math.PI / 180.0)
* Math.pow(Math.sin(b / 2), 2)));
s = s * 6378.137 * 1000;
s = Math.round(s);
if (s > 500) {
return true;
}
return false;
}

 待续