function rad2degr(rad) { return rad * 180 / Math.PI; } function degr2rad(degr) { return degr * Math.PI / 180; } /** * @param latLngInDeg array of arrays with latitude and longtitude * pairs in degrees. e.g. [[latitude1, longtitude1], [latitude2 * [longtitude2] ...] * * @return array with the center latitude longtitude pairs in * degrees. */ function getLatLngCenter(latLngInDegr) { var LATIDX = 0; var LNGIDX = 1; var sumX = 0; var sumY = 0; var sumZ = 0; for (var i=0; i array(45.849382, 76.322333), * 1 = > array(45.843543, 75.324143), * 2 = > array(45.765744, 76.543223), * 3 = > array(45.784234, 74.542335) * ); */ function GetCenterFromDegrees(data) { if (!(data.length > 0)){ return false; } var num_coords = data.length; var X = 0.0; var Y = 0.0; var Z = 0.0; for(i = 0; i < data.length; i++){ var lat = data[i][0] * Math.PI / 180; var lon = data[i][1] * Math.PI / 180; var a = Math.cos(lat) * Math.cos(lon); var b = Math.cos(lat) * Math.sin(lon); var c = Math.sin(lat); X += a; Y += b; Z += c; } X /= num_coords; Y /= num_coords; Z /= num_coords; var lon = Math.atan2(Y, X); var hyp = Math.sqrt(X * X + Y * Y); var lat = Math.atan2(Z, hyp); var newX = (lat * 180 / Math.PI); var newY = (lon * 180 / Math.PI); return new Array(newX, newY); }