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()); }); }