LINUX.ORG.RU

История изменений

Исправление 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;
            }
        }