I am dynamically plotting several points onto a google map. I’m trying to find the best way to find the center of the given points. I’ve tried using the following:
var mapArray = new Array;
mapArray[0] = new Array(42, 35.391228, -119.008401);
mapArray[1] = new Array(34, 33.874277, -118.131555);
mapArray[2] = new Array(214, 32.6922592, -115.4962203);
mapArray[3] = new Array(216, 33.3818875, -117.2449785);
mapArray[4] = new Array(40, 36.805231, -119.770192);
mapArray[5] = new Array(47, 37.638266, -122.117398);
mapArray[6] = new Array(218, 37.638266, -122.117398);
mapArray[7] = new Array(39, 33.70677, -116.241719);
mapArray[8] = new Array(219, 33.666489, -117.30137);
mapArray[9] = new Array(37, 34.0625743, -118.354077);
mapArray[10] = new Array(217, 34.0625743, -118.354077);
mapArray[11] = new Array(43, 34.195561, -119.179495);
mapArray[12] = new Array(220, 37.671111, -121.873443);
mapArray[13] = new Array(215, 33.736294, -116.405587);
mapArray[14] = new Array(35, 33.978778, -117.383186);
mapArray[15] = new Array(36, 32.8321559, -117.1264585);
mapArray[16] = new Array(46, 37.312298, -121.930904);
mapArray[17] = new Array(221, 1, 1);
mapArray[18] = new Array(41, 33.7453974, -117.8502537);
mapArray[19] = new Array(44, 34.426024, -119.697417);
mapArray[20] = new Array(45, 34.952801, -120.440045);
mapArray[21] = new Array(38, 34.199697, -118.571618);
var avgLat = 0;
var avgLng = 0;
var j = 0;
for (var i in mapArray) {
avgLat = (avgLat + mapArray[i][1]);
avgLng = (avgLng + mapArray[i][2]);
j++;
}
avgLat = avgLat / j;
avgLng = avgLng / j;
map.setCenter(new GLatLng(avgLat, avgLng), 6);
But that doesn’t give me an accurate center. What’s the best way to dynamically plot the center of the map?
Find the max and min for both lat and long and then center on
(max-min)/2for each.That should be (max + min) / 2, the average.