Найти центр должно быть довольно легко. Просто найдите самые маленькие и самые большие координаты широты и долготы в вашей группе из 20.
Центр будет [min_lat + (max_lat - min_lat)/2, min_long + (max_long - min_long)/2]
.
Что-то вроде:
var points = Array();
points.push(new GLatLng( xxx, yyy ));
...
min_lat = 90;
max_lat = -90;
min_long = 180;
max_long = -180;
for (p in points) {
if (p[0] < min_lat) {
min_lat = p[0];
}
if (p[0] > max_lat) {
max_lat = p[0];
}
if (p[1] < min_long) {
min_long = p[1];
}
if (p[1] > max_long) {
max_long = p[1];
}
}
center = new GLatLng(min_lat + (max_lat - min_lat) / 2,
min_long + (max_long - min_long) / 2];
map.setCenter(center, 10);
Этот код, вероятно, будет иметь проблемы, если ваши точки пересекают границы долготы (& plusmn; 180 & deg;). Также предполагается, что точки расположены на плоской поверхности (а не на поверхности сферы).
Ничто из этого не должно иметь большого значения, если вы говорите о координатах в нескольких сотнях миль друг от друга в США.