РЕфакторинг navigation.js

This commit is contained in:
Krivchikov Dmitry 2016-05-13 12:08:26 +03:00
parent 5758359c5b
commit f520acb6b9
1 changed files with 26 additions and 27 deletions

View File

@ -2,7 +2,6 @@ var showMeLastTime = 0;
var showMeTimerOn = false; var showMeTimerOn = false;
var intervalId = null; var intervalId = null;
/** /**
* Пытается более точно определить координаты пользователя на карте и, при необходимости, обновляет положение точки "im" * Пытается более точно определить координаты пользователя на карте и, при необходимости, обновляет положение точки "im"
* @returns {undefined} * @returns {undefined}
@ -10,17 +9,16 @@ var intervalId = null;
function showMeOnTheMap() { function showMeOnTheMap() {
if (navigator.geolocation) { if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition( navigator.geolocation.getCurrentPosition(
geolocationSuccess, geolocationSuccess,
geolocationFailure, geolocationFailure,
{ {
enableHighAccuracy: true, enableHighAccuracy: true,
timeout: 20000, timeout: 20000,
maximumAge: 60000 maximumAge: 60000
} }
); );
$('#showMeOnTheMap').addClass('inProgress'); $('#showMeOnTheMap').addClass('inProgress');
} } else {
else {
alert('Error'); alert('Error');
} }
} }
@ -28,16 +26,23 @@ function showMeOnTheMap() {
function geolocationSuccess(pos) { function geolocationSuccess(pos) {
$('#showMeOnTheMap').removeClass('inProgress'); $('#showMeOnTheMap').removeClass('inProgress');
if (typeof(points.circle) != "undefined") { if (typeof (points.circle) != "undefined") {
myMap.removeLayer(points.circle); myMap.removeLayer(points.circle);
} }
coords = [pos.coords.latitude, pos.coords.longitude]; coords = [pos.coords.latitude, pos.coords.longitude];
points.circle = L.circle(coords, pos.coords.accuracy); points.circle = L.circle(coords, pos.coords.accuracy);
points.circle.addTo(myMap); points.circle.addTo(myMap);
$.cookie('userLat',pos.coords.latitude); setTimeout(function () {
$.cookie('userLng',pos.coords.longitude); if (typeof (points.circle) != "undefined") {
myMap.removeLayer(points.circle);
}
}, 3000);
$.cookie('userLat', pos.coords.latitude);
$.cookie('userLng', pos.coords.longitude);
myMap.removeLayer(points.im); myMap.removeLayer(points.im);
points.im.setLatLng(coords).addTo(myMap); points.im.setLatLng(coords).addTo(myMap);
myMap.setView(coords, myMap.getZoom()); myMap.setView(coords, myMap.getZoom());
@ -46,24 +51,18 @@ function geolocationSuccess(pos) {
function geolocationFailure(positionError) { function geolocationFailure(positionError) {
$('#showMeOnTheMap').removeClass('inProgress'); $('#showMeOnTheMap').removeClass('inProgress');
if (typeof(points.circle) != "undefined") { if (typeof (points.circle) != "undefined") {
myMap.removeLayer(points.circle); myMap.removeLayer(points.circle);
} }
if(positionError.code == 1) { if (positionError.code == 1) {
text = "Вы решили не предоставлять данные о своем местоположении, " + text = "К сожалению Вы решили не разрешили предоставлять данные о своем местоположении. Проверьте настройки ГЕО-приватности для браузера и сайта.";
"но это не проблема. Мы больше не будем запрашивать их у вас."; } else if (positionError.code == 2) {
} text = "Не удалось связаться со службой определения местоположения. Возможно проблемы с сетью.";
else if(positionError.code == 2) { } else if (positionError.code == 3) {
text = "Проблемы с сетью или нельзя связаться со службой определения " + text = "He удалось определить местоположение в течение длительного времени. Попробуйте ещё раз.";
"местоположения по каким-либо другим причинам.";
}
else if(positionError.code == 3) {
text = "He удалось определить местоположение "
+ "в течение установленного времени. ";
} } else {
else {
text = 'Ошибка при определении координат. #' + positionError.code; text = 'Ошибка при определении координат. #' + positionError.code;
} }