检查标记是否在圆半径内

时间:2013-04-18 12:11:10

标签: android google-maps android-maps-v2

我想知道给定的标记是否在圆半径内。

在javascript中,我可以执行以下操作:

google.maps.geometry.spherical.computeDistanceBetween(latLngCircleCenter, latLngPoint);

但是在android中,使用maps-v2,我被困住了。

enter image description here

3 个答案:

答案 0 :(得分:40)

经过大量研究,我找到了一个非常简单的解决方案:

float[] distance = new float[2];

Location.distanceBetween( marker.getPosition().latitude, marker.getPosition().longitude,
    circle.getCenter().latitude, circle.getCenter().longitude, distance);

if( distance[0] > circle.getRadius()  ){
    Toast.makeText(getBaseContext(), "Outside", Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(getBaseContext(), "Inside", Toast.LENGTH_LONG).show();
}

我正在测试它并且它正在运行。有人也可以测试并在此提供反馈吗?

答案 1 :(得分:1)

答案 2 :(得分:0)

我认为找到圆圈的中心是可能的,你在代码中定义了一个圆圈,并注意到给定的地理位置。您可以保存并稍后使用。然后尝试 Location.distanceBetween(..)