Я знаю, что такое вход и выход, но я просто не уверен, как и почему он работает.
Этот код используется, учитывая минимальную и максимальную долготу/широту (квадрат), которая содержит набор точек, определяет максимальный уровень масштабирования на Картах Google, который будет отображать все эти точки. Исходный автор ушел, поэтому я не уверен, что некоторые из этих чисел даже для (то есть 6371 и 8). Рассмотрим это головоломка = D
int mapdisplay = 322; //min of height and width of element which contains the map
double dist = (6371 * Math.acos(Math.sin(min_lat / 57.2958) * Math.sin(max_lat / 57.2958) +
(Math.cos(min_lat / 57.2958) * Math.cos(max_lat / 57.2958) * Math.cos((max_lon / 57.2958) - (min_lon / 57.2958)))));
double zoom = Math.floor(8 - Math.log(1.6446 * dist / Math.sqrt(2 * (mapdisplay * mapdisplay))) / Math.log (2));
if(numPoints == 1 || ((min_lat == max_lat)&&(min_lon == max_lon))){
zoom = 11;
}