Проблема с обновлением моего сигнала GPS с использованием javascript - PullRequest
0 голосов
/ 29 января 2020

Я хочу с помощью Cordova использовать GPS для скорости Сигнал для мобильного телефона, но всегда работает, даже если мой мобильный телефон не двигается.

Как я вижу, мои координаты всегда меняются с минимальным разным числом, например: 42.17269283771, 16.88318781 в 42.172698573, 16.99481734.

Я использовал, если stamenentordins.speed меньше нуля. Это та же проблема.

Мой код:

var onSuccess = function (position) {

           if (position.coords.speed < 0) {
                position.coords.speed = 0;
            }

            $("#permeter").html(position.coords.speed);

 
            if (localStorage.getItem("lastcoordinate") == null) {
                localStorage.setItem("lastcoordinate", [position.coords.latitude] + "," + position.coords.longitude,"K");
                result = 0;
            }

            var lat = localStorage.getItem("lastcoordinate").split(",")[0];
            var lon = localStorage.getItem("lastcoordinate").split(",")[1];

            var distancesum = distance(lat, lon, [position.coords.latitude], position.coords.longitude,"K");



            var i = 0;
            var j = distancesum;
                if (result === 0)
                    result = Number(i) + Number(j);
                else
                result = result + j;

            $("#sum").html(result+"</br>");
            
            $("#checksum").append(distancesum+"</br>");

            if (localStorage.getItem("lastcoordinate") != null) {
                localStorage.setItem("lastcoordinate", [position.coords.latitude] + "," + position.coords.longitude);
            }

            var calcspeed = Math.round(position.coords.speed * 2.2369362920544) * 1.60934;
            $("#appendspeed").append(calcspeed+"</br>");

            $("#speed").html(Math.round(calcspeed));


            if (localStorage.getItem("startTimestamp") == null) {
                localStorage.setItem("startTimestamp", new Date(position.timestamp));
            }


            var date1 = new Date(position.timestamp);
            var date2 = new Date(localStorage.getItem("startTimestamp"));

            var difference = date1-date2;

            $("#timestamp").html(Math.round(difference/1000));

        var i = 0;
            var j = calcspeed;
                if (result === 0)
                    result = Number(i) + Number(j);
                else
                result = result + j;      



            

            let a = Number(localStorage.getItem("persecond")) + 1;


            localStorage.setItem("persecond", a++);
            $("#average").html(Math.round(result) / Math.round(localStorage.getItem("persecond")));

            var calc = $("#average").html() * $("#timestamp").html();

            $("#distance").html(calc/3600);

        };

        function onError(error) {
            alert('code: ' + error.code + '\n' +
                'message: ' + error.message + '\n');
        }

        function onDeviceReady() {
            var watchId = navigator.geolocation.watchPosition(onSuccess, onError, { maximumAge: 1000, enableHighAccuracy: true });
        }

        document.addEventListener("deviceready", onDeviceReady(), false);
        {
            cordova.plugins.backgroundMode.enable();
             cordova.plugins.backgroundMode.setEnabled(true);
            cordova.plugins.backgroundMode.overrideBackButton();
        };


        function reset() {
            result = 0;
        }


        function sum() {

        }

Также Если используется только position.coords.speed, или position.coords.latitude или position.coords.longitude. Каждое второе изменение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...