Я бы не использовал центроид (или барицентр, или центр масс в случае равномерной плотности), если вам нужно показать фигуру (шапр, область) в макете.Что мне действительно нужно для центрирования фигуры в макете, так это максимум и минимум всех координат, чтобы показать каждую точку.
ArrayList<GeoPoint> track;
public GeoPoint CenterMap() {
double longitude = 0;
double latitude = 0;
double maxlat = 0, minlat = 0, maxlon = 0, minlon = 0;
int i = 0;
for (GeoPoint p : track) {
latitude = p.getLatitude();
longitude = p.getLongitude();
if (i == 0) {
maxlat = latitude;
minlat = latitude;
maxlon = longitude;
minlon = longitude;
} else {
if (maxlat < latitude)
maxlat = latitude;
if (minlat > latitude)
minlat = latitude;
if (maxlon < longitude)
maxlon = longitude;
if (minlon > longitude)
minlon = longitude;
}
i++;
}
latitude = (maxlat + minlat) / 2;
longitude = (maxlon + minlon) / 2;
return new GeoPoint(latitude, longitude);
}