История изменений
Исправление
weare,
(текущая версия)
:
Сейчас получился такой код, он почти рабочий. Код на JavaScript
function SetFocus() {
var ZoomLevelResolution = [156412, 78206, 39103, 19551, 9776, 4888, 2444, 1222, 610.984, 305.492, 152.746, 76.373, 38.187, 19.093, 9.547, 4.773, 2.387, 1.193, 0.596, 0.298]
var MaxLat = -90;
var MinLat = 90;
var MaxLon = 0;
var MinLon = 180;
for (var i = 0; i < CarInfoFromServer.length; i++) {
if (CarInfoFromServer[i].Lat > MaxLat) MaxLat = CarInfoFromServer[i].Lat;
if (CarInfoFromServer[i].Lat < MinLat) MinLat = CarInfoFromServer[i].Lat;
if (CarInfoFromServer[i].Lon > MaxLon) MaxLon = CarInfoFromServer[i].Lon;
if (CarInfoFromServer[i].Lon < MinLon) MinLon = CarInfoFromServer[i].Lon;
}
var AvgLat = (MaxLat + MinLat) / 2;
var AvgLon = (MaxLon + MinLon) / 2;
var d_w = GetDistance(MaxLat, MinLon, MaxLat, MaxLon);
var d_h = GetDistance(MinLat, MinLon, MaxLat, MinLon);
var Distance = 0;
if (d_w > d_h) Distance = d_w; else Distance = d_h;
var Pixels = 0;
if (map_w > map_h) Pixels = map_h; else Pixels = map_w;
var Resolution = Distance / Pixels;
var ZoomLevel = 0;
for (var i = 0; i < ZoomLevelResolution.length; i++) {
if (Resolution > ZoomLevelResolution[i]) {
ZoomLevel = i - 1;
break;
}
}
map.setView([AvgLat, AvgLon], ZoomLevel);
}
Исходная версия
weare,
:
Сейчас получился такой код, он почти рабочий. Код на JavaScript
function SetFocus() {
var ZoomLevelResolution = [156412, 78206, 39103, 19551, 9776, 4888, 2444, 1222, 610.984, 305.492, 152.746, 76.373, 38.187, 19.093, 9.547, 4.773, 2.387, 1.193, 0.596, 0.298]
var MaxLat = -90;
var MinLat = 90;
var MaxLon = 0;
var MinLon = 180;
for (var i = 0; i < CarInfoFromServer.length; i++) {
if (CarInfoFromServer[i].Lat > MaxLat) MaxLat = CarInfoFromServer[i].Lat;
if (CarInfoFromServer[i].Lat < MinLat) MinLat = CarInfoFromServer[i].Lat;
if (CarInfoFromServer[i].Lon > MaxLon) MaxLon = CarInfoFromServer[i].Lon;
if (CarInfoFromServer[i].Lon < MinLon) MinLon = CarInfoFromServer[i].Lon;
}
var AvgLat = (MaxLat + MinLat) / 2;
var AvgLon = (MaxLon + MinLon) / 2;
var d_w = GetDistance(MaxLat, MinLon, MaxLat, MaxLon);
var d_h = GetDistance(MinLat, MinLon, MaxLat, MinLon);
var Distance = 0;
if (d_w > d_h) Distance = d_w; else Distance = d_h;
var Pixels = 0;
if (map_w > map_h) Pixels = map_h; else Pixels = map_w;
var Resolution = Distance / Pixels;
var ZoomLevel = 0;
for (var i = 0; i < ZoomLevelResolution.length; i++) {
if (Resolution > ZoomLevelResolution[i]) {
ZoomLevel = i - 1;
break;
}
}