diff --git a/public/js/navigation.js b/public/js/navigation.js index 0ac0173..6dcd005 100644 --- a/public/js/navigation.js +++ b/public/js/navigation.js @@ -7,34 +7,49 @@ var intervalId = null; * Пытается более точно определить координаты пользователя на карте и, при необходимости, обновляет положение точки "im" * @returns {undefined} */ -function showMeOnTheMap(interval) -{ -// TODO: Продумать ещё раз и переписать -// 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]; - $.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 showMeOnTheMap() { + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition( + geolocationSuccess, + geolocationFailure, + { + enableHighAccuracy: true, + timeout: 5000, + maximumAge: 60000 + } + ); + } + else { + alert('Error'); + } } +function geolocationSuccess(pos) { + 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) { + if(positionError == 1) { + text = "Вы решили не предоставлять данные о своем местоположении, " + + "но это не проблема. Мы больше не будем запрашивать их у вас."; + } + else if(positionError == 2) { + text = "Проблемы с сетью или нельзя связаться со службой определения " + + "местоположения по каким-либо другим причинам."; + } + else if(positionError == 3) { + text = "He удалось определить местоположение " + + "в течение установленного времени. "; + + } + else { + text = 'Ошибка при определении координат. #' + positionError; + } + + alert(text); +} diff --git a/views/indexTemplate.php b/views/indexTemplate.php index 37b3c5f..77cc0eb 100644 --- a/views/indexTemplate.php +++ b/views/indexTemplate.php @@ -12,7 +12,7 @@ if (App::$user) {
-
+