15

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

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

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

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

在此处输入图像描述

4

3 回答 3

44

After a lot of research, i found a very simple solution:

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();
}

I'm testing this and it's working. Can someone test too and give the feedback here?

于 2013-04-18T17:26:01.790 回答
1

您在 Javascript 中使用的相同 API 可在此处用于 Android:https ://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/SphericalUtil.java

于 2013-06-11T10:46:34.330 回答
0

我认为可以找到圆的中心,您正在代码中定义与给定地理点相关的圆。您可以保存并稍后使用。然后尝试Location.distanceBetween(..)

于 2013-04-18T12:30:10.040 回答