在我的gps应用程序中,我想围绕我当前的位置绘制圆圈我做了...但现在我发现其他用户进入了cirle范围所以我想在我的应用程序屏幕中使用popoup所以可以帮助我。 ..
答案 0 :(得分:2)
你只需计算每个点与圆心之间的距离。
这可以通过以下方式完成:
double d2r = (180 / Math.PI);
double distance = 0;
try{
double dlong = (endpoint.getLon() - startpoint.getLon()) * d2r;
double dlat = (endpoint.getLat() - startpoint.getLat()) * d2r;
double a =
Math.pow(Math.sin(dlat / 2.0), 2)
+ Math.cos(startpoint.getLat() * d2r)
* Math.cos(endpoint.getLat() * d2r)
* Math.pow(Math.sin(dlong / 2.0), 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = 6367 * c;
return d;
} catch(Exception e){
e.printStackTrace();
}
然后
if(距离< CIRCLE_RADIUS) //这一点在圈内。
答案 1 :(得分:0)
如果您知道圆心的坐标和朋友,您可以调用静态方法Location.distanceBetween()来查找距离。因为你必须知道圆半径的大小,它只是distanceBetween()和你的半径的结果的比较。