привет, ребята, я разрабатываю скрипт, чтобы показать текущую скорость на платформе, которая имеет свою собственную функцию, но я всегда получаю 0 для текущей скорости, а первая долгота и широта такие же, как второй, может кто-то помочь мне, пожалуйста, чтобы понять, что не так, и посмотреть, правилен ли алгоритмпоказать текущую скорость от координат gps
function save1() {
js.saveData("value1", js.call('api.location.getLatitude()', {}));
js.saveData("value2", js.call('api.location.getLongitude()', {}));
}
function save2(){
js.saveData("value3", js.call('api.location.getLatitude()', {}));
js.saveData("value4", js.call('api.location.getLongitude()', {}));
}
function repeate2() {
js.callRepeatedly("save1()", 1000);
js.callRepeatedly("save2()", 2000);
}
function setintext() {
save1();
save2();
repeate2();
//js.alert("geted");
var lat1 = js.getData("value1");
var long1 = js.getData("value2");
var lat2 = js.getData("value3");
var long2 = js.getData("value4");
js.setProperty('Home.Text_1', 'text', lat1);
js.setProperty('Home.Text_2', 'text', long1);
js.setProperty('Home.Text_3', 'text', lat2);
js.setProperty('Home.Text_4', 'text', long2);
}
function distance(lat1, long1, lat2, long2) {
setintext();
var R = 6371; // km (change this constant to get miles)
var dLat = (lat2 - lat1) * Math.PI/180;
var dLon = (long2 - long1) * Math.PI/180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1 * Math.PI/180) * Math.cos(lat2 * Math.PI/180) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c;
var dist = 0;
dist = Math.round(d);
var vitesse = dist/3600000;
js.setProperty('Home.Text_x', 'text', vitesse + "km/h");
}
Поскольку вы сохраняете в локальном хранилище оба набора (lat/long) координат в один и тот же момент в setintext() ... Разве это не логика, что значения одинаковы? Я думаю, вы должны сохранить set1 ... и подождать немного, чтобы сохранить второй набор. Также подумайте о задержке передачи! Я не знаю, откуда берутся данные ... Но действительно ли это «реальное время»? –
Вы получаете значения один за другим без изменения местоположения. Попробуйте изменить местоположение между 'save1()' и 'save2()' –
Louys Patrice Bessette Да, я устанавливаю их в одно и то же время , но save1() должен выполняться каждые 1 сек. и save2() должен быть Выполняется каждые 2 сек. Я прав? Да Точные координаты в реальном времени –