Я хочу с помощью 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. Каждое второе изменение ...