Если у маркеров есть статические местоположения, вам не нужно загружать их повторно.
Если все, что вам нужно, это рассчитать расстояние между двумя точками на земле, и у вас есть координаты по широте и долготе, тогданет необходимости в картах Google API или других библиотеках.Это просто стоит дополнительных накладных расходов и технического обслуживания.Просто создайте статический метод, подобный этому:
public static double getDistanceMeters(LatLng pt1, LatLng pt2){
double distance = 0d;
try{
double theta = pt1.longitude - pt2.longitude;
double dist = Math.sin(Math.toRadians(pt1.latitude)) * Math.sin(Math.toRadians(pt2.latitude))
+ Math.cos(Math.toRadians(pt1.latitude)) * Math.cos(Math.toRadians(pt2.latitude)) * Math.cos(Math.toRadians(theta));
dist = Math.acos(dist);
dist = Math.toDegrees(dist);
distance = dist * 60 * 1853.1596;
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
return distance;
}
Тогда вы можете сделать это:
public static boolean checkDistanceIsClose(LatLng pt1, LatLng pt2, double distance){
boolean isInDistance = false;
try{
double calcDistance = getDistanceMeters(pt1, pt2)
if(distance <= calcDistance){
isInDistance = true;
}
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
return isInDistance;
}
Тот же алгоритм будет работать для любой платформы.Просто переведите его на соответствующий язык программы.