lat1 ,lng1 ,raduis分别为圆的纬度,经度和半径
lat ,lng为点的纬度,经度
double R = 6378137.0;
double dLat = (lat1 - lat) * Math.PI / 180;
double dLng = (lng1 - lng) * Math.PI / 180;
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(lat * Math.PI / 180) * Math.cos(lat1 * Math.PI / 180) * Math.sin(dLng / 2) * Math.sin(dLng / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = R * c;
double dis = Math.round(d);
if (dis <= raduis){
//点在圆内
}else {
//点不在圆内
}
本文介绍了一种用于判断地球表面上一点是否位于指定圆内的算法。该算法基于经纬度坐标,利用球面三角学原理计算点到圆心的距离,并与圆的半径进行比较。适用于地理信息系统和地图应用中精确确定位置关系。
2597

被折叠的 条评论
为什么被折叠?



