Ещё один вариант попытки исправить ситуацию с определением положения пользователя.

This commit is contained in:
Krivchikov Dmitry 2016-05-12 00:07:21 +03:00
parent 834360af7d
commit e7f19c2ac6
2 changed files with 44 additions and 29 deletions

View File

@ -7,34 +7,49 @@ var intervalId = null;
* Пытается более точно определить координаты пользователя на карте и, при необходимости, обновляет положение точки "im"
* @returns {undefined}
*/
function showMeOnTheMap(interval)
function showMeOnTheMap() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
geolocationSuccess,
geolocationFailure,
{
// 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();
// }
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 60000
}
);
}
else {
alert('Error');
}
}
navigator.geolocation.getCurrentPosition(function (pos) {
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);
}

View File

@ -12,7 +12,7 @@ if (App::$user) {
<div class="glyphicon _t boxButtonLayers" onclick="openBox('Layers')" title="Слои карты"><img src="/img/buttons/layers.png" style="margin-top: -10px; margin-left: -5px; width: 30px;" /></div>
<div class="glyphicon _c boxButtonFilter" title="Фильтры и поиск" onclick="openBox('Filter')"><img src="/img/buttons/search.png" style="margin-top: -10px; margin-left: -5px; width: 30px;" /></div>
<div class="glyphicon _c" id="showMeOnTheMap" title="Я на карте" onclick="showMeOnTheMap(false)"><img src="/img/buttons/myPosition.png" style="margin-top: -20px; height: 21px;" /></div>
<div class="glyphicon _c" id="showMeOnTheMap" title="Я на карте" onclick="showMeOnTheMap()"><img src="/img/buttons/myPosition.png" style="margin-top: -20px; height: 21px;" /></div>
<div class="glyphicon _b boxButtonRoute" title="Маршрут" onclick="openBox('Route')"><img src="/img/buttons/route.png" style="margin-top: -10px; margin-left: -5px; width: 30px;" /></div>