Android Google Map如何检查用户是否在标记圈区域

use*_*097 3 google-maps distance area marker

我正在使用谷歌地图,并希望能够使用用户当前位置检测用户是否在标记的半径(放置在地图上).我有用户当前位置坐标(纬度和经度)和标记的坐标,但不知道如何计算用户是否在该区域.下面的图片可能最能描述我想要做的事情.

在此输入图像描述

我有这样的算法:

map.OnInfoWindowClickListener(new OnInfoWindowClickListener()){
    public void isUserInArea(Marker marker){

        float[] distance = new float[2];
           //users current location 
        Location.distanceBetween(currentLocation.getLatitude(),currentLocatiocation.getLongitude(),
        marker.getPosition().latitude, marker.getPosition().longitude, distance);
}
Run Code Online (Sandbox Code Playgroud)

如果当前位置在标记区域内,则无法找到,因为我无法抓住标记圈.然而,这是我最接近它的.很感激帮助.

为了提供帮助,我在这样的地图上添加了一个圆圈

// adding circle to map
circleOptions = new CircleOptions();
circleOptions.center(new LatLng(locationlist.get(i)
        .getLatitude(), locationlist.get(i).getLongitude()));
circleOptions.radius(20);
circleOptions.strokeColor(Color.BLUE);
circleOptions.fillColor(Color.BLUE);
map.addCircle(circleOptions);

//check that all tasks are in circle radius

Marker locationMarker = map.addMarker(markerOp);
locationMarker.showInfoWindow();
Run Code Online (Sandbox Code Playgroud)

Nat*_*arr 11

我用这个:

Location.distanceBetween(mMarker.getPosition().latitude,
            mMarker.getPosition().longitude, mCircle.getCenter().latitude,
            mCircle.getCenter().longitude, distance);

if (distance[0] > mCircle.getRadius()) {
      //Do what you need

}else if (distance[0] < mCircle.getRadius()) {
//Do what you need
}
Run Code Online (Sandbox Code Playgroud)