Изначально у вас будет две точки LatLng.сначала для геозоны, а затем для текущего местоположения пользователя.Прежде чем вы захотите проверить, находится ли пользователь в зоне геозоны или нет, вам нужно решить, сколько километров вы позволите из центра геозоны в радиусе определить, что пользователь попал в диапазон.
, затем сравните обаточки как:
public int CalculationByDistance(LatLng StartP, LatLng EndP) {
int Radius = 6371;// radius of earth in Km
double lat1 = StartP.latitude;
double lat2 = EndP.latitude;
double lon1 = StartP.longitude;
double lon2 = EndP.longitude;
double dLat = Math.toRadians(lat2 - lat1);
double dLon = Math.toRadians(lon2 - lon1);
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2)
+ Math.cos(Math.toRadians(lat1))
* Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2)
* Math.sin(dLon / 2);
double c = 2 * Math.asin(Math.sqrt(a));
double valueResult = Radius * c;
double km = valueResult / 1;
DecimalFormat newFormat = new DecimalFormat("####");
int kmInDec = Integer.valueOf(newFormat.format(km));
return kmInDec;
}
Предположим, если пользователь находится в пределах 1 км от Геозоны, вы позволите ему.Так что просто позвоните выше CalculationByDistance (-, -), и он скажет вам, что пользователь находится рядом с геозоной не.