Приветствую, Столкнулся с проблемой, я питаюсь получить актуальные координаты долготы и широты. Создаю pwa приложение для любителей велоспорта, в поисковике нашёл метод для определения местоположения объекта (физически), но при клике по кнопке я всегда получаю одни и те-же значения координат, не могу понять что я делаю не так, внизу представляю свой код,
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<button id = "find-me">Определить моё местоположение</button><br/>
<p id = "status"></p>
<div id="schirota"></div>
<div id="dolgota"></div>
<div id="pogreschnost"></div>
<div id="visota"></div>
<div id="pogreschnost_visota"></div>
<script>
function geoFindMe() {
var status = document.querySelector('#status');
let schirota
let dolgota
let pogreschnost
function success(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var altitude = position.coords.altitude;
var accuracy = position.coords.accuracy;
var altitudeAccuracy = position.coords.altitudeAccuracy;
status.textContent = '';
//эта функция для ограничения количества знаков после запятой (7)
function trunc(decimal,n=2){
let x = decimal + '';
return x.lastIndexOf('.')>=0?parseFloat(x.substr(0,x.lastIndexOf('.')+(n+1))):decimal;
}
schirota = trunc(latitude,7)
dolgota = trunc(longitude,7)
pogreschnost = trunc(accuracy,1)
document.getElementById('schirota').innerHTML = 'Широта: ' + schirota;
document.getElementById('dolgota').innerHTML = 'Долгота: ' + dolgota;
document.getElementById('pogreschnost').innerHTML = 'Погрешность в метрах: ' + pogreschnost;
document.getElementById('visota').innerHTML = 'Высота в метрах над уровнем моря: ' + altitude;
$.post('coord.php', {
crd: schirota + ',' + dolgota + ',' + pogreschnost + ',' + altitude
}, function (data) {
if(data){} else {
alert("Что-то пошло не так!");
}
});
}
function error() {
status.textContent = 'Невозможно получить ваше местоположение';
}
if (!navigator.geolocation) {
status.textContent = 'Geolocation не поддерживается вашим браузером';
} else {
status.textContent = 'Определение местоположения…';
navigator.geolocation.getCurrentPosition(success, error, {
enableHighAccuracy: true
});
}
//В итоге сколько раз я бы не нажал на кнопку "find-me" в БД отправяться одни и те-же координаты
//["44.6250225,40.070373,224.5","44.6250225,40.070373,224.5"]
}
document.querySelector('#find-me').addEventListener('click', geoFindMe);
</script>
</body>
</html>