我想知道给定的标记是否在圆半径内。
在javascript中,我可以执行以下操作:
google.maps.geometry.spherical.computeDistanceBetween(latLngCircleCenter, latLngPoint);
但是在android中,使用maps-v2,我被困住了。
答案 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)
您在Javascript中使用的相同API可在此处使用Android:https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/SphericalUtil.java
答案 2 :(得分:0)
我认为找到圆圈的中心是可能的,你在代码中定义了一个圆圈,并注意到给定的地理位置。您可以保存并稍后使用。然后尝试 Location.distanceBetween(..)