Otuyh
Otuyh

Reputation: 2474

Check if marker is inside circle radius

I'm trying to know if a given marker is inside a circle radius.

In javascript, i can do something like:

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

But in android, using maps-v2, i'm stucked.

enter image description here

Upvotes: 15

Views: 17341

Answers (3)

Otuyh
Otuyh

Reputation: 2474

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?

Upvotes: 45

FunkTheMonk
FunkTheMonk

Reputation: 10938

The same APIs you'd use in Javascript are available for Android here: https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/SphericalUtil.java

Upvotes: 1

Jashan PJ
Jashan PJ

Reputation: 4398

I think its possible to find the Centre of the circle, you are defining the circle in your code with repect to a given geopoint. You can save it and use later. Then try Location.distanceBetween(..)

Upvotes: 0

Related Questions