var showMeLastTime = 0; var showMeTimerOn = false; var intervalId = null; /** * Пытается более точно определить координаты пользователя на карте и, при необходимости, обновляет положение точки "im" * @returns {undefined} */ function showMeOnTheMap() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( geolocationSuccess, geolocationFailure, { enableHighAccuracy: true, timeout: 20000, maximumAge: 60000 } ); $('#showMeOnTheMap').addClass('inProgress'); } else { alert('Error'); } } function geolocationSuccess(pos) { $('#showMeOnTheMap').removeClass('inProgress'); coords = [pos.coords.latitude, pos.coords.longitude]; $.cookie('userLat',pos.coords.latitude); $.cookie('userLng',pos.coords.longitude); myMap.removeLayer(points.im); points.im.setLatLng(coords).addTo(myMap); myMap.setView(coords, myMap.getZoom()); } function geolocationFailure(positionError) { $('#showMeOnTheMap').removeClass('inProgress'); if(positionError.code == 1) { text = "Вы решили не предоставлять данные о своем местоположении, " + "но это не проблема. Мы больше не будем запрашивать их у вас."; } else if(positionError.code == 2) { text = "Проблемы с сетью или нельзя связаться со службой определения " + "местоположения по каким-либо другим причинам."; } else if(positionError.code == 3) { text = "He удалось определить местоположение " + "в течение установленного времени. "; } else { text = 'Ошибка при определении координат. #' + positionError.code; } alert(text); }