38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
var showMeLastTime = 0;
|
|
var showMeTimerOn = false;
|
|
var intervalId = null;
|
|
|
|
|
|
/**
|
|
* Пытается более точно определить координаты пользователя на карте и, при необходимости, обновляет положение точки "im"
|
|
* @returns {undefined}
|
|
*/
|
|
function showMeOnTheMap(interval)
|
|
{
|
|
if (!interval) {
|
|
if (showMeTimerOn) {
|
|
clearInterval(intervalId);
|
|
intervalId = null;
|
|
showMeTimerOn = false;
|
|
$('#showMeOnTheMap').removeClass('active');
|
|
} else {
|
|
if (showMeLastTime + 10 >= getTime() && !showMeTimerOn) {
|
|
showMeTimerOn = true;
|
|
$('#showMeOnTheMap').addClass('active');
|
|
intervalId = setInterval('showMeOnTheMap(true)', 15000);
|
|
showMeLastTime = getTime();
|
|
}
|
|
}
|
|
showMeLastTime = getTime();
|
|
}
|
|
|
|
navigator.geolocation.getCurrentPosition(function (pos) {
|
|
coords = [pos.coords.latitude, pos.coords.longitude];
|
|
myMap.removeLayer(points.im);
|
|
points.im.setLatLng(coords).addTo(myMap);
|
|
myMap.setView(coords, myMap.getZoom());
|
|
});
|
|
}
|
|
|
|
|