59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
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);
|
||
}
|