From e7f19c2ac6e4b34f9ba87a652555a23cd37a8e26 Mon Sep 17 00:00:00 2001 From: Krivchikov Dmitry Date: Thu, 12 May 2016 00:07:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=95=D1=89=D1=91=20=D0=BE=D0=B4=D0=B8=D0=BD?= =?UTF-8?q?=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BF=D1=8B=D1=82=D0=BA=D0=B8=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D1=81=D0=B8=D1=82=D1=83=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E=20=D1=81=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=BF=D0=BE=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/js/navigation.js | 71 +++++++++++++++++++++++++---------------- views/indexTemplate.php | 2 +- 2 files changed, 44 insertions(+), 29 deletions(-) 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) {
-
+