2013-04-18 3 views
14

Ich versuche zu wissen, ob ein bestimmter Marker innerhalb eines Kreisradius liegt.Überprüfen, ob der Marker innerhalb des Kreisradius ist

In JavaScript kann ich tun, so etwas wie:

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

Aber in Android, Karten-v2 mit, ich bin stucked.

enter image description here

Antwort

38

Nach viel Forschung, ich eine sehr einfache Lösung gefunden:

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

ich diese Prüfung bin und es funktioniert. Kann jemand auch hier testen und Feedback geben?

+3

Abstand sein sollte [0]

+0

bitte die Antwort aktualisieren, um die oben –

+0

@Otuyh zu verwenden Bitte geben Sie Ihre vollständige Antwort ein. –

0

Ich denke, sie möglich, das Zentrum des Kreises zu finden, definieren Sie den Kreis in Ihrem Code mit repect zu einem bestimmten GeoPoint. Sie können es speichern und später verwenden. Dann versuchen Location.distanceBetween(..)