Voir cette illustration:
Ce que j'aimerais savoir, c'est:
Je préférerais que vous puissiez me donner un exemple de code en Java ou spécifiquement pour Android avec Google Maps API V2
Ce dont vous avez besoin en gros, c’est la distance entre deux points sur la carte:
float[] results = new float[1];
Location.distanceBetween(centerLatitude, centerLongitude, testLatitude, testLongitude, results);
float distanceInMeters = results[0];
boolean isWithin10km = distanceInMeters < 10000;
Si vous avez déjà des objets Location
:
Location center;
Location test;
float distanceInMeters = center.distanceTo(test);
boolean isWithin10km = distanceInMeters < 10000;
Voici la partie intéressante de cette API: https://developer.Android.com/reference/Android/location/Location.html
Avez-vous parcouru la nouvelle GeoFencing API . Cela devrait vous aider. La mise en œuvre normale prend beaucoup de temps. Ceci devrait vous aider à le mettre en œuvre facilement.
voir https://developer.Android.com/reference/Android/location/Location.html
Location areaOfIinterest = new Location;
Location currentPosition = new Location;
areaOfIinterest.setLatitude(aoiLat);
areaOfIinterest.setLongitude(aoiLong);
currentPosition.setLatitude(myLat);
currentPosition.setLongitude(myLong);
float dist = areaOfIinterest.distanceTo(currentPosition);
return (dist < 10000);
Vérifie ça:
private boolean isMarkerOutsideCircle(LatLng centerLatLng, LatLng draggedLatLng, double radius) {
float[] distances = new float[1];
Location.distanceBetween(centerLatLng.latitude,
centerLatLng.longitude,
draggedLatLng.latitude,
draggedLatLng.longitude, distances);
return radius < distances[0];
}
Si vous voulez dire par "Comment créer une zone", que vous souhaitez dessiner la zone sur la carte, vous trouverez un exemple dans la référence de la carte V2 doc pour la classe Circle .
Pour vérifier si la distance entre le centre du cercle et votre point est supérieure à 10 km, nous suggérons d’utiliser la méthode statique Location.distanceBetween (...) car elle évite les créations d’objets inutiles.
Voir aussi ici (tout à la fin de la réponse) pour un exemple de code dans le cas où la zone est un polygone plutôt qu'un cercle.